Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::OptiOptions Struct Reference

Options for solving optimization problems. More...

#include <OptiOptions.hpp>

Collaboration diagram for janus::OptiOptions:

Public Member Functions

OptiOptionsset_max_iter (int v)
 Set maximum iterations.
OptiOptionsset_max_cpu_time (double v)
 Set maximum CPU time.
OptiOptionsset_tol (double v)
 Set convergence tolerance.
OptiOptionsset_verbose (bool v)
 Set verbosity.
OptiOptionsset_jit (bool v)
 Enable or disable JIT compilation.
OptiOptionsset_detect_simple_bounds (bool v)
 Enable simple bound detection.
OptiOptionsset_mu_strategy (const std::string &v)
 Set IPOPT barrier parameter strategy.
OptiOptionsset_solver (Solver v)
 Set the NLP solver.
OptiOptionsset_snopt_opts (const SNOPTOptions &v)
 Set SNOPT-specific options.

Public Attributes

Solver solver = Solver::Ipopt
 NLP solver to use.
SNOPTOptions snopt_opts
 SNOPT-specific options (if solver=SNOPT).
int max_iter = 1000
 Maximum iterations.
double max_cpu_time = 1e20
 Maximum solve time [seconds].
double tol = 1e-8
 Convergence tolerance.
bool verbose = true
 Print solver progress.
bool jit = false
 JIT compile expressions (experimental).
bool detect_simple_bounds = false
 Detect simple variable bounds.
std::string mu_strategy = "adaptive"
 Barrier parameter strategy (IPOPT).

Detailed Description

Options for solving optimization problems.

Configures solver behavior. Most users can use defaults.

Usage (designated initializers - must follow declaration order): opti.solve({.max_iter = 500, .verbose = false});

Usage (builder pattern - any order): opti.solve(OptiOptions{}.set_verbose(false).set_max_iter(500));

Usage (alternative solver): opti.solve({.solver = janus::Solver::Snopt});

See also
Opti::solve for usage

Member Function Documentation

◆ set_detect_simple_bounds()

OptiOptions & janus::OptiOptions::set_detect_simple_bounds ( bool v)
inline

Enable simple bound detection.

Parameters
vtrue to enable
Returns
reference to this for chaining

◆ set_jit()

OptiOptions & janus::OptiOptions::set_jit ( bool v)
inline

Enable or disable JIT compilation.

Parameters
vtrue to enable JIT (experimental)
Returns
reference to this for chaining

◆ set_max_cpu_time()

OptiOptions & janus::OptiOptions::set_max_cpu_time ( double v)
inline

Set maximum CPU time.

Parameters
vtime limit in seconds
Returns
reference to this for chaining

◆ set_max_iter()

OptiOptions & janus::OptiOptions::set_max_iter ( int v)
inline

Set maximum iterations.

Parameters
viteration limit
Returns
reference to this for chaining

◆ set_mu_strategy()

OptiOptions & janus::OptiOptions::set_mu_strategy ( const std::string & v)
inline

Set IPOPT barrier parameter strategy.

Parameters
vstrategy name (e.g. "adaptive", "monotone")
Returns
reference to this for chaining

◆ set_snopt_opts()

OptiOptions & janus::OptiOptions::set_snopt_opts ( const SNOPTOptions & v)
inline

Set SNOPT-specific options.

Parameters
vSNOPT options struct
Returns
reference to this for chaining

◆ set_solver()

OptiOptions & janus::OptiOptions::set_solver ( Solver v)
inline

Set the NLP solver.

Parameters
vsolver enum value
Returns
reference to this for chaining

◆ set_tol()

OptiOptions & janus::OptiOptions::set_tol ( double v)
inline

Set convergence tolerance.

Parameters
vtolerance value
Returns
reference to this for chaining

◆ set_verbose()

OptiOptions & janus::OptiOptions::set_verbose ( bool v)
inline

Set verbosity.

Parameters
vtrue to print solver progress
Returns
reference to this for chaining

Member Data Documentation

◆ detect_simple_bounds

bool janus::OptiOptions::detect_simple_bounds = false

Detect simple variable bounds.

◆ jit

bool janus::OptiOptions::jit = false

JIT compile expressions (experimental).

◆ max_cpu_time

double janus::OptiOptions::max_cpu_time = 1e20

Maximum solve time [seconds].

◆ max_iter

int janus::OptiOptions::max_iter = 1000

Maximum iterations.

◆ mu_strategy

std::string janus::OptiOptions::mu_strategy = "adaptive"

Barrier parameter strategy (IPOPT).

◆ snopt_opts

SNOPTOptions janus::OptiOptions::snopt_opts

SNOPT-specific options (if solver=SNOPT).

◆ solver

Solver janus::OptiOptions::solver = Solver::Ipopt

NLP solver to use.

◆ tol

double janus::OptiOptions::tol = 1e-8

Convergence tolerance.

◆ verbose

bool janus::OptiOptions::verbose = true

Print solver progress.


The documentation for this struct was generated from the following file: