From 7ea3be34534ba234aa61574559231fd7bcf29fd5 Mon Sep 17 00:00:00 2001 From: Ella Wu <602725+ewu63@users.noreply.github.com> Date: Sat, 29 Nov 2025 21:18:13 -0800 Subject: [PATCH] clean up documentation on IPOPT --- doc/index.rst | 6 ++++++ doc/install.rst | 3 +-- doc/optimizers/IPOPT.rst | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/doc/index.rst b/doc/index.rst index 47c4ed5e..7f6f7d5b 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -10,6 +10,12 @@ Some key features of pyOptSparse include: - The optimization histories can be stored during the optimization process, and a partial history can also be used to hot-restart the optimization - A post-processing GUI utility called OptView to analyze optimization results +The list of supported optimizers is shown on the sidebar to the left. +Of those, the following are not installed by default: + +- SNOPT and NLPQLP are proprietary and must be obtained from their respective authors +- IPOPT and ParOpt must be installed separately + pyOptSparse is a fork of `pyOpt `_. However, it is not backwards compatible with pyOpt and thus optimization scripts will need to be modified to use pyOptSparse. diff --git a/doc/install.rst b/doc/install.rst index 836d9a3f..29ff593d 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -11,7 +11,7 @@ Conda packages are available on ``conda-forge`` and can be installed via conda install -c conda-forge pyoptsparse -This would install pyOptSparse with the built-in optimizers, as well as IPOPT. +This would install pyOptSparse with the built-in optimizers. If you wish to use optimizers not packaged by ``conda``, e.g. SNOPT, then you must either build the package from source or use the installation script below. If you have the SNOPT precompiled library available, it is possible to dynamically link it to pyOptSparse following the instructions on the :ref:`SNOPT installation page`. @@ -142,7 +142,6 @@ This can be verified by manually importing the compiled library that's causing t If this throws a ``missing symbol`` error, then there is likely a linking issue at compile time. If, on the other hand, this throws a ``error while loading shared libraries``, then it's probably a runtime issue with a shared library. -Check to make sure that the ``$LD_LIBRARY_PATH`` is set correctly, for example when running IPOPT. Update or Uninstall diff --git a/doc/optimizers/IPOPT.rst b/doc/optimizers/IPOPT.rst index 227c9a9e..fe07affd 100644 --- a/doc/optimizers/IPOPT.rst +++ b/doc/optimizers/IPOPT.rst @@ -8,9 +8,12 @@ The source code can be found `here `_. Installation ------------ IPOPT and its Python interface `cyipopt ` must be installed separately. -Follow the instructions `here `_. -OpenMDAO also has a very helpful `script `_ which can be used to install IPOPT with other linear solvers, -but it does not install ``cyipopt`` for you. +There are several ways to install IPOPT and its Python bindings: +#. The simplest option is to use conda-forge to install ``cyipopt``. This is recommended for most people. +#. Either compile IPOPT yourself or use a pre-built binary, then install ``cyipopt`` from source. + Follow the instructions `here `_. +#. Use the helper script `build_pyoptsparse ` by the team at OpenMDAO. + This will install IPOPT and ``cyipopt`` for you. Options -------