pub trait RestorationPhase {
// Provided methods
fn last_inner_iter_count(&self) -> Index { ... }
fn perform_restoration(
&mut self,
_data: &IpoptDataHandle,
_cq: &IpoptCqHandle,
_nlp: &Rc<RefCell<dyn IpoptNlp>>,
_aug_solver: &mut dyn AugSystemSolver,
) -> RestorationOutcome { ... }
fn set_debug_hook(&mut self, _hook: Option<Rc<RefCell<dyn DebugHook>>>) { ... }
fn set_orig_progress_check(&mut self, _cb: Option<OrigProgressCallback>) { ... }
fn set_print_iter_output(&mut self, _enabled: bool) { ... }
}Provided Methods§
Sourcefn last_inner_iter_count(&self) -> Index
fn last_inner_iter_count(&self) -> Index
Inner-IPM iteration count from the most recent
perform_restoration call. Read by IpoptAlgorithm for the
pounce#12 audit counters in SolveStatistics. Default 0; the
concrete MinC1NormRestoration impl stashes
RestoSolveResult::iter_count and returns it here.
Sourcefn perform_restoration(
&mut self,
_data: &IpoptDataHandle,
_cq: &IpoptCqHandle,
_nlp: &Rc<RefCell<dyn IpoptNlp>>,
_aug_solver: &mut dyn AugSystemSolver,
) -> RestorationOutcome
fn perform_restoration( &mut self, _data: &IpoptDataHandle, _cq: &IpoptCqHandle, _nlp: &Rc<RefCell<dyn IpoptNlp>>, _aug_solver: &mut dyn AugSystemSolver, ) -> RestorationOutcome
Drive a feasibility-restoration sub-solve. The impl reads the
outer iterate from data.curr, the original NLP from nlp,
uses aug_solver for any post-success multiplier-recomputation
least-square solve, and on success writes the recovered iterate
into data.trial. Default returns
RestorationOutcome::Failed — the trait surface is uniform
for AlgBuilder even when no concrete restoration is wired.
Sourcefn set_debug_hook(&mut self, _hook: Option<Rc<RefCell<dyn DebugHook>>>)
fn set_debug_hook(&mut self, _hook: Option<Rc<RefCell<dyn DebugHook>>>)
Forward the outer interactive debugger onto the restoration inner IPM so the same debugger can step the sub-solve. Default no-op.
Sourcefn set_orig_progress_check(&mut self, _cb: Option<OrigProgressCallback>)
fn set_orig_progress_check(&mut self, _cb: Option<OrigProgressCallback>)
Inject the orig-progress callback the inner IPM should consult at
every iteration. Mirrors upstream
IpRestoFilterConvCheck::SetOrigLSAcceptor (the outer line
search hands its acceptor to the resto conv check at restoration
entry). Default no-op so non-filter-aware drivers compose.
Sourcefn set_print_iter_output(&mut self, _enabled: bool)
fn set_print_iter_output(&mut self, _enabled: bool)
Propagate the outer algorithm’s per-iteration print gate to the
restoration driver so the nested restoration IPM honors
print_level == 0 instead of leaking its r-suffixed iteration
table to stdout. Default no-op for drivers without a nested IPM.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".