Ipopt  3.12.12
 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 
13 
14 namespace Ipopt
15 {
16 
21  {
22  public:
28 
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:
79 
109 
129  SmartPtr<const Vector> curr_Wv_s_; // in original space
130  bool try_tt2_;
132 
139 
142  };
143 
144 } // namespace Ipopt
145 
146 #endif
This class implements the termination tests for the primal-dual system.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
This base class is for the termination tests for the iterative linear solver in the inexact version o...
virtual Index GetSolverIterations() const
Return the number of iterative solver iteration from the most recent solve.
Number tcc_theta_mu_exponent_
mu exponent when multiplied to theta in the tangential component condition
Number tcc_psi_
Psi factor in the tangential component condition.
virtual void Clear()
This method can be called after the Solve is over and we can delete anything that has been allocated ...
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Number tt_kappa2_
kappa_2 factor in termination test 2
Number tcc_zeta_
zeta factor in the tangential component condition
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
This class stores a list of user set options.
InexactPDTerminationTester & operator=(const InexactPDTerminationTester &)
Overloaded Equals Operator.
virtual ~InexactPDTerminationTester()
Default destructor.
Number rho_
rho constant from penalty parameter update.
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...
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
InexactPDTerminationTester()
Default constructor.
Number tt_eps2_
eps_2 constant in termination test 2
bool requires_scaling_
Is set to true if the linear system is scaled via slacks.
Index inexact_desired_pd_residual_iter_
Number of iterations allowed for desired pd residual.
virtual bool InitializeSolve()
Method for initializing for the next iterative solve.
Index last_iter_
Last iterative solver iteration counter.
Number tt_kappa1_
kappa_1 factor in termination test 1
Number inexact_desired_pd_residual_
Desired reduction of residual.
Number tcc_theta_
theta factor in the tangential component condition
ETerminationTest
Enum to report result of termination test.
Number tt_eps3_
eps_3 constant in termination test 3
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...