Ipopt Documentation  
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IpCGSearchDirCalc.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors: Andreas Waechter IBM 2005-10-13
6 //
7 // Lifeng Chen/Zaiwen Wen Columbia Univ
8 
9 #ifndef __IPCGSEARCHDIRCALC_HPP__
10 #define __IPCGSEARCHDIRCALC_HPP__
11 
13 #include "IpPDSystemSolver.hpp"
14 #include "IpCGPenaltyCq.hpp"
15 
16 namespace Ipopt
17 {
18 
24 {
25 public:
27 
30  const SmartPtr<PDSystemSolver>& pd_solver
31  );
32 
34  virtual ~CGSearchDirCalculator();
36 
38  virtual bool InitializeImpl(
39  const OptionsList& options,
40  const std::string& prefix
41  );
42 
49  virtual bool ComputeSearchDirection();
50 
52  static void RegisterOptions(
55  );
57 
58 private:
68 
71 
75  );
76 
78  void operator=(
80  );
82 
85  {
86  CGPenaltyData& cg_pen_data = static_cast<CGPenaltyData&>(IpData().AdditionalData());
87  DBG_ASSERT(dynamic_cast<CGPenaltyData*>(&IpData().AdditionalData()));
88  return cg_pen_data;
89  }
90 
93  {
94  CGPenaltyCq& cg_pen_cq = static_cast<CGPenaltyCq&>(IpCq().AdditionalCq());
95  DBG_ASSERT(dynamic_cast<CGPenaltyCq*>(&IpCq().AdditionalCq()));
96  return cg_pen_cq;
97  }
98 
100 
112 
117 
120 
130 
135 
139 
144 };
145 
146 } // namespace Ipopt
147 
148 #endif
Number pen_des_fact_
parameters used in computation of line search penalty parameter and KKT perturbation parameters ...
virtual ~CGSearchDirCalculator()
Destructor.
Implementation of the search direction calculator that computes the Chen-Goldfarb step for the curren...
Number penalty_init_max_
Maximal value for initial penalty parameter.
CGSearchDirCalculator()
Default Constructor.
Number kappa_x_dis_
parameters used to check if the fast direction can be used as the line search direction ...
virtual bool ComputeSearchDirection()
Method for computing the search direction.
Index nonmonotone_pen_update_counter_
Counter for how many times the pen parameter is updated non-monotonically.
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
Base class for computing the search direction for the line search.
Number penalty_init_min_
safeguard factor for bound multipliers.
CGPenaltyData & CGPenData()
Method to easily access CGPenalty data.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
This class stores a list of user set options.
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
void operator=(const CGSearchDirCalculator &)
Default Assignment Operator.
Class for all Chen-Goldfarb penalty method specific calculated quantities.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
bool penalty_backward_
Algorithm type.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:27
IpoptCalculatedQuantities & IpCq() const
CGPenaltyCq & CGPenCq()
Method to easily access CGPenalty calculated quantities.
bool never_use_fact_cgpen_direction_
Flag indicating whether the fast Chen-Goldfarb direction should never be used.
SmartPtr< PDSystemSolver > pd_solver_
Number penalty_max_
Maximal value for penalty parameters.