|
4 | 4 | =====
|
5 | 5 | IPOPT (Interior Point OPTimizer) is an open source interior point optimizer, designed for large-scale nonlinear optimization.
|
6 | 6 | The source code can be found `here <https://www.coin-or.org/download/source/Ipopt/>`_.
|
7 |
| -The latest version we support is 3.13.2. |
| 7 | +The latest version we support is 3.14.17. |
8 | 8 |
|
9 | 9 | Installation
|
10 | 10 | ------------
|
11 |
| -IPOPT must be installed separately, then linked to pyOptSparse when building. |
12 |
| -For the full installation instructions, please see `their documentation <https://coin-or.github.io/Ipopt/INSTALL.html>`_. |
13 |
| -OpenMDAO also has a very helpful `script <https://github.com/OpenMDAO/build_pyoptsparse/>`_ which can be used to install IPOPT with other linear solvers. |
14 |
| -Here we explain a basic setup using MUMPS as the linear solver, together with METIS adapted from the OpenMDAO script. |
15 |
| - |
16 |
| -#. Download the tarball and extract it to ``$IPOPT_DIR`` which could be set to for example ``$HOME/packages/Ipopt``. |
17 |
| - |
18 |
| -#. Install METIS, which can be used to improve the performance of the MUMPS linear solver. |
19 |
| - |
20 |
| - .. code-block:: bash |
21 |
| -
|
22 |
| - # build METIS |
23 |
| - cd $IPOPT_DIR |
24 |
| - git clone https://github.com/coin-or-tools/ThirdParty-Metis.git |
25 |
| - cd ThirdParty-Metis |
26 |
| - ./get.Metis |
27 |
| - ./configure --prefix=$IPOPT_DIR |
28 |
| - make |
29 |
| - make install |
30 |
| -
|
31 |
| -#. Install MUMPS |
32 |
| - |
33 |
| - .. code-block:: bash |
34 |
| -
|
35 |
| - # build MUMPS |
36 |
| - cd $IPOPT_DIR |
37 |
| - git clone https://github.com/coin-or-tools/ThirdParty-Mumps.git |
38 |
| - cd ThirdParty-Mumps |
39 |
| - ./get.Mumps |
40 |
| - ./configure --with-metis --with-metis-lflags="-L${IPOPT_DIR}/lib -lcoinmetis" \ |
41 |
| - --with-metis-cflags="-I${IPOPT_DIR}/include -I${IPOPT_DIR}/include/coin-or -I${IPOPT_DIR}/include/coin-or/metis" \ |
42 |
| - --prefix=$IPOPT_DIR CFLAGS="-I${IPOPT_DIR}/include -I${IPOPT_DIR}/include/coin-or -I${IPOPT_DIR}/include/coin-or/metis" \ |
43 |
| - FCFLAGS="-I${IPOPT_DIR}/include -I${IPOPT_DIR}/include/coin-or -I${IPOPT_DIR}/include/coin-or/metis" |
44 |
| - make |
45 |
| - make install |
46 |
| -
|
47 |
| -#. Build IPOPT |
48 |
| - |
49 |
| - .. code-block:: bash |
50 |
| -
|
51 |
| - # build IPOPT |
52 |
| - cd $IPOPT_DIR |
53 |
| - mkdir build |
54 |
| - cd build |
55 |
| - ../configure --prefix=${IPOPT_DIR} --disable-java --with-mumps --with-mumps-lflags="-L${IPOPT_DIR}/lib -lcoinmumps" \ |
56 |
| - --with-mumps-cflags="-I${IPOPT_DIR}/include/coin-or/mumps" |
57 |
| - make |
58 |
| - make install |
59 |
| -
|
60 |
| -#. You must add the IPOPT library path to the ``LD_LIBRARY_PATH`` variable for things to work right. |
61 |
| - This could be done for example by adding the following to your ``.bashrc``: |
62 |
| - |
63 |
| - .. code-block:: bash |
64 |
| -
|
65 |
| - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$IPOPT_DIR/lib |
66 |
| -
|
67 |
| - Furthermore, the environment variable ``$IPOPT_DIR`` must be set correctly in order to link to pyOptSparse. |
68 |
| - Alternatively, you can manually define the variables ``$IPOPT_LIB`` and ``$IPOPT_INC`` for the lib and include paths separately. |
69 |
| - |
70 |
| - |
71 |
| -#. Now clean build pyOptSparse. Verify that IPOPT works by running the relevant tests. |
| 11 | +IPOPT and its Python interface `cyipopt <https://github.com/mechmotum/cyipopt>` must be installed separately. |
| 12 | +Follow the instructions `here <https://cyipopt.readthedocs.io/en/stable/install.html>`_. |
| 13 | +OpenMDAO also has a very helpful `script <https://github.com/OpenMDAO/build_pyoptsparse/>`_ which can be used to install IPOPT with other linear solvers, |
| 14 | +but it does not install ``cyipopt`` for you. |
72 | 15 |
|
73 | 16 | Options
|
74 | 17 | -------
|
|
0 commit comments