Installation#

opyrability is distributed on PyPI and installs with pip; all required dependencies come with it.

From PyPI (Windows, Linux and macOS):#

The command below installs opyrability and all of its required dependencies on any OS (Windows, Linux and macOS):

pip install opyrability

This includes the default nonlinear-programming solver, Pounce (a pure-Rust port of IPOPT installed from precompiled binaries), so the operability calculations that need a nonlinear programming solver just works out of the box with no extra setup.

Optional IPOPT backend: cyipopt is now optional and only needed if you pass method='ipopt' to the inverse mapping. Install it from conda when you want that backend:

conda install -c conda-forge cyipopt

Optional algebraic, equation-oriented modeling: For Pyomo/OMLT model support, install the extras:

pip install "opyrability[pyomo]"

Optional interactive plots: The dynamic operability funnels render as static matplotlib figures by default. To get interactive 3D funnels (engine='plotly'), install Plotly via the extra:

pip install "opyrability[plotly]"

Using in a Google Colab environment:#

opyrability installs in a Colab session with a single pip command:

!pip install opyrability

Dependencies#

Opyrability can only exist thanks to the following great software libraries that are dependencies:

  • Numpy - Linear Algebra.

  • Scipy - Scientific computing in Python.

  • Polytope - Computational Geometry.

  • matplotlib - 2D/3D Plots.

  • tqdm - Fancy progress bars (why not?).

  • CVXOPT - Linear programming, allowing access to GLPK in Python.

  • Pounce - The default nonlinear-programming solver (a pure-Rust port of IPOPT with the bundled FERAL linear solver).

  • JAX - JAX for automatic differentiation!

Optional dependencies (installed only and if you need them):

  • cyipopt - IPOPT wrapper in Python; the optional method='ipopt' backend.

  • Pyomo and pyomo-pounce - equation-oriented (Pyomo/OMLT) model support, via pip install "opyrability[pyomo]".

  • Plotly - interactive 3D operability funnels (engine='plotly'), via pip install "opyrability[plotly]".