Ipopt 3.12.10

- Main Page
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | List of all members
Ipopt::AugSystemSolver Class Referenceabstract

Base class for Solver for the augmented system. More...

`#include <IpAugSystemSolver.hpp>`

Inheritance diagram for Ipopt::AugSystemSolver:
[legend]

## Public Member Functions
virtual bool | InitializeImpl (const OptionsList &options, const std::string &prefix)=0
| overloaded from AlgorithmStrategyObject More...
virtual ESymSolverStatus | Solve (const SymMatrix *W, double W_factor, const Vector *D_x, double delta_x, const Vector *D_s, double delta_s, const Matrix *J_c, const Vector *D_c, double delta_c, const Matrix *J_d, const Vector *D_d, double 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)
| Set up the augmented system and solve it for a given right hand side. More...
virtual ESymSolverStatus | MultiSolve (const SymMatrix *W, double W_factor, const Vector *D_x, double delta_x, const Vector *D_s, double delta_s, const Matrix *J_c, const Vector *D_c, double delta_c, const Matrix *J_d, const Vector *D_d, double 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. More...
virtual Index | NumberOfNegEVals () const =0
| Number of negative eigenvalues detected during last solve. More...
virtual bool | ProvidesInertia () const =0
| Query whether inertia is computed by linear solver. More...
virtual bool | IncreaseQuality ()=0
| Request to increase quality of solution for next solve. More...
Constructors/Destructors
| AugSystemSolver ()
| Default constructor. More...
virtual | ~AugSystemSolver ()
| Default destructor. More...
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. More...
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. More...
| AlgorithmStrategyObject ()
| Default Constructor. More...
virtual | ~AlgorithmStrategyObject ()
| Default Destructor. More...
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.
| AugSystemSolver (const AugSystemSolver &)
| Copy Constructor. More...
void | operator= (const AugSystemSolver &)
| Overloaded Equals Operator. More...

## Additional Inherited Members
Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const Journalist & | Jnlst () const
IpoptNLP & | IpNLP () const
IpoptData & | IpData () const
IpoptCalculatedQuantities & | IpCq () const
bool | HaveIpData () const

## Detailed Description

Base class for Solver for the augmented system.

This is the base class for linear solvers that solve the augmented system, which is defined as

Since this system might be solved repeatedly for different right hand sides, it is desirable to step the factorization of a direct linear solver if possible.

Definition at line 37 of file IpAugSystemSolver.hpp.

## Constructor & Destructor Documentation

Ipopt::AugSystemSolver::AugSystemSolver | ( |  | ) |
| inline

Default constructor.

Definition at line 43 of file IpAugSystemSolver.hpp.

virtual Ipopt::AugSystemSolver::~AugSystemSolver | ( |  | ) |
| inline virtual

Default destructor.

Definition at line 46 of file IpAugSystemSolver.hpp.

Ipopt::AugSystemSolver::AugSystemSolver | ( | const AugSystemSolver & |  | ) |
| private

Copy Constructor.

## Member Function Documentation

virtual bool Ipopt::AugSystemSolver::InitializeImpl | ( | const OptionsList & | options,
|  | const std::string & | prefix
| ) |  |
| pure virtual

overloaded from AlgorithmStrategyObject

Implements Ipopt::AlgorithmStrategyObject.

Implemented in Ipopt::AugRestoSystemSolver, Ipopt::LowRankSSAugSystemSolver, Ipopt::StdAugSystemSolver, Ipopt::LowRankAugSystemSolver, and Ipopt::GenAugSystemSolver.

virtual ESymSolverStatus Ipopt::AugSystemSolver::Solve | ( | const SymMatrix * | W,
|  | double | W_factor,
|  | const Vector * | D_x,
|  | double | delta_x,
|  | const Vector * | D_s,
|  | double | delta_s,
|  | const Matrix * | J_c,
|  | const Vector * | D_c,
|  | double | delta_c,
|  | const Matrix * | J_d,
|  | const Vector * | D_d,
|  | double | 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
| ) |  |
| inline virtual

Set up the augmented system and solve it for a given right hand side.

If desired (i.e. if check_NegEVals is true), then the solution is only computed if the number of negative eigenvalues matches numberOfNegEVals.

The return value is the return value of the linear solver object.

Reimplemented in Ipopt::AugRestoSystemSolver, Ipopt::LowRankSSAugSystemSolver, and Ipopt::LowRankAugSystemSolver.

Definition at line 61 of file IpAugSystemSolver.hpp.

virtual ESymSolverStatus Ipopt::AugSystemSolver::MultiSolve | ( | const SymMatrix * | W,
|  | double | W_factor,
|  | const Vector * | D_x,
|  | double | delta_x,
|  | const Vector * | D_s,
|  | double | delta_s,
|  | const Matrix * | J_c,
|  | const Vector * | D_c,
|  | double | delta_c,
|  | const Matrix * | J_d,
|  | const Vector * | D_d,
|  | double | 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
| ) |  |
| inline virtual

Like Solve, but for multiple right hand sides.

The inheriting class has to be overload at least one of Solve and MultiSolve.

Reimplemented in Ipopt::StdAugSystemSolver, and Ipopt::GenAugSystemSolver.

Definition at line 110 of file IpAugSystemSolver.hpp.

virtual Index Ipopt::AugSystemSolver::NumberOfNegEVals | ( |  | ) | const
| pure virtual

Number of negative eigenvalues detected during last solve.

Returns the number of negative eigenvalues of the most recent factorized matrix. This must not be called if the linear solver does not compute this quantities (see ProvidesInertia).

Implemented in Ipopt::LowRankSSAugSystemSolver, Ipopt::StdAugSystemSolver, Ipopt::AugRestoSystemSolver, Ipopt::LowRankAugSystemSolver, and Ipopt::GenAugSystemSolver.

virtual bool Ipopt::AugSystemSolver::ProvidesInertia | ( |  | ) | const
| pure virtual

Query whether inertia is computed by linear solver.

Returns true, if linear solver provides inertia.

Implemented in Ipopt::AugRestoSystemSolver, Ipopt::LowRankSSAugSystemSolver, Ipopt::StdAugSystemSolver, Ipopt::LowRankAugSystemSolver, and Ipopt::GenAugSystemSolver.

virtual bool Ipopt::AugSystemSolver::IncreaseQuality | ( |  | ) |
| pure virtual

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

Implemented in Ipopt::AugRestoSystemSolver, Ipopt::LowRankSSAugSystemSolver, Ipopt::StdAugSystemSolver, Ipopt::LowRankAugSystemSolver, and Ipopt::GenAugSystemSolver.

void Ipopt::AugSystemSolver::operator= | ( | const AugSystemSolver & |  | ) |
| private

Overloaded Equals Operator.

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

- src/Algorithm/IpAugSystemSolver.hpp