[Coin-ipopt] IPOPT+CUTEr can't work

Dominique Orban Dominique.Orban at polymtl.ca
Wed Nov 9 13:41:04 EST 2005


Dear both,

Now that I look into it, it would appear that the libraries in IPOPT 
have changed name and location in the last few releases on the Fortran 
distribution. I hadn't noticed as I have mostly been using the AMPL 
interface lately.

To summarize, there are two files to alter,
* the ipopt.liblist created by one of the IPOPT Makefiles and placed in 
$MYCUTER/double/lib
* the CUTEr script $MYCUTER/bin/ipopt

I have been playing with ipopt.liblist and it seems that libipcore.a 
needs libiptron.a but libiptron.a also needs libipcore.a so that 
regardless of the order in which the libs appear there are missing 
symbols. The (brutal) workaround is to repeat libipcore twice in the 
list. The file ipopt.liblist should look like this:

-L$IPOPT/IPOPT/ipopt -lipcore -L$IPOPT/OTHERS/TRON -liptron 
-L$IPOPT/IPOPT/ipopt -lipcore -L$IPOPT/OTHERS/HSL -liphsl -llapack 
-L$IPOPT/OTHERS/blas -lipblas

in that order, where $IPOPT is the directory where IPOPT is installed.

Now in $MYCUTER/bin/ipopt we should have (line 168)

SETENV SYSLIBS = "`cat $MYCUTER/double/lib/ipopt.liblist`"

and a few lines below (line 182)

SETENV PACKOBJ = ""  # nothing

Now, doing 'sdipopt HS11' produces the expected output. I'll fix the 
script in the CUTEr distribution.

I hope all works well for everyone now.

Andreas, shame on me, I haven't yet tried the C++ IPOPT. Does the CUTEr 
interface also work with ipopt.liblist? If so, should it also be fixed?

Don't give up on IPOPT, Lihong, it is fantastic software.

Cheers,
Dominique


Andreas Waechter wrote:
> Lihong,
> 
> Please verify that you did the following steps (or repeat them now):
> 
> 1. run the configure script for Ipopt (with our options)
> 2. make install
> 3. make cuter
> 
> After that, the file
> 
> $MYCUTER/double/lib/ipopt.liblist
> 
> should include the flags necessary to link with Ipopt, such as
> 
> -L/home/andreasw/COIN/OBJgcc/Ipopt/lib -lipopt -llapack -lblas
> 
> This file should be read by the CUTEr script
> 
> $MYCUTER/double/bin/ipopt
> 
> and used to link the executable for a particular SIF problem.
> 
> You seem to be working on a SUN.  I have no experience with using CUTEr on
> a SUN.  If you still have problems using CUTEr, it is probably best to
> contact the developers of CUTEr.  (Dominique, if you are reading this, do
> you have an idea about what is going on?)
> 
> Regards,
> 
> Andreas
> 
> On Tue, 8 Nov 2005, Lihong Zhang wrote:
> 
> 
>>Hi All,
>>
>>I want to use IPOPT to solve nonlinear problems modelled
>>in SIF. I encountered some problems on the installation.
>>I have installed SifDec, CUTEr and IPOPT. I defined the
>>following environment variables: CUTER, MYCUTER,
>>SIFDEC, MYSIFDEC, MASTSIF. Now the "sifdecode"
>>can work. However, when I typed "sdipopt HS11.SIF",
>>the following message was obtained.
>>
>>********************************
>>[lihong at si]tmp> sdipopt
>>HS11.SIF
>>Problem name: HS11
>>
>>Double precision version will be formed.
>>
>>The objective function uses        1 nonlinear group
>>
>>There  is        1 nonlinear inequality constraint
>>
>>There are        2 free variables
>>
>>
>>
>>-lipopt object file not in
>>/homes/lihong/cvs/cuter/CUTEr.large.sun.sol.g77/double/bin/
>>Terminating execution.
>>********************************
>>
>>By the way, IPOPT+AMPL works perfectly. The version of
>>IPOPT that I am using is release 2.2.1e (Fortran).
>>Could you please give me any help on this issue? Is anything wrong
>>with my installation?
>>
>>Any of your suggestions are strongly appreciated. I look forward
>>to hearing from you.
>>
>>Best regards,
>>
>>Lihong
>>_______________________________________________
>>Coin-ipopt mailing list
>>Coin-ipopt at list.coin-or.org
>>http://list.coin-or.org/mailman/listinfo/coin-ipopt
>>
> 
> 
> _______________________________________________
> Coin-ipopt mailing list
> Coin-ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-ipopt
> 



More information about the Coin-ipopt mailing list