| Option | Default Value | Description |
|---|
| | |
| Primary options | | |
| | |
| tol | 1e-8 | termination tolerance on KKT residual |
| callback | SparseCallback | type of callback (SparseCallback or DenseCallback) |
| kkt_system | SparseKKTSystem | type of primal-dual KKT system |
| linear_solver | MumpsSolver | linear solver used for solving primal-dual KKT system |
| | |
| General options | | |
| | |
| rethrow_error | true | rethrow any error encountered during the algorithm |
| disable_garbage_collector | false | disable garbage collector in MadNLP |
| blas_num_thread | 1 | number of threads to use in the BLAS backend |
| intermediate_callback | AbstractUserCallback | Intermediate callback called at each IPM iteration |
| Output options | | |
| | |
| output_file | "" | if not "", the output log is teed to the file at this path |
| print_level | INFO | verbosity level in MadNLP |
| file_print_level | INFO | verbosity level in file output |
| | |
| Termination options | | |
| | |
| max_iter | 3000 | maximum number of interior-point iterations |
| max_wall_time | 1e6 | maximum wall time in seconds |
| acceptable_tol | 1e-6 | acceptable tolerance on KKT residual |
| acceptable_iter | 15 | number of acceptable iterates before stopping algorithm |
| diverging_iter | 1e20 | threshold on KKT residual to declare algorithm as diverging |
| s_max | 100.0 | scaling threshold for KKT residual |
| | |
| NLP options | | |
| | |
| kappa_d | 1e-5 | weight for linear damping term |
| fixed_variable_treatment | MakeParameter | treatment for the fixed variables (MakeParameter or RelaxBound) |
| equality_treatment | EnforceEquality | treatment for the equality constraints (EnforceEquality or RelaxEquality) |
| bound_relax_factor | 1e-8 | factor for initial relaxation of bounds |
| jacobian_constant | false | set to true if the constraints are linear. |
| hessian_constant | false | set to true if the problem is linear or quadratic |
| hessian_approximation | ExactHessian | method used to approximate the Hessian |
| quasi_newton_options | QuasiNewtonOptions() | options for quasi-Newton algorithm |
| inertia_correction_method | InertiaAuto | inertia correction mechanism |
| inertia_free_tol | 0.0 | tolerance for inertia free method |
| default_primal_regularization | 0.0 | default regularization for primal variable blocks in the KKT system |
| default_dual_regularization | 0.0 | default regularization for dual variable blocks in the KKT system |
| | |
| Initialization | | |
| | |
| dual_initialized | false | specify if dual initial point is available |
| dual_initialization_method | DualInitializeLeastSquares | method to compute the initial dual multipliers |
| constr_mult_init_max | 1e3 | maximum allowable value in initial dual multipliers |
| bound_push | 1e-2 | minimum absolute distance from the initial point to bound |
| bound_fac | 1e-2 | minimum relative distance from the initial point to bound |
| nlp_scaling | true | scale nonlinear program |
| nlp_scaling_max_gradient | 100.0 | maximum gradient after NLP scaling |
| | |
| Hessian perturbation | | |
| | |
| min_hessian_perturbation | 1e-20 | smallest perturbation of Hessian block in inertia correction |
| first_hessian_perturbation | 1e-4 | first value tried in inertia correction |
| max_hessian_perturbation | 1e20 | largest perturbation of Hessian block in inertia correction |
| perturb_inc_fact_first | 1e2 | increase factor for primal perturbation for very first perturbation |
| perturb_inc_fact | 8. | increase factor for primal perturbation |
| perturb_dec_fact | 1/3 | decrease factor for primal perturbation |
| jacobian_regularization_exponent | 1/4 | exponent for mu in the regularization of rank-defficient Jacobian |
| jacobian_regularization_value | 1e-8 | size of regularization for rank-defficient Jacobian |
| | |
| Feasible restoration | | |
| | |
| soft_resto_pderror_reduction_factor | 0.9999 | required reduction in primal-dual error in the soft restoration phase |
| required_infeasibility_reduction | 0.9 | required reduction of infeasibility before leaving restoration phase |
| | |
| Line search | | |
| | |
| obj_max_inc | 5. | upper bound on the acceptable increase of barrier objective function |
| kappha_soc | 0.99 | factor in the sufficient reduction rule for second order correction |
| max_soc | 4 | maximum number of second order correction trial steps at each iteration |
| alpha_min_frac | 0.05 | safety factor for the minimal step size |
| s_theta | 1.1 | exponent for current constraint violation in the switching rule |
| s_phi | 2.3 | exponent for linear barrier function model in the switching rule |
| eta_phi | 1e-4 | relaxation factor in the Armijo condition |
| kappa_soc | 0.99 | factor in the sufficient reduction rule for second order correction |
| gamma_theta | 1e-5 | relaxation factor in the filter margin for the constraint violation |
| gamma_phi | 1e-5 | relaxation factor in the filter margin for the barrier function |
| delta | 1.0 | multiplier for constraint violation in the switching rule |
| kappa_sigma | 1e10 | factor limiting the deviation of dual variables from primal estimates |
| barrier_tol_factor | 10.0 | factor for mu in barrier stop test |
| rho | 1000.0 | value in penalty parameter update formula |
| | |
| Barrier | | |
| | |
| barrier | MonotoneUpdate | algorithm to update barrier parameter |
| tau_min | 0.99 | lower bound on fraction-to-the-boundary parameter tau |
| | |