OpenMDAO Logo

An open-source MDAO framework written in Python.

What is OpenMDAO?

OpenMDAO is an open-source (why?) Multidisciplinary Design Analysis and Optimization (MDAO) framework, written in Python. You can use it to develop an integrated analysis and design environment for your engineering challenges.

xdsm diagram of MDF architecture

In layman’s terms: OpenMDAO is a piece of software that links other pieces of software together. It allows you to combine analysis tools (or design codes) from multiple disciplines, at multiple levels of fidelity, and to manage the interaction between them. OpenMDAO is specifically designed to manage the dataflow (the actual data) and the workflow (what code is run when) in conjunction with optimization algorithms and other advanced solution techniques. OpenMDAO also has extensive optimization capabilities built right in.

What can you do with OpenMDAO?

  • Exchange information between multiple analysis codes at multiple levels of fidelity to create models of complex systems
  • Apply state-of-the-art MDAO algorithms designed to solve highly coupled problems that arise when multiple analysis tools are combined
  • Quickly implement new tools and methods for handling complex design problems
  • Just about anything you can think of . . . 

Component, Driver, Workflow, AssemblyOpenMDAO is extremely flexible because it separates the flow of information (dataflow) from the process in which analyses are executed (workflow). It does that by using four specific constructs: Component, Assembly, Driver, and Workflow. The construction of system models begins with wrapping (or writing from scratch) various analysis codes as Components. A group of components is linked together inside an Assembly, specifying the dataflow between them.  Once the dataflow is in place, you can select specific Drivers (optimizers, solvers, design of experiments, etc.) and set up a Workflow  to determine exactly how the problem should be solved. In some cases, multiple Driver/Workflow combinations may exist for a single dataflow. For example, some users might run a straightforward optimization on the system, while others might develop a set of surrogate models first and then perform an optimization on the models.

Beyond the basics needed to get up and running, OpenMDAO provides a large set of features that make the framework useful to researchers in the MDAO field. But more importantly, by serving as a common platform, it enables a much higher degree of code sharing and re-use among the MDAO community. Algorithms and techniques developed can be distributed among users to accelerate the adoption of new methods.

Who’s working on OpenMDAO?

The development effort is being led out of the NASA Glenn Research Center, with support from the NASA Langley Research Center. NASA’s interest in the OpenMDAO project stems from the demands of unconventional aircraft concepts like Turbo-Electric Distributed Propulsion. Although NASA’s focus is on analyzing aerospace applications, the framework itself is extremely general and is not specific to any discipline.

Fork me on GitHub