# Ipopt::InexactPDTerminationTester Class Reference

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

`#include <IpInexactPDTerminationTester.hpp>`

Inheritance diagram for Ipopt::InexactPDTerminationTester:
[legend]

List of all members.

## 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 soltion 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.
/Destructor
| InexactPDTerminationTester ()
| Default constructor.
virtual | ~InexactPDTerminationTester ()
| Default destructor.
## Static Public Member Functions
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions)
| Methods for IpoptType.
## 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 Equals 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_

## Detailed Description

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

Definition at line 20 of file IpInexactPDTerminationTester.hpp.

## Constructor & Destructor Documentation

Ipopt::InexactPDTerminationTester::InexactPDTerminationTester | ( |  | ) |

Default constructor.

virtual Ipopt::InexactPDTerminationTester::~InexactPDTerminationTester | ( |  | ) | `[virtual]`

Default destructor.

## Member Function Documentation

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.

static void Ipopt::InexactPDTerminationTester::RegisterOptions | ( | SmartPtr< RegisteredOptions > | roptions | ) | `[static]`

Methods for IpoptType.

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.

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

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.

virtual Index Ipopt::InexactPDTerminationTester::GetSolverIterations | ( |  | ) | const`[inline, virtual]`

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

Implements Ipopt::IterativeSolverTerminationTester.

Definition at line 62 of file IpInexactPDTerminationTester.hpp.

InexactPDTerminationTester& Ipopt::InexactPDTerminationTester::operator= | ( | const InexactPDTerminationTester & |  | ) | `[private]`

Overloaded Equals Operator.

Reimplemented from Ipopt::IterativeSolverTerminationTester.

## Member Data Documentation

Number Ipopt::InexactPDTerminationTester::tcc_psi_`[private]`

Psi factor in the tangential component condition.

Definition at line 83 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tcc_theta_`[private]`

theta factor in the tangential component condition

Definition at line 85 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tcc_theta_mu_exponent_`[private]`

mu exponent when multiplied to theta in the tangential component condition

Definition at line 88 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tcc_zeta_`[private]`

zeta factor in the tangential component condition

Definition at line 90 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tt_kappa1_`[private]`

kappa_1 factor in termination test 1

Definition at line 92 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tt_kappa2_`[private]`

kappa_2 factor in termination test 2

Definition at line 94 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tt_eps2_`[private]`

eps_2 constant in termination test 2

Definition at line 96 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::tt_eps3_`[private]`

eps_3 constant in termination test 3

Definition at line 98 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::rho_`[private]`

rho constant from penalty parameter update.

This is called in MIPS paper

Definition at line 101 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::inexact_desired_pd_residual_`[private]`

Desired reduction of residual.

Definition at line 103 of file IpInexactPDTerminationTester.hpp.

Index Ipopt::InexactPDTerminationTester::inexact_desired_pd_residual_iter_`[private]`

Number of iterations allowed for desired pd residual.

Definition at line 105 of file IpInexactPDTerminationTester.hpp.

bool Ipopt::InexactPDTerminationTester::requires_scaling_`[private]`

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

Definition at line 107 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Av_c_`[private]`

Definition at line 113 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Av_d_`[private]`

Definition at line 114 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::c_norm_`[private]`

Definition at line 115 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::c_plus_Av_norm_`[private]`

Definition at line 116 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::v_norm_scaled_`[private]`

Definition at line 117 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_grad_barrier_obj_x_`[private]`

Definition at line 118 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_grad_barrier_obj_s_`[private]`

Definition at line 119 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Matrix> Ipopt::InexactPDTerminationTester::curr_jac_c_`[private]`

Definition at line 120 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Matrix> Ipopt::InexactPDTerminationTester::curr_jac_d_`[private]`

Definition at line 121 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_scaling_slacks_`[private]`

Definition at line 122 of file IpInexactPDTerminationTester.hpp.

SmartPtr<Vector> Ipopt::InexactPDTerminationTester::curr_nabla_phi_plus_ATy_x_`[private]`

Definition at line 123 of file IpInexactPDTerminationTester.hpp.

SmartPtr<Vector> Ipopt::InexactPDTerminationTester::curr_nabla_phi_plus_ATy_s_`[private]`

Definition at line 124 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::curr_Av_norm_`[private]`

Definition at line 125 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::curr_tt1_norm_`[private]`

Definition at line 126 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::curr_tt2_norm_`[private]`

Definition at line 127 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Wv_x_`[private]`

Definition at line 128 of file IpInexactPDTerminationTester.hpp.

SmartPtr<const Vector> Ipopt::InexactPDTerminationTester::curr_Wv_s_`[private]`

Definition at line 129 of file IpInexactPDTerminationTester.hpp.

bool Ipopt::InexactPDTerminationTester::try_tt2_`[private]`

Definition at line 130 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::last_Av_norm_`[private]`

Definition at line 136 of file IpInexactPDTerminationTester.hpp.

Number Ipopt::InexactPDTerminationTester::last_tt1_norm_`[private]`

Definition at line 137 of file IpInexactPDTerminationTester.hpp.

Index Ipopt::InexactPDTerminationTester::last_iter_`[private]`

Last iterative solver iteration counter.

Definition at line 141 of file IpInexactPDTerminationTester.hpp.

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

- src/Algorithm/Inexact/IpInexactPDTerminationTester.hpp

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines