Ipopt  3.12.12
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpIterativeSolverTerminationTester.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpIterativeSolverTerminationTester.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-09-19
8 
9 #ifndef __IPITERATIVESOLVERTERMINATIONTESTER_HPP__
10 #define __IPITERATIVESOLVERTERMINATIONTESTER_HPP__
11 
12 #include "IpAlgStrategy.hpp"
13 #include "IpInexactCq.hpp"
14 
15 namespace Ipopt
16 {
17 
22  {
23  public:
38  };
39 
45  {}
46 
49  {}
51 
52  /* overloaded from AlgorithmStrategyObject */
53  virtual bool InitializeImpl(const OptionsList& options,
54  const std::string& prefix) = 0;
55 
56 
59  virtual bool InitializeSolve() = 0;
60 
67  virtual ETerminationTest TestTermination(Index ndim, const Number* sol,
68  const Number* resid, Index iter,
69  Number norm2_rhs) = 0;
70 
73  virtual void Clear() = 0;
74 
76  const Journalist& GetJnlst() const
77  {
78  return Jnlst();
79  }
80 
83  virtual Index GetSolverIterations() const = 0;
84 
85  protected:
88  void GetVectors(Index ndim, const Number* array,
89  SmartPtr<const Vector>& comp_x,
90  SmartPtr<const Vector>& comp_s,
91  SmartPtr<const Vector>& comp_c,
92  SmartPtr<const Vector>& comp_d);
93 
96  {
97  InexactData& inexact_data =
98  static_cast<InexactData&>(IpData().AdditionalData());
99  DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
100  return inexact_data;
101  }
102 
105  {
106  InexactCq& inexact_cq =
107  static_cast<InexactCq&>(IpCq().AdditionalCq());
108  DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
109  return inexact_cq;
110  }
111 
112  private:
113 
125  };
126 
127 } // namespace Ipopt
128 
129 #endif
virtual Index GetSolverIterations() const =0
Return the number of iterative solver iteration from the most recent solve.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)=0
Implementation of the initialization method that has to be overloaded by for each derived class...
This base class is for the termination tests for the iterative linear solver in the inexact version o...
This is the base class for all algorithm strategy objects.
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
virtual ETerminationTest TestTermination(Index ndim, const Number *sol, const Number *resid, Index iter, Number norm2_rhs)=0
This method checks if the current soltion of the iterative linear solver is good enough (by returning...
virtual void Clear()=0
This method can be called after the Solve is over and we can delete anything that has been allocated ...
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
This class stores a list of user set options.
const Journalist & GetJnlst() const
An easy way to get the journalist if accessed from the outside.
InexactData & InexData()
Method to easily access Inexact data.
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
virtual bool InitializeSolve()=0
Method for initializing for the next iterative solve.
IterativeSolverTerminationTester & operator=(const IterativeSolverTerminationTester &)
Overloaded Equals Operator.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
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.
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpInexactCq.hpp:22
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
Class responsible for all message output.
IpoptCalculatedQuantities & IpCq() const
ETerminationTest
Enum to report result of termination test.
const Journalist & Jnlst() const