Application Programming Interface. A set of functions that can be called from an application program to access features of another program.
The Assembly class is the primary building block of the system of systems aspect of OpenMDAO. Each assembly has a Workflow and a Driver, and acts as a container for Components. An assembly is also a component, so hierarchical structures of assemblies can be created.
Axial-Flow Turbine Off-Design. A a computer code used for preliminary studies of the gas turbine system.
A Session and Caching library with WSGI Middleware.
An ordered series of revisions (see revision below) that describes the history of a set of files.
Computer-Aided Design. An automated system for the design, drafting, and display of graphically oriented information.
Computer-Aided Engineering. Using computers to design, analyze, and manufacture products and processes.
Computational Analysis Programming Interface. CAPRI is a CAD vendor-neutral programming interface that aids in acquiring geometry data directly from CAD files.
An object containing a collection of input names and values, and names of outputs to be stored along with the inputs after the process model runs.
An object that iteratively supplies Case objects. This iterator could be tied to a simple file, a database, or some object that generates Case objects dynamically.
Computational Fluid Dynamics. A branch of fluid mechanics that uses numerical methods and algorithms to solve and analyze problems that involve fluid flows.
A component that runs a separate executable program via a system call.
To record a change. A change is committed to a developer’s local repository.
Container that is runnable; it also supports several other framework functions, such as checkpoint/restart, stop, and invoke. A component has input and output attributes and can perform some sort of calculation when it is executed.
See Component above.
An interface to the NASTRAN/NASA CONMIN optimization program.
A container of Variables and other Containers. The base class of all objects within the framework that support user access to input and output Variables.
A Python module that measures code coverage during test execution.
A Python module that aims to simplify the usage of decorators for the average programmer and to popularize decorators by showing various non-trivial examples. A Python decorator is a specific change to the Python syntax that allows users to more conveniently alter functions and methods.
Dynamically Loadable Library
Docutils is a modular system for processing documentation into useful formats, such as HTML, XML, and LaTeX. For input Docutils supports reStructuredText, an easy-to-read, what-you-see-is-what-you-get plain text markup syntax.
A Driver’s function is to iterate over a Workflow until some condition is met. The simplest Driver executes a Workflow only once. Other Drivers, such as Optimizers or ParameterStudies, would execute the Workflow a variable number of times based on their inputs.
A zip file with a specified internal directory structure that contains a Python package or module. It is similar to a jar file in java. For more information on eggs, see PythonEggs.
See egg above.
A declarative layer on top of SQLAlchemy that provides the ability to create simple Python classes that map directly to relational database tables. It provides many of the benefits of traditional databases without losing the convenience of Python objects.
Fortran to Python interface generator.
An object that knows how to create objects of specific types.
All requests to create any type of Container must go through the FactoryManager object. Multiple Factory derived objects can be registered with the FactoryManager to allow creation of objects in various ways, e.g., locally via import and remotely via an ObjServer.
Finite Element Method. A numerical technique for finding approximate solutions of partial differential equations (PDE) as well as of integral equations. A structural analysis method which discretizes a continuum model of a complex structure to a discrete model of a finite number of degrees of freedom.
An HTML form validation, generation, and conversion package.
Genetic algorithm
Graphical User Interface. A computer operating system that is based upon icons and visual relationships rather than text.
An interface to an object having physical dimensions and shape, with properties that can be queried.
Interprocess communication
A small but fast and easy-to-use stand-alone template engine written in pure Python.
Jinja2 is the new and improved version of Jinja with new features and a simpler and faster runtime.
JSON, short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects).
Local Area Network. An interconnection of computers that are in relatively close proximity to each other, such as within a building.
A template library written in Python that provides a familiar, non-XML syntax which compiles into Python modules for maximum performance.
Multi-disciplinary Analysis & Optimization
Metadata is information about an informational resource, such as a document (e.g,, a webpage), image, dataset or other resource. It describes context, content, and structure of the resource and its management through time.
A hierarchical structure with an Assembly at its root.
A Python package for creating and manipulating graphs and networks.
NASA Open Source Agreement. A software license approved by the Open Source Initiative (OSI). The National Aeronautics and Space Administration (NASA) releases some software under this license.
A unittest extension offering automatic test suite discovery and easy test authoring.
A nose plugin that exposes some features of version 3.2 of the coverage package, including html output and cobertura output.
NumPy is the fundamental package needed for scientific computing with Python. See
A process that allows remote connections to a Component or Container object. An ObjServer can represent an entire model if its top-level object is an Assembly, or it can represent a single object if its top-level object is some other type of Component.
A process that spawns a child process (ObjServer) encapsulating an instance of a particular Component or Container type.
Outer Mold Line
Open Source
Open Source Initiative.
Portable Batch System (PBS) is a queueing system. Jobs are submitted to the queue that reflects the resources needed, and a scheduler decides which ones to run when nodes become available. These decisions are made on the basis of length of run, how long a job has been waiting, and fair sharing of resources among different users.
Tools for using a Web Server Gateway Interface stack.
A tool to load, configure, and compose WSGI applications and servers.
A pluggable command-line frontend, including commands to setup package file layouts
Process id
Python Imaging Library
pip installs Python packages. It is a replacement for easy_install and uses mostly the same techniques for finding packages, so packages that were made easy_installable should be pip-installable as well.
A computer program that interacts with a host aplication to provide specific functionality without changing the host application.
See plugin
Public Variables
A component’s inputs and outputs. They are called “Public” variables because they are exposed to the framework; inputs can be set and outputs can be read by other framework components. In general, a Public Variable is a wrapper for some set of data and metadate that can include a value, a default value, optional min/max values, and units. Public Variables can also perform their own validation when being assigned to another Public Variable. OpenMDAO’s Public Variables are implemented using Traits, an open source extension to Python authored by Enthought, Inc.
A complete Python genetic algorithm framework
Pygments is a syntax highlighting package written in Python.
A Web framework
A Python parsing module
A YAML parser and emitter for Python.
A store of revisions. See revision.
An object responsible for allocating CPU/disk resources for a particular host, cluster, load balancer, etc.
An object that manages a number of child objects that are responsible for allocating CPU and disk resources, either locally or for a particular cluster or a particular load balancer. The RAM can be queried to determine the current allocation of resources for the given system. This includes host and PID information for all Components.
An object containing information defining system attributes required to select a viable place to run a code.
A plain-text markup syntax and parser system used for in-line program documentation (such as Python docstrings), for quickly creating simple Web pages, and for standalone documents. The reStructuredText parser is a component of Docutils.
A snapshot of the state of files and directories, including their content. A revision also has some metadata associated with it, including who committed it, when it was committed, a commit message, and the parent revisions from which it was derived.
A Python module for roman numerals.
A Routing package for Python that matches URLs to dicts (dictionary network protocols) and vice versa.
SciPy (pronounced “Sigh Pie”) is open-source software for mathematics, science, and engineering.
A collection of Python modules that are useful for scientific computing.
Tools for downloading, building, installing, upgrading, and uninstalling Python packages.
Simple, fast, extensible JSON encoder/decoder for Python.
A Python documentation generator. It translates reStructuredText markup language into html.
Database Abstraction Library
A placeholder for a plugin within a Component.
A list that holds only objects that provide a particular interface.
See Socket.
A special kind of trait that contains a string that points to some location in the OpenMDAO variable tree.
Simplified Wrapper and Interface Generator. A software development tool that connects programs written in C and C++ with a variety of high-level programming languages. Go to for more information.
Tempita is a small templating language for text substitution.
A ticket is a file contained within an issue (or bug) tracking system that contains information about a request, often by an end user, to fix a bug or make some other change to a computer software package. A ticket has a unique reference number (ticket number) that allows the submitter, software developer, or other technical staff to quickly locate, add to, or communicate the status of the submitter’s issue or request. Once OpenMDAO’s bug-tracking tool is in place, all changes to the software will require a ticket, and the ticket number will identify the software branch where the change is being made.
A software package from Enthought, Inc. that aids in developing Python code. A trait is a type definition that can be used for normal Python object attributes, giving the attributes some additional characteristics. See The Traits package works with version 2.4 and later of Python and is similar in some ways to the Python property language feature.
The base class used to validate and possibly convert data objects that are passed between linked Components.
An egg used by OpenMDAO that provides unit conversion capability for variables.
A wrapper for data passed between framework components. Variables can contain a value, a default value, optional min/max values, and units. Variables can perform their own validation when being assigned to another Variable. To extend the framework by creating a new data type to be passed between Components, a developer would create a new Python class that inherits from Variable. This Variable would have its own validation routine and could also have a custom viewer/editor.
Vehicle Sketch Pad. VSP is a rapid geometry creation tool used to create a wide range of aerospace vehicles from a combination of predefined components. It provides highly interactive sketching of concepts with immediate visual feedback.
A Python package for Web error handling and exception catching.
A library of helper functions intended to make writing templates in Web applications easier. It’s the standard function library for Pylons and TurboGears 2. It also contains a large number of functions not specific to the Web, including text processing, number formatting, date calculations, container objects, etc.
WSGI request and response object
Helper to test WSGI applications. This wraps any WSGI application and makes it easy to send test requests to that application without starting up an HTTP server.
A Workflow controls the execution order of a group of Components. The Workflow class supports simple sequential execution. Other classes inheriting from Workflow will support different execution schemes, e.g., concurrent execution, conditional execution, and looping of various types.
Web Server Gateway Interface. WSGI is a standard interface for Python Web applications to communicate with Web servers.
YAML is a data serialization format designed for human readability and interaction with scripting languages.
Zope is an open source application server for building content management systems, intranets, portals, and custom applications. Zope is written in Python, an object-oriented scripting language.
Zope Component Architecture
The zope.deferredimport package provided facilities for defining names in modules that will be imported from somewhere else when used.
This package provides a simple function called “deprecated(names, reason)” to deprecate Python objects.
A very basic event publishing system.
This package provides facilities for delaring messages (which carry a translation source domain and possibly a default translation) within program source text; translation of the messages is the responsiblitiy of the “zope.i18n” package.
A package that provides an implementation of object interfaces for Python.
Generic transparent proxies. Proxies are special objects which serve as mostly transparent wrappers around another object, intervening in the apparent behavior of the wrapped object only when necessary to apply the policy (e.g., access checking, location brokering, etc.) for which the proxy is responsible.
zope.interface extension for defining data schemas
ZopeSkel provides a collection of skeletons for quickstarting Zope and Plone projects.
OpenMDAO Home

Previous topic

Style Guide

This Page