Skip to main content

PdFullSpaceSolver

Struct PdFullSpaceSolver 

Source
pub struct PdFullSpaceSolver {
    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,
    /* private fields */
}

Fields§

§min_refinement_steps: Index§max_refinement_steps: Index§residual_ratio_max: Number§residual_ratio_singular: Number§residual_improvement_factor: Number§neg_curv_test_tol: Number

Negative-curvature test tolerance (neg_curv_test_tol_). Zero disables the heuristic; matches upstream’s RegisterOptions default. The non-zero branch is not exercised in v1.0.

Implementations§

Source§

impl PdFullSpaceSolver

Source

pub fn new( aug_solver: Box<dyn AugSystemSolver>, perturb: Rc<RefCell<PdPerturbationHandler>>, ) -> Self

Source

pub fn aug_solver(&self) -> &dyn AugSystemSolver

Source

pub fn aug_solver_mut(&mut self) -> &mut dyn AugSystemSolver

Source

pub fn wrap_aug_solver<F>(&mut self, wrap: F)
where F: FnOnce(Box<dyn AugSystemSolver>) -> Box<dyn AugSystemSolver>,

Replace the underlying AugSystemSolver by passing the existing one through the supplied wrapper closure. Used by the restoration phase to decorate the inner StdAugSystemSolver with AugRestoSystemSolver (which performs the 8-block → 4-block Schur reduction before delegating).

Source

pub fn solve( &mut self, data: &IpoptDataHandle, cq: &IpoptCqHandle, nlp: &Rc<RefCell<dyn IpoptNlp>>, alpha: Number, beta: Number, rhs: &IteratesVector, res: &mut IteratesVectorMut, allow_inexact: bool, improve_solution: bool, ) -> bool

Solve the full PD system. res = α · M⁻¹ · rhs + β · res_in, matching IpPDFullSpaceSolver::Solve. Returns true on success. The iterate fields used to assemble the system are pulled from data (W, curr) and cq (jacobians, slacks, sigmas).

Trait Implementations§

Source§

impl PdSystemSolver for PdFullSpaceSolver

Source§

fn solve_status(&self) -> ESymSolverStatus

Run the configured iterative-refinement loop on the 8-block system. Phase 6 placeholder for the full-signature method; super::pd_full_space_solver::PdFullSpaceSolver::solve will implement it once IteratesVector is wired through.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.