[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