Skip to content
Sensitivity calculations for nonlinear programming in IPOPT
C++ Shell C Matlab FORTRAN R Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is sIpopt version 2.0

sIpopt 2.0 is a fork of the popular NLP solver IPOPT ( The difference between the two is that sIpopt 2.0 allows the explicitly declaration of parameters in the optimization problem. This enables the implementation of algorithms that are based on the partial derivatives of the lagrangian and the constraints w.r.t. these parameters, such as sensitivity calculation, etc.

sIpopt 2.0 was developed in an effort to make the implementation of sensitivity calculations cleaner and more efficient than it would be without changing some core elements of Ipopt. If you would like to calculate sensitivities of the optimal solution, but would like to use the original version of Ipopt, there is sIpopt 1.0, which is in the contrib subdirectory of the Ipopt trunk.

For more information on the theory behind this, see
H. Pirnay, R. Lopez-Negrete, and L.T. Biegler, ​Optimal Sensitivity Based on IPOPT, Submitted for publication to Math Prog Comp, (Apr. 2011)


So far, sIPOPT2.0 has only been tested on linux. However, the issues for getting it to work on other operating systems should be exactly the same as those you encounter when installing regular IPOPT, so the same solutions should be applicable.

In the following $SIPOPT2 is supposed to be the base directory for sIPOPT2.

To install sIPOPT2, the follow these steps:

1. clone sIPOPT

for example, run

git clone $sIPOPT2

on the terminal.

2. get the ThirdParty stuff

You don't need to install it, just check out the trunk from svn (version 3.10.x should work as well).
Follow the directions for getting all the ThirdParty code that you'd like to use, just like when building Ipopt in

Now execute the following code:

cd $sIPOPT2/
ln -s $IPOPT_DIR/ThirdParty .

3. configure, build

It makes sense to separate source and build files. Therefore, start with

mkdir build
cd build

For the configure step, the same options apply as for Ipopt. When testing the code, I usually compile with these flags:

configure ../ --with-blas="-lblas" --with-lapack="-llapack" --enable-debug --with-ipopt-verbosity=10


make && make install

and you're ready to go!

4. running the AMPL interface

If you arrived at this point, you successfully built the AMPL executable and the Ipopt/sIpopt2 library.
To run the AMPL interface, put $sIPOPT2/build/bin/ipopt into your $PATH.

* Make sure you obey all copyrights / licenses
* This is a development code. Do not trust its results!

This package contains several subdirectories corresponding to COIN-OR
projects ( The AUTHORS, LICENSE and README files in
each of the subdirectories give more information about these projects.
Something went wrong with that request. Please try again.