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

Senses,Begum bgmsenses at ufl.edu
Tue Aug 26 07:38:45 EDT 2014


Hi Joel, 

Sorry for my late reply. As Tony mentioned, I am not
using CSPARSE as the linear solver for IPOPT. KKT matrices arising in
IPOPT are indefinite matrices and CSPARSE can not solve indefinite
systems. CSPARSE has the approximate minimum degree algorithm in it. I
am using this algorithm to change the ordering of KKT matrices.  

realized that my CSPARSE functions were working fine even before I sent
an email to group. A bug in my code was causing MATLAB crash so if
anyone wants to link a third party software to IPOPT you can use the
steps that I explained in my earlier emails.  

Have a great day. 

Mon, 25 Aug 2014 10:14:22 +0200, Joel Andersson wrote: 

> 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 :
>> 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
>> On Wed, 20 Aug 2014 18:34:53 -0700, Tony Kelman
>>> 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
>>> -----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
>>> 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.
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
>>>> -----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
>>>> 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.
>>>> @PKG_CONFIG@ --libs ipopt |
sed -e 's/-framework vecLib//g'` I changed
>>>> this line with

>>>> @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.
>>>>> 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
This third party software is called CSPARSE which is written by
>>>>> Davis. I was able to use this software in this file before but
>>>>> stopped working. Obviously I have changed something somewhere
but I
>>>>> could not find it maybe one of you can think of
>>>>> These are the steps that I am performing right
>>>>> 1) Compile the third party software and obtain
libcsparse.a library.
>>>>> 2) Copy this library to CoinIpopt/lib
>>>>> 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
>>>>> {
>>>>> #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
>>>>> Ipopt::Ma57TSolverInterface::SymbolicFactorization(int
>>>>> int const*) in libipopt.a(IpMa57TSolverInterface.o)

>>>>> cs_amd is the function that I am trying to use from CSPARSE
>>>>> Thank you.
>> -- 
>> Senses, Begum
>> Ipopt mailing list
Ipopt at list.coin-or.org [1]
http://list.coin-or.org/mailman/listinfo/ipopt [2]
> -- 
> -- 
> 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)


Senses, Begum

[1] mailto:Ipopt at list.coin-or.org
mailto:bgmsenses at ufl.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20140826/ffbcadac/attachment.html>

More information about the Ipopt mailing list