[Ipopt] Using a Third Party Software in IPOPT MA57 Interface

Joel Andersson j.a.e.andersson at gmail.com
Mon Aug 25 04:14:22 EDT 2014


Hello Begum,

For curiosity, does using CSparse work well together with IPOPT? Or did you
want to avoid the other linear solvers written in Fortran (and mostly with
non-permissive licenses)?

Did you use symbolic QR or LU? I assume you ignore symmetry?

Joel






2014-08-21 3:43 GMT+02:00 Senses,Begum <bgmsenses at ufl.edu>:

>
> I was just typing you an email about this. My code was working fine before
> therefore I did not even run make test. After I have started having
> troubles I have decided to run make test and you are right it should not
> work anyway because I am only adding -lcsparse into the matlabinterface
> makefile. I know I am having trouble using csparse functions because when I
> command out cparse functions I can run ipopt from Matlab without any
> trouble but when I add those functions my matlab crashes even before the
> first ipopt iteration. I am thinking maybe the problem is about an update I
> did in my computer (I dont remember doing any updates either but why would
> it stop working if I did not change anything.)
>
>
> On Wed, 20 Aug 2014 18:34:53 -0700, Tony Kelman wrote:
>
>> Are you sure you were running make test before, or were you just
>> building the Matlab interface? To run standalone executables like from
>> make test then you'll need to add -lcsparse to other link flags too,
>> not just in the MatlabInterface folder. I think there are some ADDLIBS
>> configure variables you can set for this.
>>
>>
>> -----Original Message----- From: Senses,Begum
>> Sent: Wednesday, August 20, 2014 6:18 PM
>> To: Tony Kelman
>> Cc: Ipopt
>> Subject: Re: [Ipopt] Using a Third Party Software in IPOPT MA57 Interface
>>
>>
>> Unfortunately It is still not working.
>>
>> On Wed, 20 Aug 2014 18:03:00 -0700, Tony Kelman wrote:
>>
>>> I don't think csparse uses pkg-config, but I could be wrong there.
>>>
>>> Try
>>> @COIN_HAS_PKGCONFIG_TRUE at LIBS =
>>> `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt |
>>> sed -e 's/-framework vecLib//g'` -lcsparse
>>>
>>> And if you're on a system that doesn't have pkg-config installed,
>>> then you'll need to add -lcsparse to the line that starts with
>>> @COIN_HAS_PKGCONFIG_FALSE at LIBS = ...
>>>
>>>
>>>
>>> -----Original Message----- From: Senses,Begum
>>> Sent: Wednesday, August 20, 2014 5:59 PM
>>> To: Tony Kelman
>>> Cc: Ipopt
>>> Subject: Re: [Ipopt] Using a Third Party Software in IPOPT MA57 Interface
>>>
>>>
>>> Hi Tony,
>>>
>>> I downloaded Ipopt again did all of these steps again and it still does
>>> not work. I have also tried adding the changes to the Makefile.in file.
>>>
>>> @COIN_HAS_PKGCONFIG_TRUE at LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@
>>> @PKG_CONFIG@ --libs ipopt | sed -e 's/-framework vecLib//g'` I changed
>>> this line with
>>>
>>> @COIN_HAS_PKGCONFIG_TRUE at LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@
>>> @PKG_CONFIG@ --libs ipopt csparse | sed -e 's/-framework vecLib//g'`
>>>
>>> and then ran the configure script again but it is still not working.
>>>
>>>
>>> On Wed, 20 Aug 2014 17:45:49 -0700, Tony Kelman wrote:
>>>
>>>> Begum,
>>>>
>>>> Sounds like you reran configure since you made that change. Configure
>>>> auto-generates the Makefiles from Makefile.in, overwriting any changes
>>>> you made. Try making the change where you add -lcsparse to LIBS in
>>>> Makefile.in instead, then run configure and it should work again.
>>>>
>>>> -Tony
>>>>
>>>>
>>>> -----Original Message----- From: Senses,Begum
>>>> Sent: Wednesday, August 20, 2014 5:36 PM
>>>> To: Ipopt
>>>> Subject: [Ipopt] Using a Third Party Software in IPOPT MA57 Interface
>>>>
>>>>
>>>> Hello everyone,
>>>>
>>>> I am trying to use a Third party software in
>>>>
>>>>
>>>>
>>>> ../CoinIpopt/Ipopt/src/Algorithm/LinearSolvers/
>>>> IpMa57SolverInterface.cpp.
>>>> This third party software is called CSPARSE which is written by Tim
>>>> Davis. I was able to use this software in this file before but it
>>>> stopped working. Obviously I have changed something somewhere but I
>>>> could not find it maybe one of you can think of anything.
>>>>
>>>> These are the steps that I am performing right now.
>>>>
>>>> 1) Compile the third party software and obtain libcsparse.a library.
>>>> 2) Copy this library to CoinIpopt/lib folder.
>>>> 3) Copy the main .h file of CSPARSE (cs.h) to the same folder with
>>>> IpMa57SolverInterface.cpp file which is in
>>>> CoinIpopt/Ipopt/src/Algorithm/LinearSolvers folder.
>>>> 4) Modify the makefile in CoinIpopt/Ipopt/contrib/MatlabInterface/src .
>>>> I used to have LIBS = -L/CoinIpopt/lib -lipopt . I added -lcsparse to
>>>> this line.
>>>> 5) The last step is adding
>>>>
>>>> extern "C"
>>>> {
>>>>
>>>> #include "cs.h"
>>>>
>>>> }
>>>>
>>>> command at the beginning of the IpMa57TSolverInterface.cpp file.
>>>>
>>>> As I mentioned before these steps used to work fine but now when I run
>>>> make test it gives me the following error
>>>>
>>>> Undefined symbols for architecture x86_64:
>>>>   "_cs_amd", referenced from:
>>>>       Ipopt::Ma57TSolverInterface::SymbolicFactorization(int const*,
>>>> int const*) in libipopt.a(IpMa57TSolverInterface.o)
>>>>
>>>> cs_amd is the function that I am trying to use from CSPARSE software.
>>>>
>>>> Thank you.
>>>>
>>>
> --
> Senses, Begum
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>



-- 
-- 
Joel Andersson, PhD
Ptge. Busquets 11-13, atico 3
E-08940 Cornella de Llobregat, Spain
Home: +34-93-6034011
Mobile: +32-486-672874 (Belgium) / +34-63-4408800 (Spain) / +46-707-360512
(Sweden)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20140825/f199cc03/attachment.html>


More information about the Ipopt mailing list