Ipopt 3.11.9
Loading...
Searching...
No Matches
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// $Id: IpCGSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $
6//
7// Authors: Andreas Waechter IBM 2005-10-13
8//
9// Lifeng Chen/Zaiwen Wen Columbia Univ
10
11#ifndef __IPCGSEARCHDIRCALC_HPP__
12#define __IPCGSEARCHDIRCALC_HPP__
13
15#include "IpPDSystemSolver.hpp"
16#include "IpCGPenaltyCq.hpp"
17
18namespace Ipopt
19{
20
26 {
27 public:
32
36
38 virtual bool InitializeImpl(const OptionsList& options,
39 const std::string& prefix);
40
44 virtual bool ComputeSearchDirection();
45
50
51 private:
62
65
69
72 {
73 CGPenaltyData& cg_pen_data =
74 static_cast<CGPenaltyData&>(IpData().AdditionalData());
75 DBG_ASSERT(dynamic_cast<CGPenaltyData*>(&IpData().AdditionalData()));
76 return cg_pen_data;
77 }
78
81 {
82 CGPenaltyCq& cg_pen_cq =
83 static_cast<CGPenaltyCq&>(IpCq().AdditionalCq());
84 DBG_ASSERT(dynamic_cast<CGPenaltyCq*>(&IpCq().AdditionalCq()));
85 return cg_pen_cq;
86 }
87
99
100
101
105
108
117
121
125
130 };
131
132} // namespace Ipopt
133
134#endif
#define DBG_ASSERT(test)
Definition IpDebug.hpp:38
IpoptCalculatedQuantities & IpCq() const
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm.
Implementation of the search direction calculator that computes the Chen-Goldfarb step for the curren...
Number pen_des_fact_
parameters used in computation of line search penalty parameter and KKT perturbation parameters
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Number penalty_init_min_
safeguard factor for bound multipliers.
CGPenaltyData & CGPenData()
Method to easily access CGPenalty data.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
CGPenaltyCq & CGPenCq()
Method to easily access CGPenalty calculated quantities.
void operator=(const CGSearchDirCalculator &)
Overloaded Equals Operator.
CGSearchDirCalculator(const CGSearchDirCalculator &)
Copy Constructor.
bool penalty_backward_
Algorithm type.
Index nonmonotone_pen_update_counter_
Counter for how many times the pen para is updated nonmonotonically.
bool never_use_fact_cgpen_direction_
Flag indicating whether the fast Chen-Goldfarb direction should never be used.
SmartPtr< PDSystemSolver > pd_solver_
CGSearchDirCalculator(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
CGSearchDirCalculator()
Default Constructor.
Number penalty_init_max_
Maximal value for initial penalty parameter.
virtual bool ComputeSearchDirection()
Method for computing the search direction.
Number penalty_max_
Maximal value for penalty parameters.
Number kappa_x_dis_
parameters used to check if the fast direction can be used as the line search direction
virtual ~CGSearchDirCalculator()
Default destructor.
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
This class stores a list of user set options.
Base class for computing the search direction for the line search.
Template class for Smart Pointers.
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
double Number
Type of all numbers.
Definition IpTypes.hpp:17