Skip to content

Installing Dymos

Basic installation

Dymos can be installed from pip using

python -m pip install dymos

The cutting-edge development version of Dymos may be installed with

python -m pip install git+https://github.com/OpenMDAO/dymos.git

Installation (developer mode)

If you intend to modify Dymos, build the documentation, or run the tests locally, you should add [all] to the PIP installation to include some documentation and testing-specific installation dependencies.

After cloning out Dymos to a local directory, installing using the -e flag installs Dymos in "developer mode." This removes the need to reinstall Dymos after changes are made.

git clone https://github.com/OpenMDAO/dymos.git ./dymos.git
python -m pip install -e dymos.git[all]

Installing Advanced Dependencies

Many of the simple dependencies for Dymos are installed via pip, however a few more dependencies are required in some more advanced use-cases.

Dymos will work "out-of-the-box" using OpenMDAO's ScipyOptimizeDriver for many of the more simple problems. For more complex problems, the implicit optimization techniques used by Dymos can easily generate problems with hundreds or even thousands of design variables and constraints. When the nonlinear optimization problems generated by Dymos become that complicated, the free optimizers available via ScipyOptimizeDriver can struggle to converge.

For this reason, the authors tend to use the open-source IPOPT optimizer or the proprietary SNOPT optimizer. Both of these optimizers are able to capitalize on the sparse nature of the optimal control problems generated by Dymos, significantly reducing the time and memory required to solve problems.

For uniform access to a variety of optimizers, including SLSQP, IPOPT, and SNOPT, Dymos uses OpenMDAO's pyOptSparseDriver, which interfaces to these external optimizers via pyoptsparse, produced by MDOLab at the University of Michigan.

Users on OS X and Linux systems can use our script, available at (https://github.com/OpenMDAO/build_pyoptsparse) to build and install pyoptsparse with support for IPOPT. The script will also handle support for SNOPT if the user has access to the SNOPT source code.

Installing these dependencies on Windows-based systems requires Intel Fortran. Free Fortran compilers on Windows, at the time of this writing, are not compatible with the Microsoft ABI used by Python on Windows.

mpi4py and petsc4py

Together, mpi4py and petsc4py enable parallel processing in Dymos via MPI. The easiest way to install mpi4py is to use the anaconda python environment.

    conda create -n py38 python=3.8;
    conda activate py38;
    conda config --add channels conda-forge;
    conda install mpi4py
    conda install petsc4py

MPI capability is generally only necessary in some very niche use-cases.