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 | Private Member Functions | Private Attributes | List of all members
Ipopt::InexactPDSolver Class Reference

This is the implemetation of the Primal-Dual System, allowing the usage of an inexact linear solver. More...

`#include <IpInexactPDSolver.hpp>`

Inheritance diagram for Ipopt::InexactPDSolver:
[legend]

## Public Member Functions
bool | InitializeImpl (const OptionsList &options, const std::string &prefix)
| Implementation of the initialization method that has to be overloaded by for each derived class. More...
virtual bool | Solve (const IteratesVector &rhs, IteratesVector &sol)
| Solve the primal dual system, given one right hand side. More...
/Destructor
| InexactPDSolver (AugSystemSolver &augSysSolver, PDPerturbationHandler &perturbHandler)
| Constructor that takes in the Augmented System solver that is to be used inside. More...
virtual | ~InexactPDSolver ()
| 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

## Static Public Member Functions
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions)
| Methods for IpoptType. More...

## Private Member Functions
InexactData & | InexData ()
| Method to easily access Inexact data. More...
InexactCq & | InexCq ()
| Method to easily access Inexact calculated quantities. More...
void | ComputeResiduals (const SymMatrix &W, const Matrix &J_c, const Matrix &J_d, const Matrix &Pd_L, const Matrix &Pd_U, const Vector &v_L, const Vector &v_U, const Vector &slack_s_L, const Vector &slack_s_U, const Vector &sigma_s, const IteratesVector &rhs, const IteratesVector &res, IteratesVector &resid)
| Internal function for computing the residual (resid) given the right hand side (rhs) and the solution of the system (res). More...
bool | HessianRequiresChange ()
| Method for checking if the Hessian matrix has to be modified. More...
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.
| InexactPDSolver ()
| Default Constructor. More...
InexactPDSolver & | operator= (const InexactPDSolver &)
| Overloaded Equals Operator. More...

## Private Attributes
bool | is_pardiso_
| flag indicating if we are dealing with the Pardiso solver (temporary) More...
Index | last_info_ls_count_
Strategy objects to hold on to.
SmartPtr< AugSystemSolver > | augSysSolver_
| Pointer to the Solver for the augmented system. More...
SmartPtr< PDPerturbationHandler > | perturbHandler_
| Pointer to the Perturbation Handler. More...
Algorithmic options
Number | tcc_psi_
| Psi factor in the tangential component condition. More...
Number | tcc_theta_
| theta factor in the tangential component condition More...
Number | tcc_theta_mu_exponent_
| mu exponent when multiplied to theta in the tangential component condition More...
bool | modify_hessian_with_slacks_
| flag indicating if the Hessian for the (s,s) part should be modified with the slacks instead of the identity matrix More...
Index | inexact_regularization_ls_count_trigger_
| Threshold on line search evaluation count to trigger Hessia modification. 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

This is the implemetation of the Primal-Dual System, allowing the usage of an inexact linear solver.

The step computed is usually for the tangential step.

Definition at line 24 of file IpInexactPDSolver.hpp.

## Constructor & Destructor Documentation

Ipopt::InexactPDSolver::InexactPDSolver | ( | AugSystemSolver & | augSysSolver,
|  | PDPerturbationHandler & | perturbHandler
| ) |  |

Constructor that takes in the Augmented System solver that is to be used inside.

virtual Ipopt::InexactPDSolver::~InexactPDSolver | ( |  | ) |
| virtual

Default destructor.

Ipopt::InexactPDSolver::InexactPDSolver | ( |  | ) |
| private

Default Constructor.

## Member Function Documentation

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

Implementation of the initialization method that has to be overloaded by for each derived class.

Implements Ipopt::AlgorithmStrategyObject.

virtual bool Ipopt::InexactPDSolver::Solve | ( | const IteratesVector & | rhs,
|  | IteratesVector & | sol
| ) |  |
| virtual

Solve the primal dual system, given one right hand side.

static void Ipopt::InexactPDSolver::RegisterOptions | ( | SmartPtr< RegisteredOptions > | roptions | ) |
| static

Methods for IpoptType.

InexactPDSolver& Ipopt::InexactPDSolver::operator= | ( | const InexactPDSolver & |  | ) |
| private

Overloaded Equals Operator.

InexactData& Ipopt::InexactPDSolver::InexData | ( |  | ) |
| inline private

Method to easily access Inexact data.

Definition at line 69 of file IpInexactPDSolver.hpp.

InexactCq& Ipopt::InexactPDSolver::InexCq | ( |  | ) |
| inline private

Method to easily access Inexact calculated quantities.

Definition at line 78 of file IpInexactPDSolver.hpp.

void Ipopt::InexactPDSolver::ComputeResiduals | ( | const SymMatrix & | W,
|  | const Matrix & | J_c,
|  | const Matrix & | J_d,
|  | const Matrix & | Pd_L,
|  | const Matrix & | Pd_U,
|  | const Vector & | v_L,
|  | const Vector & | v_U,
|  | const Vector & | slack_s_L,
|  | const Vector & | slack_s_U,
|  | const Vector & | sigma_s,
|  | const IteratesVector & | rhs,
|  | const IteratesVector & | res,
|  | IteratesVector & | resid
| ) |  |
| private

Internal function for computing the residual (resid) given the right hand side (rhs) and the solution of the system (res).

bool Ipopt::InexactPDSolver::HessianRequiresChange | ( |  | ) |
| private

Method for checking if the Hessian matrix has to be modified.

All required data is obtained from the Data objects, so those values have to be set before this is called.

## Member Data Documentation

SmartPtr<AugSystemSolver> Ipopt::InexactPDSolver::augSysSolver_
| private

Pointer to the Solver for the augmented system.

Definition at line 89 of file IpInexactPDSolver.hpp.

SmartPtr<PDPerturbationHandler> Ipopt::InexactPDSolver::perturbHandler_
| private

Pointer to the Perturbation Handler.

Definition at line 91 of file IpInexactPDSolver.hpp.

Number Ipopt::InexactPDSolver::tcc_psi_
| private

Psi factor in the tangential component condition.

Definition at line 119 of file IpInexactPDSolver.hpp.

Number Ipopt::InexactPDSolver::tcc_theta_
| private

theta factor in the tangential component condition

Definition at line 121 of file IpInexactPDSolver.hpp.

Number Ipopt::InexactPDSolver::tcc_theta_mu_exponent_
| private

mu exponent when multiplied to theta in the tangential component condition

Definition at line 124 of file IpInexactPDSolver.hpp.

bool Ipopt::InexactPDSolver::modify_hessian_with_slacks_
| private

flag indicating if the Hessian for the (s,s) part should be modified with the slacks instead of the identity matrix

Definition at line 127 of file IpInexactPDSolver.hpp.

Index Ipopt::InexactPDSolver::inexact_regularization_ls_count_trigger_
| private

Threshold on line search evaluation count to trigger Hessia modification.

Definition at line 130 of file IpInexactPDSolver.hpp.

bool Ipopt::InexactPDSolver::is_pardiso_
| private

flag indicating if we are dealing with the Pardiso solver (temporary)

Definition at line 135 of file IpInexactPDSolver.hpp.

Index Ipopt::InexactPDSolver::last_info_ls_count_
| private

Definition at line 137 of file IpInexactPDSolver.hpp.

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

- src/Algorithm/Inexact/IpInexactPDSolver.hpp