Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpInexactPDTerminationTester.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008, 2011 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpInexactPDTerminationTester.hpp 2204 2013-04-13 13:49:26Z stefan $
6 //
7 // Authors: Andreas Waechter IBM 2008-09-19
8
9 #ifndef __IPINEXACTPDTERMINATIONTESTER_HPP__
10 #define __IPINEXACTPDTERMINATIONTESTER_HPP__
11
12 #include "IpIterativeSolverTerminationTester.hpp"
13
14 namespace Ipopt
15 {
16
20 class InexactPDTerminationTester: public IterativeSolverTerminationTester
21 {
22 public:
27 InexactPDTerminationTester();
28
30 virtual ~InexactPDTerminationTester();
32
33 /* overloaded from AlgorithmStrategyObject */
34 virtual bool InitializeImpl(const OptionsList& options,
35 const std::string& prefix);
36
39 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
41
44 virtual bool InitializeSolve();
45
52 virtual ETerminationTest TestTermination(Index ndim, const Number* sol,
53 const Number* resid, Index iter,
54 Number norm2_rhs);
55
58 virtual void Clear();
59
62 virtual Index GetSolverIterations() const
63 {
64 return last_iter_;
65 }
66
67 private:
77 InexactPDTerminationTester& operator=(const InexactPDTerminationTester&);
79
83 Number tcc_psi_;
85 Number tcc_theta_;
88 Number tcc_theta_mu_exponent_;
90 Number tcc_zeta_;
92 Number tt_kappa1_;
94 Number tt_kappa2_;
96 Number tt_eps2_;
98 Number tt_eps3_;
101 Number rho_;
103 Number inexact_desired_pd_residual_;
105 Index inexact_desired_pd_residual_iter_;
107 bool requires_scaling_;
109
113 SmartPtr<const Vector> curr_Av_c_;
114 SmartPtr<const Vector> curr_Av_d_;
115 Number c_norm_;
116 Number c_plus_Av_norm_;
117 Number v_norm_scaled_;
118 SmartPtr<const Vector> curr_grad_barrier_obj_x_;
119 SmartPtr<const Vector> curr_grad_barrier_obj_s_; // in original space
120 SmartPtr<const Matrix> curr_jac_c_;
121 SmartPtr<const Matrix> curr_jac_d_;
122 SmartPtr<const Vector> curr_scaling_slacks_;
123 SmartPtr<Vector> curr_nabla_phi_plus_ATy_x_;
124 SmartPtr<Vector> curr_nabla_phi_plus_ATy_s_; // in scaled space
125 Number curr_Av_norm_;
126 Number curr_tt1_norm_;
127 Number curr_tt2_norm_;
128 SmartPtr<const Vector> curr_Wv_x_;
129 SmartPtr<const Vector> curr_Wv_s_; // in original space
130 bool try_tt2_;
132
136 Number last_Av_norm_;
137 Number last_tt1_norm_;
139
141 Index last_iter_;
142 };
143
144 } // namespace Ipopt
145
146 #endif
Ipopt::InexactPDTerminationTester::last_Av_norm_
Number last_Av_norm_
Definition: IpInexactPDTerminationTester.hpp:136
Ipopt::InexactPDTerminationTester::curr_Wv_s_
SmartPtr< const Vector > curr_Wv_s_
Definition: IpInexactPDTerminationTester.hpp:129
Ipopt::InexactPDTerminationTester
This class implements the termination tests for the primal-dual system.
Definition: IpInexactPDTerminationTester.hpp:20
Ipopt::InexactPDTerminationTester::curr_scaling_slacks_
SmartPtr< const Vector > curr_scaling_slacks_
Definition: IpInexactPDTerminationTester.hpp:122
Ipopt::InexactPDTerminationTester::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Ipopt::InexactPDTerminationTester::curr_nabla_phi_plus_ATy_s_
SmartPtr< Vector > curr_nabla_phi_plus_ATy_s_
Definition: IpInexactPDTerminationTester.hpp:124
Ipopt::IterativeSolverTerminationTester
This base class is for the termination tests for the iterative linear solver in the inexact version o...
Definition: IpIterativeSolverTerminationTester.hpp:21
Ipopt::InexactPDTerminationTester::curr_Av_c_
SmartPtr< const Vector > curr_Av_c_
Definition: IpInexactPDTerminationTester.hpp:113
Ipopt::InexactPDTerminationTester::GetSolverIterations
virtual Index GetSolverIterations() const
Return the number of iterative solver iteration from the most recent solve.
Definition: IpInexactPDTerminationTester.hpp:62
Ipopt::InexactPDTerminationTester::tcc_theta_mu_exponent_
Number tcc_theta_mu_exponent_
mu exponent when multiplied to theta in the tangential component condition
Definition: IpInexactPDTerminationTester.hpp:88
Ipopt::InexactPDTerminationTester::curr_jac_d_
SmartPtr< const Matrix > curr_jac_d_
Definition: IpInexactPDTerminationTester.hpp:121
Ipopt::InexactPDTerminationTester::curr_tt1_norm_
Number curr_tt1_norm_
Definition: IpInexactPDTerminationTester.hpp:126
Ipopt::InexactPDTerminationTester::tcc_psi_
Number tcc_psi_
Psi factor in the tangential component condition.
Definition: IpInexactPDTerminationTester.hpp:83
Ipopt::InexactPDTerminationTester::Clear
virtual void Clear()
This method can be called after the Solve is over and we can delete anything that has been allocated ...
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::InexactPDTerminationTester::tt_kappa2_
Number tt_kappa2_
kappa_2 factor in termination test 2
Definition: IpInexactPDTerminationTester.hpp:94
Ipopt::InexactPDTerminationTester::tcc_zeta_
Number tcc_zeta_
zeta factor in the tangential component condition
Definition: IpInexactPDTerminationTester.hpp:90
Ipopt::InexactPDTerminationTester::curr_Av_d_
SmartPtr< const Vector > curr_Av_d_
Definition: IpInexactPDTerminationTester.hpp:114
Ipopt::InexactPDTerminationTester::c_norm_
Number c_norm_
Definition: IpInexactPDTerminationTester.hpp:115
Ipopt::InexactPDTerminationTester::curr_nabla_phi_plus_ATy_x_
SmartPtr< Vector > curr_nabla_phi_plus_ATy_x_
Definition: IpInexactPDTerminationTester.hpp:123
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::InexactPDTerminationTester::curr_grad_barrier_obj_s_
SmartPtr< const Vector > curr_grad_barrier_obj_s_
Definition: IpInexactPDTerminationTester.hpp:119
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::InexactPDTerminationTester::c_plus_Av_norm_
Number c_plus_Av_norm_
Definition: IpInexactPDTerminationTester.hpp:116
Ipopt::InexactPDTerminationTester::operator=
InexactPDTerminationTester & operator=(const InexactPDTerminationTester &)
Overloaded Equals Operator.
Ipopt::InexactPDTerminationTester::~InexactPDTerminationTester
virtual ~InexactPDTerminationTester()
Default destructor.
Ipopt::InexactPDTerminationTester::last_tt1_norm_
Number last_tt1_norm_
Definition: IpInexactPDTerminationTester.hpp:137
Ipopt::InexactPDTerminationTester::rho_
Number rho_
rho constant from penalty parameter update.
Definition: IpInexactPDTerminationTester.hpp:101
Ipopt::InexactPDTerminationTester::InitializeImpl
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...
Ipopt::InexactPDTerminationTester::curr_Av_norm_
Number curr_Av_norm_
Definition: IpInexactPDTerminationTester.hpp:125
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Ipopt::InexactPDTerminationTester::InexactPDTerminationTester
InexactPDTerminationTester()
Default constructor.
Ipopt::InexactPDTerminationTester::tt_eps2_
Number tt_eps2_
eps_2 constant in termination test 2
Definition: IpInexactPDTerminationTester.hpp:96
Ipopt::InexactPDTerminationTester::curr_grad_barrier_obj_x_
SmartPtr< const Vector > curr_grad_barrier_obj_x_
Definition: IpInexactPDTerminationTester.hpp:118
Ipopt::InexactPDTerminationTester::requires_scaling_
bool requires_scaling_
Is set to true if the linear system is scaled via slacks.
Definition: IpInexactPDTerminationTester.hpp:107
Ipopt::InexactPDTerminationTester::inexact_desired_pd_residual_iter_
Index inexact_desired_pd_residual_iter_
Number of iterations allowed for desired pd residual.
Definition: IpInexactPDTerminationTester.hpp:105
Ipopt::InexactPDTerminationTester::InitializeSolve
virtual bool InitializeSolve()
Method for initializing for the next iterative solve.
Ipopt::InexactPDTerminationTester::last_iter_
Index last_iter_
Last iterative solver iteration counter.
Definition: IpInexactPDTerminationTester.hpp:141
Ipopt::InexactPDTerminationTester::curr_Wv_x_
SmartPtr< const Vector > curr_Wv_x_
Definition: IpInexactPDTerminationTester.hpp:128
Ipopt::InexactPDTerminationTester::tt_kappa1_
Number tt_kappa1_
kappa_1 factor in termination test 1
Definition: IpInexactPDTerminationTester.hpp:92
Ipopt::InexactPDTerminationTester::inexact_desired_pd_residual_
Number inexact_desired_pd_residual_
Desired reduction of residual.
Definition: IpInexactPDTerminationTester.hpp:103
Ipopt::InexactPDTerminationTester::try_tt2_
bool try_tt2_
Definition: IpInexactPDTerminationTester.hpp:130
Ipopt::InexactPDTerminationTester::curr_tt2_norm_
Number curr_tt2_norm_
Definition: IpInexactPDTerminationTester.hpp:127
IpIterativeSolverTerminationTester.hpp
Ipopt::InexactPDTerminationTester::curr_jac_c_
SmartPtr< const Matrix > curr_jac_c_
Definition: IpInexactPDTerminationTester.hpp:120
Ipopt::InexactPDTerminationTester::tcc_theta_
Number tcc_theta_
theta factor in the tangential component condition
Definition: IpInexactPDTerminationTester.hpp:85
Ipopt::IterativeSolverTerminationTester::ETerminationTest
ETerminationTest
Enum to report result of termination test.
Definition: IpIterativeSolverTerminationTester.hpp:25
Ipopt::InexactPDTerminationTester::v_norm_scaled_
Number v_norm_scaled_
Definition: IpInexactPDTerminationTester.hpp:117
Ipopt::InexactPDTerminationTester::tt_eps3_
Number tt_eps3_
eps_3 constant in termination test 3
Definition: IpInexactPDTerminationTester.hpp:98
Ipopt::InexactPDTerminationTester::TestTermination
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...