OpenMDAO is an open-source high-performance computing platform for systems analysis and multidisciplinary optimization, written in Python. It enables you to decompose your models, making them easier to build and maintain, while still solving them in a tightly coupled manner with efficient parallel numerical methods.
OpenMDAO provides a library of sparse solvers and optimizers designed to work with its distributed-memory, sparse data-passing scheme. OpenMDAO ships with a numpy data-passing implementation that lets you get up and running quickly and provides efficient operation for serial execution. It also comes with an MPI-based implementation that will let you run in parallel on your multi-core processor and high performance computing (HPC) environments.
OpenMDAO works with both gradient-free (e.g., genetic algorithm, particle swarm) and gradient-based optimization methods. But what really makes OpenMDAO special is its automatic analytic multidisciplinary derivatives, which can be used to compute system-level gradients for Newton solvers and/or gradient-based optimizers. You provide analytic derivatives for each of your components, and OpenMDAO will solve the chain-rule across your entire model, to compute system level gradients. This lets you solve large non-linear optimizations, like a cubesat design optimization with over 25,000 design variables using adjoint derivatives.
Of course, you don’t have to provide analytic derivatives for all components. OpenMDAO will finite-difference components that are missing them and then compute semi-analytic multidisciplinary derivatives. Semi-analytic derivatives offer a fast and easy way to gain a lot of computational efficiency. For example, they gave a 5x reduction in compute cost for an aero-structural wind turbine optimization. This allows OpenMDAO to bridge the gap between traditional systems analysis and large-scale multidisciplinary optimization.
What does MDAO Stand For?
Multidisciplinary Design Analysis and Optimization
MDAO is also commonly referred to as Multidisciplinary Design Optimization (MDO). The two terms are synonymous. In general this refers to the practice of optimization around complex systems models, built up of many analysis blocks linked together, which have coupling relationships that need to be converged with a solver.
Who’s working on OpenMDAO?
OpenMDAO is developed at the NASA Glenn Research Center, with funding from the Transformational Tools and Technologies Project. NASA’s interest in the OpenMDAO project stems from the growing need to solve large-scale design optimizations to study unconventional aerospace concepts. The OpenMDAO team is currently working on problems involving cubesat design and mission planning, wind turbine design and wind farm layout, and unconventional aircraft concepts like hybrid electric propulsion, boundary layer ingestion for aircraft, and optimal aircraft trajectories. We also did some interesting work on conceptual sizing for the Hyperloop vacuum train concept.