Ipopt Documentation  
 
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// 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
16namespace Ipopt
17{
18
24{
25public:
28
30 const SmartPtr<PDSystemSolver>& pd_solver
31 );
32
36
38 virtual bool InitializeImpl(
39 const OptionsList& options,
40 const std::string& prefix
41 );
42
49 virtual bool ComputeSearchDirection();
50
53 static void RegisterOptions(
55 );
57
58private:
69
71
75 );
76
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
101
112
117
120
130
135
139
144};
145
146} // namespace Ipopt
147
148#endif
#define DBG_ASSERT(test)
Definition IpDebug.hpp:27
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 &)
Default Assignment Operator.
CGSearchDirCalculator(const CGSearchDirCalculator &)
Copy Constructor.
bool penalty_backward_
Algorithm type.
Index nonmonotone_pen_update_counter_
Counter for how many times the pen parameter is updated non-monotonically.
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()
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.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17