16.01.2015 Views

GAMS — The Solver Manuals - Available Software

GAMS — The Solver Manuals - Available Software

GAMS — The Solver Manuals - Available Software

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

COIN-OR 81<br />

• the implementation paper A. Wächter and L. T. Biegler, On the Implementation of a Primal-Dual Interior<br />

Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming<br />

106(1), pp. 25-57, 2006.<br />

Most of the Ipopt documentation in the section was taken from the Ipopt manual available on the Ipopt web site.<br />

5.1 Model requirements<br />

Ipopt can handle nonlinear programming models which functions can be nonconvex, but should be twice continuously<br />

differentiable. <strong>GAMS</strong>/CoinIpopt now supports user-defined scalings of variables and equations using the<br />

.scale suffix and scaleopt option (see chapter 17.2 of the <strong>GAMS</strong> User’s Guide).<br />

5.2 Usage of CoinIpopt<br />

<strong>The</strong> following statement can be used inside your <strong>GAMS</strong> program to specify using CoinIpopt<br />

Option NLP = CoinIpopt; { or LP, RMIP, DNLP, RMINLP, QCP, RMIQCP }<br />

<strong>The</strong> above statement should appear before the Solve statement. If CoinIpopt was specified as the default solver<br />

during <strong>GAMS</strong> installation, the above statement is not necessary.<br />

5.3 <strong>The</strong> linear solver in Ipopt<br />

<strong>The</strong> performance and robustness of Ipopt on larger models heavily relies on the used solver for sparse symmetric<br />

indefinite linear systems. <strong>GAMS</strong>/CoinIpopt includes the multifrontal massively parallel sparse direct solver<br />

MUMPS (http://graal.ens-lyon.fr/MUMPS). <strong>The</strong> user can provide the Parallel Sparse Direct <strong>Solver</strong> PARDISO<br />

or routines from the Harwell Subroutine Library (HSL) as shared (or dynamic) libraries to replace MUMPS.<br />

Using Harwell Subroutine Library routines with <strong>GAMS</strong>/CoinIpopt<br />

If you have routines from the HSL available and want Gams/CoinIpopt to use them, you can provide them<br />

in a shared library. <strong>GAMS</strong>/CoinIpopt can use MA27, MA28, MA57, and MC19. By telling Ipopt to use<br />

one of these routines (see options linear solver, linear system scaling, nlp scaling method, dependency detector)<br />

<strong>GAMS</strong>/CoinIpopt attempts to load the required routines from the library libhsl.so (Unix-Systems), libhsl.dylib<br />

(MacOS X), or libhsl.dll (Windows). You can also specify the path and name for this library with the option<br />

hsl library.<br />

For example,<br />

linear_solver ma27<br />

hsl_library /my/path/to/the/hsllib/myhsllib.so<br />

tells Ipopt to use the linear solver MA27 from the HSL library myhsllib.so under the specified path.<br />

<strong>The</strong> HSL routines MA27, MA28, and MC19 are available at http://www.cse.clrc.ac.uk/nag/hsl. Note that<br />

it is your responsibility to ensure that you are entitled to download and use these routines! You can build a<br />

shared library using the ThirdParty/HSL project at COIN-OR.<br />

Using PARDISO routines with <strong>GAMS</strong>/CoinIpopt<br />

If you have the linear solver PARDISO available, then you can tell Gams/CoinIpopt to use by setting the<br />

linear solver option to pardiso. <strong>GAMS</strong>/CoinIpopt then attempts to load the library libpardiso.so (Unix-Systems),<br />

libpardiso.dylib (MacOS X), or libpardiso.dll (Windows). You can also specify the path and name for this library<br />

with the option pardiso library.<br />

For example,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!