Overview of the OpenMDAO Framework

The following section provides a brief overview of OpenMDAO and discusses some of its basic components.

What is OpenMDAO?

MDAO stands for MultiDisciplinary Analysis and Optimization; OpenMDAO is an open source framework to analyze and solve MDAO problems. In OpenMDAO, a problem is represented by a system of objects called components. These objects have input and output attributes and can perform some sort of calculation when they are executed. They can have their inputs and outputs connected to those of other components, allowing data to be passed between them when they perform their calculations.

The following figure gives a conceptual view of what a simple Component might look like. This Component has two inputs (a, b) and one output (c). The calculation that it performs is to add the two inputs to produce the output.


Conceptual View of a Simple Component

Note that components within OpenMDAO can be as simple or complex as necessary. The inputs and outputs to a Component are Python objects, so they are not limited to being simple types like float or int.

An Assembly is a special kind of Component that contains other components. When an Assembly is executed, it runs the components it contains in the order determined by a Workflow object. A Workflow is simply an object that determines execution order for a group of components. The workflow orders the components according to the direction the data flow between them, i.e., such that any Component that supplies input values to another Component will always run before that Component.

A Driver is another special kind of Component. Drivers are designed to iterate over a Workflow until some condition is met. Some examples of Drivers are optimizers, solvers, and design space explorers.

See also

Execution and Workflow View

OpenMDAO Home

Table Of Contents

Previous topic

User’s Guide

Next topic

Getting Started with OpenMDAO: A Simple Example Problem

This Page