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

This class implements the termination tests for the primal-dual system. More...

#include <IpInexactPDTerminationTester.hpp>

+ Inheritance diagram for Ipopt::InexactPDTerminationTester:

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 Implementation of the initialization method that has to be overloaded by for each derived class.
 
virtual bool InitializeSolve ()
 Method for initializing for the next iterative solve.
 
virtual ETerminationTest TestTermination (Index ndim, const Number *sol, const Number *resid, Index iter, Number norm2_rhs)
 This method checks if the current solution of the iterative linear solver is good enough (by returning the corresponding satisfied termination test), or if the Hessian should be modified.
 
virtual void Clear ()
 This method can be called after the Solve is over and we can delete anything that has been allocated to free memory.
 
virtual Index GetSolverIterations () const
 Return the number of iterative solver iteration from the most recent solve.
 
Constructor/Destructor
 InexactPDTerminationTester ()
 Default constructor.
 
virtual ~InexactPDTerminationTester ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::IterativeSolverTerminationTester
const JournalistGetJnlst () const
 An easy way to get the journalist if accessed from the outside.
 
 IterativeSolverTerminationTester ()
 Default constructor.
 
virtual ~IterativeSolverTerminationTester ()
 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
 

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 

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.

InexactPDTerminationTesteroperator= (const InexactPDTerminationTester &)
 Overloaded Assignment Operator.
 

Private Attributes

Index last_iter_
 Last iterative solver iteration counter.
 
Algorithmic options
Number tcc_psi_
 Psi factor in the tangential component condition.
 
Number tcc_theta_
 theta factor in the tangential component condition
 
Number tcc_theta_mu_exponent_
 mu exponent when multiplied to theta in the tangential component condition
 
Number tcc_zeta_
 zeta factor in the tangential component condition
 
Number tt_kappa1_
 kappa_1 factor in termination test 1
 
Number tt_kappa2_
 kappa_2 factor in termination test 2
 
Number tt_eps2_
 eps_2 constant in termination test 2
 
Number tt_eps3_
 eps_3 constant in termination test 3
 
Number rho_
 rho constant from penalty parameter update.
 
Number inexact_desired_pd_residual_
 Desired reduction of residual.
 
Index inexact_desired_pd_residual_iter_
 Number of iterations allowed for desired pd residual.
 
bool requires_scaling_
 Is set to true if the linear system is scaled via slacks.
 
Quantities that are identical for all tests and can be

precomputed.

SmartPtr< const Vectorcurr_Av_c_
 
SmartPtr< const Vectorcurr_Av_d_
 
Number c_norm_
 
Number c_plus_Av_norm_
 
Number v_norm_scaled_
 
SmartPtr< const Vectorcurr_grad_barrier_obj_x_
 
SmartPtr< const Vectorcurr_grad_barrier_obj_s_
 
SmartPtr< const Matrixcurr_jac_c_
 
SmartPtr< const Matrixcurr_jac_d_
 
SmartPtr< const Vectorcurr_scaling_slacks_
 
SmartPtr< Vectorcurr_nabla_phi_plus_ATy_x_
 
SmartPtr< Vectorcurr_nabla_phi_plus_ATy_s_
 
Number curr_Av_norm_
 
Number curr_tt1_norm_
 
Number curr_tt2_norm_
 
SmartPtr< const Vectorcurr_Wv_x_
 
SmartPtr< const Vectorcurr_Wv_s_
 
bool try_tt2_
 
Quantities from previous iteration required in the tests
Number last_Av_norm_
 
Number last_tt1_norm_
 

Additional Inherited Members

- Public Types inherited from Ipopt::IterativeSolverTerminationTester
enum  ETerminationTest {
  CONTINUE , TEST_1_SATISFIED , TEST_2_SATISFIED , TEST_3_SATISFIED ,
  MODIFY_HESSIAN , OTHER_SATISFIED
}
 Enum to report result of termination test. More...
 
- Protected Member Functions inherited from Ipopt::IterativeSolverTerminationTester
void GetVectors (Index ndim, const Number *array, SmartPtr< const Vector > &comp_x, SmartPtr< const Vector > &comp_s, SmartPtr< const Vector > &comp_c, SmartPtr< const Vector > &comp_d)
 Method for copying a long augmented system array into Vectors in Ipopt notation.
 
InexactDataInexData ()
 Method to easily access Inexact data.
 
InexactCqInexCq ()
 Method to easily access Inexact calculated quantities.
 
- Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const JournalistJnlst () const
 
IpoptNLPIpNLP () const
 
IpoptDataIpData () const
 
IpoptCalculatedQuantitiesIpCq () const
 
bool HaveIpData () const
 

Detailed Description

This class implements the termination tests for the primal-dual system.

Definition at line 18 of file IpInexactPDTerminationTester.hpp.

Constructor & Destructor Documentation

◆ InexactPDTerminationTester()

Ipopt::InexactPDTerminationTester::InexactPDTerminationTester ( )

Default constructor.

◆ ~InexactPDTerminationTester()

virtual Ipopt::InexactPDTerminationTester::~InexactPDTerminationTester ( )
virtual

Destructor.

Member Function Documentation

◆ InitializeImpl()

virtual bool Ipopt::InexactPDTerminationTester::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::IterativeSolverTerminationTester.

◆ RegisterOptions()

static void Ipopt::InexactPDTerminationTester::RegisterOptions ( SmartPtr< RegisteredOptions roptions)
static

◆ InitializeSolve()

virtual bool Ipopt::InexactPDTerminationTester::InitializeSolve ( )
virtual

Method for initializing for the next iterative solve.

This must be call before the test methods are called.

Implements Ipopt::IterativeSolverTerminationTester.

◆ TestTermination()

virtual ETerminationTest Ipopt::InexactPDTerminationTester::TestTermination ( Index  ndim,
const Number sol,
const Number resid,
Index  iter,
Number  norm2_rhs 
)
virtual

This method checks if the current solution of the iterative linear solver is good enough (by returning the corresponding satisfied termination test), or if the Hessian should be modified.

The input is the dimension of the augmented system, the current solution vector of the augmented system, the current residual vector.

Implements Ipopt::IterativeSolverTerminationTester.

◆ Clear()

virtual void Ipopt::InexactPDTerminationTester::Clear ( )
virtual

This method can be called after the Solve is over and we can delete anything that has been allocated to free memory.

Implements Ipopt::IterativeSolverTerminationTester.

◆ GetSolverIterations()

virtual Index Ipopt::InexactPDTerminationTester::GetSolverIterations ( ) const
inlinevirtual

Return the number of iterative solver iteration from the most recent solve.

Implements Ipopt::IterativeSolverTerminationTester.

Definition at line 71 of file IpInexactPDTerminationTester.hpp.

◆ operator=()

InexactPDTerminationTester & Ipopt::InexactPDTerminationTester::operator= ( const InexactPDTerminationTester )
private

Overloaded Assignment Operator.

Member Data Documentation

◆ tcc_psi_

Number Ipopt::InexactPDTerminationTester::tcc_psi_
private

Psi factor in the tangential component condition.

Definition at line 96 of file IpInexactPDTerminationTester.hpp.

◆ tcc_theta_

Number Ipopt::InexactPDTerminationTester::tcc_theta_
private

theta factor in the tangential component condition

Definition at line 98 of file IpInexactPDTerminationTester.hpp.

◆ tcc_theta_mu_exponent_

Number Ipopt::InexactPDTerminationTester::tcc_theta_mu_exponent_
private

mu exponent when multiplied to theta in the tangential component condition

Definition at line 102 of file IpInexactPDTerminationTester.hpp.

◆ tcc_zeta_

Number Ipopt::InexactPDTerminationTester::tcc_zeta_
private

zeta factor in the tangential component condition

Definition at line 104 of file IpInexactPDTerminationTester.hpp.

◆ tt_kappa1_

Number Ipopt::InexactPDTerminationTester::tt_kappa1_
private

kappa_1 factor in termination test 1

Definition at line 106 of file IpInexactPDTerminationTester.hpp.

◆ tt_kappa2_

Number Ipopt::InexactPDTerminationTester::tt_kappa2_
private

kappa_2 factor in termination test 2

Definition at line 108 of file IpInexactPDTerminationTester.hpp.

◆ tt_eps2_

Number Ipopt::InexactPDTerminationTester::tt_eps2_
private

eps_2 constant in termination test 2

Definition at line 110 of file IpInexactPDTerminationTester.hpp.

◆ tt_eps3_

Number Ipopt::InexactPDTerminationTester::tt_eps3_
private

eps_3 constant in termination test 3

Definition at line 112 of file IpInexactPDTerminationTester.hpp.

◆ rho_

Number Ipopt::InexactPDTerminationTester::rho_
private

rho constant from penalty parameter update.

This is called \(\tau_{\pi}\) in MIPS paper.

Definition at line 117 of file IpInexactPDTerminationTester.hpp.

◆ inexact_desired_pd_residual_

Number Ipopt::InexactPDTerminationTester::inexact_desired_pd_residual_
private

Desired reduction of residual.

Definition at line 119 of file IpInexactPDTerminationTester.hpp.

◆ inexact_desired_pd_residual_iter_

Index Ipopt::InexactPDTerminationTester::inexact_desired_pd_residual_iter_
private

Number of iterations allowed for desired pd residual.

Definition at line 121 of file IpInexactPDTerminationTester.hpp.

◆ requires_scaling_

bool Ipopt::InexactPDTerminationTester::requires_scaling_
private

Is set to true if the linear system is scaled via slacks.

Definition at line 123 of file IpInexactPDTerminationTester.hpp.

◆ curr_Av_c_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Av_c_
private

Definition at line 130 of file IpInexactPDTerminationTester.hpp.

◆ curr_Av_d_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Av_d_
private

Definition at line 131 of file IpInexactPDTerminationTester.hpp.

◆ c_norm_

Number Ipopt::InexactPDTerminationTester::c_norm_
private

Definition at line 132 of file IpInexactPDTerminationTester.hpp.

◆ c_plus_Av_norm_

Number Ipopt::InexactPDTerminationTester::c_plus_Av_norm_
private

Definition at line 133 of file IpInexactPDTerminationTester.hpp.

◆ v_norm_scaled_

Number Ipopt::InexactPDTerminationTester::v_norm_scaled_
private

Definition at line 134 of file IpInexactPDTerminationTester.hpp.

◆ curr_grad_barrier_obj_x_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_grad_barrier_obj_x_
private

Definition at line 135 of file IpInexactPDTerminationTester.hpp.

◆ curr_grad_barrier_obj_s_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_grad_barrier_obj_s_
private

Definition at line 136 of file IpInexactPDTerminationTester.hpp.

◆ curr_jac_c_

SmartPtr<const Matrix> Ipopt::InexactPDTerminationTester::curr_jac_c_
private

Definition at line 137 of file IpInexactPDTerminationTester.hpp.

◆ curr_jac_d_

SmartPtr<const Matrix> Ipopt::InexactPDTerminationTester::curr_jac_d_
private

Definition at line 138 of file IpInexactPDTerminationTester.hpp.

◆ curr_scaling_slacks_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_scaling_slacks_
private

Definition at line 139 of file IpInexactPDTerminationTester.hpp.

◆ curr_nabla_phi_plus_ATy_x_

SmartPtr<Vector> Ipopt::InexactPDTerminationTester::curr_nabla_phi_plus_ATy_x_
private

Definition at line 140 of file IpInexactPDTerminationTester.hpp.

◆ curr_nabla_phi_plus_ATy_s_

SmartPtr<Vector> Ipopt::InexactPDTerminationTester::curr_nabla_phi_plus_ATy_s_
private

Definition at line 141 of file IpInexactPDTerminationTester.hpp.

◆ curr_Av_norm_

Number Ipopt::InexactPDTerminationTester::curr_Av_norm_
private

Definition at line 142 of file IpInexactPDTerminationTester.hpp.

◆ curr_tt1_norm_

Number Ipopt::InexactPDTerminationTester::curr_tt1_norm_
private

Definition at line 143 of file IpInexactPDTerminationTester.hpp.

◆ curr_tt2_norm_

Number Ipopt::InexactPDTerminationTester::curr_tt2_norm_
private

Definition at line 144 of file IpInexactPDTerminationTester.hpp.

◆ curr_Wv_x_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Wv_x_
private

Definition at line 145 of file IpInexactPDTerminationTester.hpp.

◆ curr_Wv_s_

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Wv_s_
private

Definition at line 146 of file IpInexactPDTerminationTester.hpp.

◆ try_tt2_

bool Ipopt::InexactPDTerminationTester::try_tt2_
private

Definition at line 147 of file IpInexactPDTerminationTester.hpp.

◆ last_Av_norm_

Number Ipopt::InexactPDTerminationTester::last_Av_norm_
private

Definition at line 152 of file IpInexactPDTerminationTester.hpp.

◆ last_tt1_norm_

Number Ipopt::InexactPDTerminationTester::last_tt1_norm_
private

Definition at line 153 of file IpInexactPDTerminationTester.hpp.

◆ last_iter_

Index Ipopt::InexactPDTerminationTester::last_iter_
private

Last iterative solver iteration counter.

Definition at line 157 of file IpInexactPDTerminationTester.hpp.


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