This class implements the termination tests for the primal-dual system. More...
#include <IpInexactPDTerminationTester.hpp>
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 Journalist & | GetJnlst () 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. | |
InexactPDTerminationTester & | operator= (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 Vector > | curr_Av_c_ |
SmartPtr< const Vector > | curr_Av_d_ |
Number | c_norm_ |
Number | c_plus_Av_norm_ |
Number | v_norm_scaled_ |
SmartPtr< const Vector > | curr_grad_barrier_obj_x_ |
SmartPtr< const Vector > | curr_grad_barrier_obj_s_ |
SmartPtr< const Matrix > | curr_jac_c_ |
SmartPtr< const Matrix > | curr_jac_d_ |
SmartPtr< const Vector > | curr_scaling_slacks_ |
SmartPtr< Vector > | curr_nabla_phi_plus_ATy_x_ |
SmartPtr< Vector > | curr_nabla_phi_plus_ATy_s_ |
Number | curr_Av_norm_ |
Number | curr_tt1_norm_ |
Number | curr_tt2_norm_ |
SmartPtr< const Vector > | curr_Wv_x_ |
SmartPtr< const Vector > | curr_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. | |
InexactData & | InexData () |
Method to easily access Inexact data. | |
InexactCq & | InexCq () |
Method to easily access Inexact calculated quantities. | |
Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject | |
const Journalist & | Jnlst () const |
IpoptNLP & | IpNLP () const |
IpoptData & | IpData () const |
IpoptCalculatedQuantities & | IpCq () const |
bool | HaveIpData () const |
This class implements the termination tests for the primal-dual system.
Definition at line 18 of file IpInexactPDTerminationTester.hpp.
Ipopt::InexactPDTerminationTester::InexactPDTerminationTester | ( | ) |
Default constructor.
|
virtual |
Destructor.
|
virtual |
Implementation of the initialization method that has to be overloaded by for each derived class.
Implements Ipopt::IterativeSolverTerminationTester.
|
static |
Method for initializing for the next iterative solve.
This must be call before the test methods are called.
Implements Ipopt::IterativeSolverTerminationTester.
|
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.
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.
Return the number of iterative solver iteration from the most recent solve.
Implements Ipopt::IterativeSolverTerminationTester.
Definition at line 71 of file IpInexactPDTerminationTester.hpp.
|
private |
Overloaded Assignment Operator.
|
private |
Psi factor in the tangential component condition.
Definition at line 96 of file IpInexactPDTerminationTester.hpp.
|
private |
theta factor in the tangential component condition
Definition at line 98 of file IpInexactPDTerminationTester.hpp.
|
private |
mu exponent when multiplied to theta in the tangential component condition
Definition at line 102 of file IpInexactPDTerminationTester.hpp.
|
private |
zeta factor in the tangential component condition
Definition at line 104 of file IpInexactPDTerminationTester.hpp.
|
private |
kappa_1 factor in termination test 1
Definition at line 106 of file IpInexactPDTerminationTester.hpp.
|
private |
kappa_2 factor in termination test 2
Definition at line 108 of file IpInexactPDTerminationTester.hpp.
|
private |
eps_2 constant in termination test 2
Definition at line 110 of file IpInexactPDTerminationTester.hpp.
|
private |
eps_3 constant in termination test 3
Definition at line 112 of file IpInexactPDTerminationTester.hpp.
|
private |
rho constant from penalty parameter update.
This is called \(\tau_{\pi}\) in MIPS paper.
Definition at line 117 of file IpInexactPDTerminationTester.hpp.
|
private |
Desired reduction of residual.
Definition at line 119 of file IpInexactPDTerminationTester.hpp.
|
private |
Number of iterations allowed for desired pd residual.
Definition at line 121 of file IpInexactPDTerminationTester.hpp.
|
private |
Is set to true if the linear system is scaled via slacks.
Definition at line 123 of file IpInexactPDTerminationTester.hpp.
Definition at line 130 of file IpInexactPDTerminationTester.hpp.
Definition at line 131 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 132 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 133 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 134 of file IpInexactPDTerminationTester.hpp.
Definition at line 135 of file IpInexactPDTerminationTester.hpp.
Definition at line 136 of file IpInexactPDTerminationTester.hpp.
Definition at line 137 of file IpInexactPDTerminationTester.hpp.
Definition at line 138 of file IpInexactPDTerminationTester.hpp.
Definition at line 139 of file IpInexactPDTerminationTester.hpp.
Definition at line 140 of file IpInexactPDTerminationTester.hpp.
Definition at line 141 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 142 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 143 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 144 of file IpInexactPDTerminationTester.hpp.
Definition at line 145 of file IpInexactPDTerminationTester.hpp.
Definition at line 146 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 147 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 152 of file IpInexactPDTerminationTester.hpp.
|
private |
Definition at line 153 of file IpInexactPDTerminationTester.hpp.
|
private |
Last iterative solver iteration counter.
Definition at line 157 of file IpInexactPDTerminationTester.hpp.