Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::AugRestoSystemSolver Class Reference

Class that converts an augmented system with compound restoration pieces into a smaller "pivoted" system to be solved with an existing AugSystemSolver. More...

#include <IpAugRestoSystemSolver.hpp>

+ Inheritance diagram for Ipopt::AugRestoSystemSolver:

Public Member Functions

bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 overloaded from AlgorithmStrategyObject
 
virtual ESymSolverStatus Solve (const SymMatrix *W, Number W_factor, const Vector *D_x, Number delta_x, const Vector *D_s, Number delta_s, const Matrix *J_c, const Vector *D_c, Number delta_c, const Matrix *J_d, const Vector *D_d, Number delta_d, const Vector &rhs_x, const Vector &rhs_s, const Vector &rhs_c, const Vector &rhs_d, Vector &sol_x, Vector &sol_s, Vector &sol_c, Vector &sol_d, bool check_NegEVals, Index numberOfNegEVals)
 Translate the augmented system (in the full space of the restoration variables) into the smaller space of the original variables.
 
virtual Index NumberOfNegEVals () const
 Returns the number of negative eigenvalues from the original augmented system call.
 
virtual bool ProvidesInertia () const
 Query whether inertia is computed by linear solver.
 
virtual bool IncreaseQuality ()
 Request to increase quality of solution for next solve.
 
Constructors/Destructors
 AugRestoSystemSolver (AugSystemSolver &orig_aug_solver, bool skip_orig_aug_solver_init=true)
 Constructor.
 
virtual ~AugRestoSystemSolver ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::AugSystemSolver
virtual ESymSolverStatus MultiSolve (const SymMatrix *W, Number W_factor, const Vector *D_x, Number delta_x, const Vector *D_s, Number delta_s, const Matrix *J_c, const Vector *D_c, Number delta_c, const Matrix *J_d, const Vector *D_d, Number delta_d, std::vector< SmartPtr< const Vector > > &rhs_xV, std::vector< SmartPtr< const Vector > > &rhs_sV, std::vector< SmartPtr< const Vector > > &rhs_cV, std::vector< SmartPtr< const Vector > > &rhs_dV, std::vector< SmartPtr< Vector > > &sol_xV, std::vector< SmartPtr< Vector > > &sol_sV, std::vector< SmartPtr< Vector > > &sol_cV, std::vector< SmartPtr< Vector > > &sol_dV, bool check_NegEVals, Index numberOfNegEVals)
 Like Solve, but for multiple right hand sides.
 
 AugSystemSolver ()
 Default constructor.
 
virtual ~AugSystemSolver ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::AlgorithmStrategyObject
bool Initialize (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const OptionsList &options, const std::string &prefix)
 This method is called every time the algorithm starts again - it is used to reset any internal state.
 
bool ReducedInitialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Reduced version of the Initialize method, which does not require special Ipopt information.
 
 AlgorithmStrategyObject ()
 Default Constructor.
 
virtual ~AlgorithmStrategyObject ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Private Member Functions

Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 AugRestoSystemSolver ()
 Default Constructor.
 
 AugRestoSystemSolver (const AugRestoSystemSolver &)
 Copy Constructor.
 
void operator= (const AugRestoSystemSolver &)
 Default Assignment Operator.
 
Methods to calculate the cached quantities
SmartPtr< const VectorNeg_Omega_c_plus_D_c (const SmartPtr< const Vector > &sigma_tilde_n_c_inv, const SmartPtr< const Vector > &sigma_tilde_p_c_inv, const Vector *D_c, const Vector &any_vec_in_c)
 
SmartPtr< const VectorNeg_Omega_d_plus_D_d (const Matrix &Pd_L, const SmartPtr< const Vector > &sigma_tilde_n_d_inv, const Matrix &neg_Pd_U, const SmartPtr< const Vector > &sigma_tilde_p_d_inv, const Vector *D_d, const Vector &any_vec_in_d)
 
SmartPtr< const VectorSigma_tilde_n_c_inv (const SmartPtr< const Vector > &sigma_tilde_n_c, Number delta_x, const Vector &any_vec_in_n_c)
 Sigma tilde is the sum of Sigma and delta_x times the identity.
 
SmartPtr< const VectorSigma_tilde_p_c_inv (const SmartPtr< const Vector > &sigma_tilde_p_c, Number delta_x, const Vector &any_vec_in_p_c)
 
SmartPtr< const VectorSigma_tilde_n_d_inv (const SmartPtr< const Vector > &sigma_tilde_n_d, Number delta_x, const Vector &any_vec_in_n_d)
 
SmartPtr< const VectorSigma_tilde_p_d_inv (const SmartPtr< const Vector > &sigma_tilde_p_d, Number delta_x, const Vector &any_vec_in_p_d)
 
SmartPtr< const VectorD_x_plus_wr_d (const SmartPtr< const Vector > &CD_x0, Number factor, const Vector &wr_d)
 
SmartPtr< const VectorRhs_cR (const Vector &rhs_c, const SmartPtr< const Vector > &sigma_tilde_n_c_inv, const Vector &rhs_n_c, const SmartPtr< const Vector > &sigma_tilde_p_c_inv, const Vector &rhs_p_c)
 
SmartPtr< const VectorRhs_dR (const Vector &rhs_d, const SmartPtr< const Vector > &sigma_tilde_n_d_inv, const Vector &rhs_n_d, const Matrix &pd_L, const SmartPtr< const Vector > &sigma_tilde_p_d_inv, const Vector &rhs_p_d, const Matrix &pd_U)
 

Private Attributes

SmartPtr< AugSystemSolverorig_aug_solver_
 
bool skip_orig_aug_solver_init_
 
Caches for some of the necessary calculated quantities
CachedResults< SmartPtr< Vector > > neg_omega_c_plus_D_c_cache_
 
CachedResults< SmartPtr< Vector > > neg_omega_d_plus_D_d_cache_
 
CachedResults< SmartPtr< Vector > > sigma_tilde_n_c_inv_cache_
 
CachedResults< SmartPtr< Vector > > sigma_tilde_p_c_inv_cache_
 
CachedResults< SmartPtr< Vector > > sigma_tilde_n_d_inv_cache_
 
CachedResults< SmartPtr< Vector > > sigma_tilde_p_d_inv_cache_
 
CachedResults< SmartPtr< Vector > > d_x_plus_wr_d_cache_
 
CachedResults< SmartPtr< Vector > > rhs_cR_cache_
 
CachedResults< SmartPtr< Vector > > rhs_dR_cache_
 

Additional Inherited Members

- Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const JournalistJnlst () const
 
IpoptNLPIpNLP () const
 
IpoptDataIpData () const
 
IpoptCalculatedQuantitiesIpCq () const
 
bool HaveIpData () const
 

Detailed Description

Class that converts an augmented system with compound restoration pieces into a smaller "pivoted" system to be solved with an existing AugSystemSolver.

This is really a decorator that changes the behavior of the AugSystemSolver to account for the known structure of the restoration phase.

Definition at line 23 of file IpAugRestoSystemSolver.hpp.

Constructor & Destructor Documentation

◆ AugRestoSystemSolver() [1/3]

Ipopt::AugRestoSystemSolver::AugRestoSystemSolver ( AugSystemSolver orig_aug_solver,
bool  skip_orig_aug_solver_init = true 
)

Constructor.

Here, orig_aug_solver is the object for solving the original augmented system. The flag skip_orig_aug_solver_init indicates, if the initialization call (to Initialize) should be skipped; this flag will usually be true, so that the symbolic factorization of the main algorithm will be used.

◆ ~AugRestoSystemSolver()

virtual Ipopt::AugRestoSystemSolver::~AugRestoSystemSolver ( )
virtual

Destructor.

◆ AugRestoSystemSolver() [2/3]

Ipopt::AugRestoSystemSolver::AugRestoSystemSolver ( )
private

Default Constructor.

◆ AugRestoSystemSolver() [3/3]

Ipopt::AugRestoSystemSolver::AugRestoSystemSolver ( const AugRestoSystemSolver )
private

Copy Constructor.

Member Function Documentation

◆ InitializeImpl()

bool Ipopt::AugRestoSystemSolver::InitializeImpl ( const OptionsList options,
const std::string &  prefix 
)
virtual

overloaded from AlgorithmStrategyObject

Implements Ipopt::AugSystemSolver.

◆ Solve()

virtual ESymSolverStatus Ipopt::AugRestoSystemSolver::Solve ( const SymMatrix W,
Number  W_factor,
const Vector D_x,
Number  delta_x,
const Vector D_s,
Number  delta_s,
const Matrix J_c,
const Vector D_c,
Number  delta_c,
const Matrix J_d,
const Vector D_d,
Number  delta_d,
const Vector rhs_x,
const Vector rhs_s,
const Vector rhs_c,
const Vector rhs_d,
Vector sol_x,
Vector sol_s,
Vector sol_c,
Vector sol_d,
bool  check_NegEVals,
Index  numberOfNegEVals 
)
virtual

Translate the augmented system (in the full space of the restoration variables) into the smaller space of the original variables.

Reimplemented from Ipopt::AugSystemSolver.

◆ NumberOfNegEVals()

virtual Index Ipopt::AugRestoSystemSolver::NumberOfNegEVals ( ) const
inlinevirtual

Returns the number of negative eigenvalues from the original augmented system call.

Implements Ipopt::AugSystemSolver.

Definition at line 84 of file IpAugRestoSystemSolver.hpp.

◆ ProvidesInertia()

virtual bool Ipopt::AugRestoSystemSolver::ProvidesInertia ( ) const
inlinevirtual

Query whether inertia is computed by linear solver.

Returns
true, if linear solver provides inertia

Implements Ipopt::AugSystemSolver.

Definition at line 93 of file IpAugRestoSystemSolver.hpp.

◆ IncreaseQuality()

virtual bool Ipopt::AugRestoSystemSolver::IncreaseQuality ( )
inlinevirtual

Request to increase quality of solution for next solve.

Ask underlying linear solver to increase quality of solution for the next solve (e.g. increase pivot tolerance). Returns false, if this is not possible (e.g. maximal pivot tolerance already used.)

Implements Ipopt::AugSystemSolver.

Definition at line 105 of file IpAugRestoSystemSolver.hpp.

◆ operator=()

void Ipopt::AugRestoSystemSolver::operator= ( const AugRestoSystemSolver )
private

Default Assignment Operator.

◆ Neg_Omega_c_plus_D_c()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Neg_Omega_c_plus_D_c ( const SmartPtr< const Vector > &  sigma_tilde_n_c_inv,
const SmartPtr< const Vector > &  sigma_tilde_p_c_inv,
const Vector D_c,
const Vector any_vec_in_c 
)
private

◆ Neg_Omega_d_plus_D_d()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Neg_Omega_d_plus_D_d ( const Matrix Pd_L,
const SmartPtr< const Vector > &  sigma_tilde_n_d_inv,
const Matrix neg_Pd_U,
const SmartPtr< const Vector > &  sigma_tilde_p_d_inv,
const Vector D_d,
const Vector any_vec_in_d 
)
private

◆ Sigma_tilde_n_c_inv()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Sigma_tilde_n_c_inv ( const SmartPtr< const Vector > &  sigma_tilde_n_c,
Number  delta_x,
const Vector any_vec_in_n_c 
)
private

Sigma tilde is the sum of Sigma and delta_x times the identity.

◆ Sigma_tilde_p_c_inv()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Sigma_tilde_p_c_inv ( const SmartPtr< const Vector > &  sigma_tilde_p_c,
Number  delta_x,
const Vector any_vec_in_p_c 
)
private

◆ Sigma_tilde_n_d_inv()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Sigma_tilde_n_d_inv ( const SmartPtr< const Vector > &  sigma_tilde_n_d,
Number  delta_x,
const Vector any_vec_in_n_d 
)
private

◆ Sigma_tilde_p_d_inv()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Sigma_tilde_p_d_inv ( const SmartPtr< const Vector > &  sigma_tilde_p_d,
Number  delta_x,
const Vector any_vec_in_p_d 
)
private

◆ D_x_plus_wr_d()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::D_x_plus_wr_d ( const SmartPtr< const Vector > &  CD_x0,
Number  factor,
const Vector wr_d 
)
private

◆ Rhs_cR()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Rhs_cR ( const Vector rhs_c,
const SmartPtr< const Vector > &  sigma_tilde_n_c_inv,
const Vector rhs_n_c,
const SmartPtr< const Vector > &  sigma_tilde_p_c_inv,
const Vector rhs_p_c 
)
private

◆ Rhs_dR()

SmartPtr< const Vector > Ipopt::AugRestoSystemSolver::Rhs_dR ( const Vector rhs_d,
const SmartPtr< const Vector > &  sigma_tilde_n_d_inv,
const Vector rhs_n_d,
const Matrix pd_L,
const SmartPtr< const Vector > &  sigma_tilde_p_d_inv,
const Vector rhs_p_d,
const Matrix pd_U 
)
private

Member Data Documentation

◆ neg_omega_c_plus_D_c_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::neg_omega_c_plus_D_c_cache_
private

Definition at line 137 of file IpAugRestoSystemSolver.hpp.

◆ neg_omega_d_plus_D_d_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::neg_omega_d_plus_D_d_cache_
private

Definition at line 138 of file IpAugRestoSystemSolver.hpp.

◆ sigma_tilde_n_c_inv_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::sigma_tilde_n_c_inv_cache_
private

Definition at line 139 of file IpAugRestoSystemSolver.hpp.

◆ sigma_tilde_p_c_inv_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::sigma_tilde_p_c_inv_cache_
private

Definition at line 140 of file IpAugRestoSystemSolver.hpp.

◆ sigma_tilde_n_d_inv_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::sigma_tilde_n_d_inv_cache_
private

Definition at line 141 of file IpAugRestoSystemSolver.hpp.

◆ sigma_tilde_p_d_inv_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::sigma_tilde_p_d_inv_cache_
private

Definition at line 142 of file IpAugRestoSystemSolver.hpp.

◆ d_x_plus_wr_d_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::d_x_plus_wr_d_cache_
private

Definition at line 143 of file IpAugRestoSystemSolver.hpp.

◆ rhs_cR_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::rhs_cR_cache_
private

Definition at line 144 of file IpAugRestoSystemSolver.hpp.

◆ rhs_dR_cache_

CachedResults<SmartPtr<Vector> > Ipopt::AugRestoSystemSolver::rhs_dR_cache_
private

Definition at line 145 of file IpAugRestoSystemSolver.hpp.

◆ orig_aug_solver_

SmartPtr<AugSystemSolver> Ipopt::AugRestoSystemSolver::orig_aug_solver_
private

Definition at line 216 of file IpAugRestoSystemSolver.hpp.

◆ skip_orig_aug_solver_init_

bool Ipopt::AugRestoSystemSolver::skip_orig_aug_solver_init_
private

Definition at line 217 of file IpAugRestoSystemSolver.hpp.


The documentation for this class was generated from the following file: