pub struct RefinementOptions {
pub min_refinement_steps: Index,
pub max_refinement_steps: Index,
pub residual_ratio_max: Number,
pub residual_ratio_singular: Number,
pub residual_improvement_factor: Number,
pub neg_curv_test_tol: Number,
pub neg_curv_test_reg: bool,
}Expand description
Iterative-refinement knobs baked onto the assembled
crate::kkt::pd_full_space_solver::PdFullSpaceSolver. Defaults
mirror IpPDFullSpaceSolver.cpp:RegisterOptions. All were registered
but never read (#191).
Fields§
§min_refinement_steps: Indexmin_refinement_steps — minimum iterative-refinement steps per
linear solve.
max_refinement_steps: Indexmax_refinement_steps — maximum iterative-refinement steps.
residual_ratio_max: Numberresidual_ratio_max — refine until the residual test ratio drops
below this (or max_refinement_steps is reached).
residual_ratio_singular: Numberresidual_ratio_singular — above this ratio after failed
refinement, the system is declared singular.
residual_improvement_factor: Numberresidual_improvement_factor — minimum per-step reduction of the
residual test ratio before refinement is aborted.
neg_curv_test_tol: Numberneg_curv_test_tol — tolerance α_n of the inertia-free curvature
test of Zavala & Chiang (2014). Zero (the registered default)
disables the heuristic and keeps the inertia check; positive
turns the inertia check off and accepts the factorization only
when the computed direction passes the curvature test in
PdFullSpaceSolver::solve_once.
neg_curv_test_reg: boolneg_curv_test_reg — whether the curvature test includes the
primal regularization δ_x‖dx‖² + δ_s‖ds‖². Registered default
yes; no reproduces the original Ipopt form that ignores it.
Only consulted when neg_curv_test_tol > 0.
Trait Implementations§
Source§impl Clone for RefinementOptions
impl Clone for RefinementOptions
Source§fn clone(&self) -> RefinementOptions
fn clone(&self) -> RefinementOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RefinementOptions
impl Debug for RefinementOptions
Auto Trait Implementations§
impl Freeze for RefinementOptions
impl RefUnwindSafe for RefinementOptions
impl Send for RefinementOptions
impl Sync for RefinementOptions
impl Unpin for RefinementOptions
impl UnsafeUnpin for RefinementOptions
impl UnwindSafe for RefinementOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more