[Ipopt] API to Determine if Linear Backend is Present?

Stefan Vigerske stefan at math.hu-berlin.de
Mon Feb 10 23:27:43 EST 2014


Hi,

so far, there is no simple API (but it may be worth to add some functions).
If you have an IpoptApplication in hand, you could check which values 
are allowed for the linear_solver option:

Something in the sense of

Ipopt::SmartPtr<Ipopt::IpoptApplication> ipopt = new 
Ipopt::IpoptApplication();
const Ipopt::RegisteredOptions::RegOptionsList& 
optionlist(ipopt->RegOptions()->RegisteredOptionsList());

SmartPtr<RegisteredOption> opt = 
optionslist.find("linear_solver")->second();

const std::vector<Ipopt::RegisteredOption::string_entry>& 
settings(opt->GetValidStrings());

Now settings should be a vector of pairs of string, with each first 
value giving you the name of a linear solver.

Note, that this also lists linear solvers where the interface was build 
into the Ipopt library, but the solver itself has not been available at 
buildtime but Ipopt will try to load at runtime (HSL solvers, Pardiso), 
if requested.

Hope that helps,
Stefan

On 02/05/2014 02:00 AM, Breannan Smith wrote:
> Is there functionality within the Ipopt API to determine whether or
> not a given linear backend is available? I suppose I can instantiate a
> dummy problem with the desired solver and check the return value, but
> I wanted to see whether or not something simpler is available.
>
> Thanks!
>
> Best regards,
> Breannan Smith
> smith at cs.columbia.edu
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>



More information about the Ipopt mailing list