OpenMDAO in a nutshell
OpenMDAO is an open source framework written in Python to faciliate the coupling of multiple models to perform multidisciplinary analysis and design optimization. One of the unique features of OpenMDAO is the use of derivatives to accelerate the solution of the coupled system and to provide gradients for gradient-based optimization algorithms. As a result, OpenMDAO can solver problems with tens of thousands of variables and a similar number of constraints.
The development of OpenMDAO started in 2008, when developers at NASA identified the need for a new design optimization framework to address complex aircraft design optimization problems. More recently, OpenMDAO was re-written to use the modular analsysis and unified derivatives (MAUD) architecture, enabling the efficient computation of coupled derivatives. Follow the links to the websites and papers below for more details.
- This is the main paper that describes the latest version of OpenMDAO 1. For a quick overview of what OpenMDAO is and what it does, read the introduction, the overview of applications (Sec. 7, especially Table 13), and the conclusions (Sec. 8). Potential OpenMDAO users should also read Sec. 3, which explains the basic usage and features through a simple example. The rest of the paper provides a background on MDO frameworks and the history of OpenMDAO development (Sec. 2), the theory behind OpenMDAO (Sec. 4), and the details of the major new contributions in OpenMDAO V2 in terms of multidisciplinary solvers (Sec. 5) and coupled derivative computation (Sec. 6).
- This paper on MAUD describes the core algorithms and data structures that are implemented in OpenMDAO 2.
- This paper on the unified derivatives equation (UDE) contains the theory that MAUD is built on. It explains all the methods for computing derivatives (finite differences, complex step, automatic differentiation, direct, and adjoint), including the derivatives of coupled multidisciplinary systems, and unifies the various methods using a single equations.