Skip to main content

RestorationPhase

Trait RestorationPhase 

Source
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_orig_progress_check(&mut self, _cb: Option<OrigProgressCallback>) { ... }
    fn set_print_iter_output(&mut self, _enabled: bool) { ... }
}

Provided Methods§

Source

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.

Source

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.

Source

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.

Source

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".

Implementors§