How to Cite OpenMDAO

Depending on which parts of OpenMDAO you are using, there are different papers that are appropriate to cite. OpenMDAO can tell you which citations are appropriate, accounting for what classes you’re actually using in your model.

Here is a simple example

from openmdao.api import Problem, ScipyOptimizeDriver, ExecComp, IndepVarComp

# build the model
prob = Problem()
indeps = prob.model.add_subsystem('indeps', IndepVarComp())
indeps.add_output('x', 3.0)
indeps.add_output('y', -4.0)

prob.model.add_subsystem('paraboloid', ExecComp('f = (x-3)**2 + x*y + (y+4)**2 - 3'))

prob.model.connect('indeps.x', 'paraboloid.x')
prob.model.connect('indeps.y', 'paraboloid.y')

# setup the optimization
prob.driver = ScipyOptimizeDriver()
prob.driver.options['optimizer'] = 'SLSQP'

prob.model.add_design_var('indeps.x', lower=-50, upper=50)
prob.model.add_design_var('indeps.y', lower=-50, upper=50)
prob.model.add_objective('paraboloid.f')

prob.setup()
prob.run_driver()

# minimum value
print(prob['paraboloid.f'])

# location of the minimum
print(prob['indeps.x'])
print(prob['indeps.y'])
Optimization terminated successfully.    (Exit mode 0)
            Current function value: -27.333333333333336
            Iterations: 5
            Function evaluations: 6
            Gradient evaluations: 5
Optimization Complete
-----------------------------------
[-27.33333333]
[6.66666667]
[-7.33333333]

With the openmdao command

If you copy the above script into a file called paraboloid.py, then you can get the citations from the command line using the openmdao command-line script. For example:

openmdao cite paraboloid.py
Class: <class 'openmdao.core.problem.Problem'>
    @inproceedings{2014_openmdao_derivs,
        Author = {Justin S. Gray and Tristan A. Hearn and Kenneth T. Moore
                  and John Hwang and Joaquim Martins and Andrew Ning},
        Booktitle = {15th AIAA/ISSMO Multidisciplinary Analysis and Optimization Conference},
        Doi = {doi:10.2514/6.2014-2042},
        Month = {2014/07/08},
        Publisher = {American Institute of Aeronautics and Astronautics},
        Title = {Automatic Evaluation of Multidisciplinary Derivatives Using
                 a Graph-Based Problem Formulation in OpenMDAO},
        Year = {2014}
    }
Class: <class 'openmdao.drivers.scipy_optimizer.ScipyOptimizeDriver'>
    
    @phdthesis{hwang_thesis_2015,
      author       = {John T. Hwang},
      title        = {A Modular Approach to Large-Scale Design Optimization of Aerospace Systems},
      school       = {University of Michigan},
      year         = 2015
    }