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.
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.
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.
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 . . .
OpenMDAO 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.
- 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 . . .
OpenMDAO 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?
OpenMDAO’s development effort is being led out of the NASA Glenn 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.
OpenMDAO’s development effort is being led out of the NASA Glenn 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.
MDAO
Although we use it to mean Multidisciplinary Design Analysis and Optimization, sometimes MDAO is also used as an acronym for MultiDisciplinary Analysis and Optimization (without the Design).
Here are a couple of other acronyms that you might come across:
- MDO: MultiDisciplinary Optimization
- MDA: MultiDisciplinary Analysis
What is the difference between MDAO, MDO, and MDA? Not much, really. MDA refers to a process where multiple discipline analyses are brought to a consistent state. MDO represents a process where multiple disciplines are simultaneously optimized with respect to one or more goals. MDAO encompasses the ideas of both MDA and MDO and then throws in the word design to emphasize that the purpose of all this work is to come up with a design for something that is better than the original baseline.
Although we use it to mean Multidisciplinary Design Analysis and Optimization, sometimes MDAO is also used as an acronym for MultiDisciplinary Analysis and Optimization (without the Design).
Here are a couple of other acronyms that you might come across:
- MDO: MultiDisciplinary Optimization
- MDA: MultiDisciplinary Analysis
What is the difference between MDAO, MDO, and MDA? Not much, really. MDA refers to a process where multiple discipline analyses are brought to a consistent state. MDO represents a process where multiple disciplines are simultaneously optimized with respect to one or more goals. MDAO encompasses the ideas of both MDA and MDO and then throws in the word design to emphasize that the purpose of all this work is to come up with a design for something that is better than the original baseline.
Features
- Library of Built-in Solvers and Optimizers: OpenMDAO provides a number of solvers and optimizers that users can leverage to build new analyses and optimization methods quickly and efficiently. It also provides support for executing Design Of Experiments (DOE).
- Tools for Meta-Modeling: OpenMDAO provides a custom class that allows users to integrate the training and execution of meta-models for arbitrary analysis components directly into their processes.
- Data Recording Capabilities: MDAO can produce a tremendous amount of data through many hundreds, or even thousands, of analysis executions over the course of an optimization. OpenMDAO can record the data in a number of different formats, including SQLite database, flat file (a.k.a. comma-separated values), or human-readable text stream.
- Support for Analytic Derivatives: Many optimizers require component derivatives. Although these derivatives can be approximated with finite-difference methods, when they are available, analytic derivatives improve the speed and accuracy of the optimization. OpenMDAO provides direct support for components to declare analytic derivatives. If they are not available, OpenMDAO will revert to using a finite-differencing method. Support also exists for models with mixed derivatives, where only some are analytic.
- Support for High-Performance Compute Clusters and Distributed Computing: OpenMDAO supports distributed computing by automatically submitting compute jobs to remote clusters. OpenMDAO uses a class called the Remote Allocation Manager (RAM) to define how the framework can work with any given cluster. By accessing different types of RAMs, users can take advantage of various compute resources and even set up analyses to run on multiple heterogeneous computer clusters.
- Extensible Plugin Library: The OpenMDAO development team provides a number of official plugins. These plugins provide access to wrappers for commonly used analysis tools, large sets of optimizers, and extra surrogate modeling methods. More importantly, OpenMDAO provides a plugin installation tool that makes it very easy to add plugins to the system. The plugins all come with documentation that integrates into the overall OpenMDAO documentation. All of the official plugins can be found at https://github.com/OpenMDAO-Plugins. Users are encouraged to contribute their own plugins as well.
- Library of Built-in Solvers and Optimizers: OpenMDAO provides a number of solvers and optimizers that users can leverage to build new analyses and optimization methods quickly and efficiently. It also provides support for executing Design Of Experiments (DOE).
- Tools for Meta-Modeling: OpenMDAO provides a custom class that allows users to integrate the training and execution of meta-models for arbitrary analysis components directly into their processes.
- Data Recording Capabilities: MDAO can produce a tremendous amount of data through many hundreds, or even thousands, of analysis executions over the course of an optimization. OpenMDAO can record the data in a number of different formats, including SQLite database, flat file (a.k.a. comma-separated values), or human-readable text stream.
- Support for Analytic Derivatives: Many optimizers require component derivatives. Although these derivatives can be approximated with finite-difference methods, when they are available, analytic derivatives improve the speed and accuracy of the optimization. OpenMDAO provides direct support for components to declare analytic derivatives. If they are not available, OpenMDAO will revert to using a finite-differencing method. Support also exists for models with mixed derivatives, where only some are analytic.
- Support for High-Performance Compute Clusters and Distributed Computing: OpenMDAO supports distributed computing by automatically submitting compute jobs to remote clusters. OpenMDAO uses a class called the Remote Allocation Manager (RAM) to define how the framework can work with any given cluster. By accessing different types of RAMs, users can take advantage of various compute resources and even set up analyses to run on multiple heterogeneous computer clusters.
- Extensible Plugin Library: The OpenMDAO development team provides a number of official plugins. These plugins provide access to wrappers for commonly used analysis tools, large sets of optimizers, and extra surrogate modeling methods. More importantly, OpenMDAO provides a plugin installation tool that makes it very easy to add plugins to the system. The plugins all come with documentation that integrates into the overall OpenMDAO documentation. All of the official plugins can be found at https://github.com/OpenMDAO-Plugins. Users are encouraged to contribute their own plugins as well.
Publications
Here is a list of technical publications written by the OpenMDAO development team and a couple of our local users:
- J. Chin, J. Gray, S. Jones, and J. Berton, “Open-source conceptual sizing models for the hyperloop passenger pod,” in 2015 aiaa scitech conference, 2015.
[Bibtex] - E. S. Hendricks, S. M. Jones, and J. S. Gray, “Design optimization of a variable-speed power-turbine,” in 50th aiaa/asme/sae/asee joint propulsion conference, Cleveland, Ohio, 2014.
[Bibtex] - C. M. Heath, M. A. Park, E. J. Nielsen, J. Carlson, and J. Gray, “Aerodynamic shape optimization of a dual-stream supersonic plug nozzle,” in 2015 aiaa scitech conference, 2015.
[Bibtex] - J. S. Gray, T. A. Hearn, K. T. Moore, J. Hwang, J. Martins, and A. Ning, “Automatic evaluation of multidisciplinary derivatives using a graph-based problem formulation in openmdao,” in 15th aiaa/issmo multidisciplinary analysis and optimization conference, 2014.
[Bibtex] - J. Gray, K. T. Moore, T. A. Hearn, and B. A. Naylor, “Standard platform for benchmarking multidisciplinary design analysis and optimization architectures,” Aiaa journal, vol. 51, iss. 10, pp. 2380-2394, 2013.
[Bibtex] - D. Pate, J. Gray, and B. German, “A graph theoretic approach to problem formulation for multidisciplinary design analysis and optimization,” Structural and multidisciplinary optimization, vol. 51, iss. 5, pp. 743-760, 2013.
[Bibtex] - K. T. Moore, B. A. Naylor, and J. S. Gray, “The development of an open-source framework for multidisciplinary analysis and optimization,” in 10th aiaa/issmo multidisciplinary analysis and optimization conference, Victoria, Canada, 2008.
[Bibtex] - J. S. Gray and J. L. Briggs, “Design of a Model Execution Framework : Repetitive Object-Oriented Simulation Environment,” in 44th aiaa/asme/sae/asse joint propulsion conference and exhibit, Hartford, CT, 2008, pp. 1-28.
[Bibtex] - J. S. Gray, K. T. Moore, and B. A. Naylor, “OPENMDAO: An Open Source Framework for Multidisciplinary Analysis and Optimization,” in 13th aiaa/issmo multidisciplinary analysis and optimization conference, fort worth, tx, aiaa, aiaa-2010-9101, Fort Worth, Texas, 2010.
[Bibtex] - C. M. Heath and J. S. Gray, “OpenMDAO: Framework for Flexible Multidisciplinary Design, Analysis and Optimization Methods,” in 8th aiaa multidisciplinary design optimization specialist conference (mdo), Honolulu, Hawaii, 2012, pp. 1-13.
[Bibtex] - J. S. Gray, K. T. Moore, T. A. Hearn, and B. A. Naylor, “A Standard Platform for Testing and Comparison of MDAO Architectures,” in 8th aiaa multidisciplinary design optimization specialist conference (mdo), Honolulu, Hawaii, 2012, pp. 1-26.
[Bibtex] - R. M. Coroneos and S. Pai, “"deterministic design optimization of structures in openmdao framework",” inNasa/tm 217433, 2012.
[Bibtex] - R. M. Coroneos, “"structural analysis and optimization of a composite fan blade for future aircraft engine",” inNasa/tm 217632, 2012.
[Bibtex] - K. T. Moore, “"calculation of sensitivity derivatives in an mdao framework",” in 14th aiaa/issmo multidisciplinary analysis and optimization conference, Indianapolis, Indiana, 2012.
[Bibtex] - http://openmdao.org/docs/
No comments :
Post a Comment
Note: only a member of this blog may post a comment.