Skip to main content

Introduction


CSDL is designed for solving Multidisciplinary Design Optimization (MDO) problems, which involves modeling and simulation of physical systems, and solving optimization problems involving a large number of design variables and tightly coupled discipline models.

CSDL is an Embedded Domain Specific Language (EDSL). A domain specific language is a programming language designed for users working in a specific application domain (e.g. MDO), so it lacks the low level control that a general purpose language would have. In exchange, users can operate at the highest level of abstraction possible for the given application domain.

CSDL is "embedded" in the sense that the CSDL compiler relies on Python for many of the compilation steps to generate an executable object. The CSDL compiler takes advantage of Python so that users have a great deal of control over compile time behavior. Using Python as the host language also makes CSDL easy to learn for Python users, and easy to integrate projects using CSDL into existing Python code and vice versa.

note

Working knowledge of Python and the NumPy library is required in order to write effective CSDL code. An introduction to Python is outside the scope of this tutorial.

After this tutorial, you can become more aquainted with CSDL by reviewing the examples in "CSDL by Example" in the sidebar on the left.

Let's get started.