Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpInexactSearchDirCalc.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: IpInexactSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-08-31
8
9 #ifndef __IPINEXACTSEARCHDIRCALC_HPP__
10 #define __IPINEXACTSEARCHDIRCALC_HPP__
11
12 #include "IpSearchDirCalculator.hpp"
13 #include "IpInexactCq.hpp"
14 #include "IpInexactNormalStepCalc.hpp"
15 #include "IpInexactPDSolver.hpp"
16
17 namespace Ipopt
18 {
24 class InexactSearchDirCalculator : public SearchDirectionCalculator
25 {
26 public:
30 InexactSearchDirCalculator(SmartPtr<InexactNormalStepCalculator> normal_step_calculator,
31 SmartPtr<InexactPDSolver> inexact_pd_solver);
32
34 virtual ~InexactSearchDirCalculator();
36
38 virtual bool InitializeImpl(const OptionsList& options,
39 const std::string& prefix);
40
45 virtual bool ComputeSearchDirection();
46
49 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
51
52 private:
62 InexactSearchDirCalculator();
63
65 InexactSearchDirCalculator(const InexactSearchDirCalculator&);
66
68 void operator=(const InexactSearchDirCalculator&);
70
72 InexactData& InexData()
73 {
74 InexactData& inexact_data =
75 static_cast<InexactData&>(IpData().AdditionalData());
76 DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
77 return inexact_data;
78 }
79
81 InexactCq& InexCq()
82 {
83 InexactCq& inexact_cq =
84 static_cast<InexactCq&>(IpCq().AdditionalCq());
85 DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
86 return inexact_cq;
87 }
88
92 Number local_inf_Ac_tol_;
94
97 SmartPtr<InexactNormalStepCalculator> normal_step_calculator_;
98 SmartPtr<InexactPDSolver> inexact_pd_solver_;
100
102 enum DecompositionTypeEnum
103 {
104 ALWAYS=0,
105 ADAPTIVE,
106 SWITCH_ONCE
107 };
109 DecompositionTypeEnum decomposition_type_;
110 };
111
112 } // namespace Ipopt
113
114 #endif
Ipopt::InexactSearchDirCalculator::ADAPTIVE
Definition: IpInexactSearchDirCalc.hpp:105
Ipopt::InexactSearchDirCalculator::~InexactSearchDirCalculator
virtual ~InexactSearchDirCalculator()
Default destructor.
Ipopt::InexactSearchDirCalculator::DecompositionTypeEnum
DecompositionTypeEnum
enumeration for decomposition options
Definition: IpInexactSearchDirCalc.hpp:102
IpInexactPDSolver.hpp
Ipopt::InexactSearchDirCalculator
Implementation of the search direction calculator that computes the search direction using iterative ...
Definition: IpInexactSearchDirCalc.hpp:24
Ipopt::InexactSearchDirCalculator::SWITCH_ONCE
Definition: IpInexactSearchDirCalc.hpp:106
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::InexactSearchDirCalculator::normal_step_calculator_
SmartPtr< InexactNormalStepCalculator > normal_step_calculator_
Definition: IpInexactSearchDirCalc.hpp:97
Ipopt::SearchDirectionCalculator
Base class for computing the search direction for the line search.
Definition: IpSearchDirCalculator.hpp:20
Ipopt::IpoptCalculatedQuantities::AdditionalCq
IpoptAdditionalCq & AdditionalCq()
Definition: IpIpoptCalculatedQuantities.hpp:452
Ipopt::InexactSearchDirCalculator::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Ipopt::InexactSearchDirCalculator::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Ipopt::InexactSearchDirCalculator::ComputeSearchDirection
virtual bool ComputeSearchDirection()
Method for computing the search direction.
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::InexactSearchDirCalculator::InexData
InexactData & InexData()
Method to easily access Inexact data.
Definition: IpInexactSearchDirCalc.hpp:72
Ipopt::InexactSearchDirCalculator::operator=
void operator=(const InexactSearchDirCalculator &)
Overloaded Equals Operator.
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::InexactSearchDirCalculator::local_inf_Ac_tol_
Number local_inf_Ac_tol_
termination tolerance for local infeasibility
Definition: IpInexactSearchDirCalc.hpp:92
Ipopt::InexactSearchDirCalculator::ALWAYS
Definition: IpInexactSearchDirCalc.hpp:104
Ipopt::IpoptData::AdditionalData
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
Definition: IpIpoptData.hpp:502
Ipopt::InexactSearchDirCalculator::inexact_pd_solver_
SmartPtr< InexactPDSolver > inexact_pd_solver_
Definition: IpInexactSearchDirCalc.hpp:98
Ipopt::InexactSearchDirCalculator::decomposition_type_
DecompositionTypeEnum decomposition_type_
Type of decomposition.
Definition: IpInexactSearchDirCalc.hpp:109
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
Ipopt::InexactCq
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpInexactCq.hpp:22
Ipopt::InexactData
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
Definition: IpInexactData.hpp:19
Ipopt::AlgorithmStrategyObject::IpData
IpoptData & IpData() const
Definition: IpAlgStrategy.hpp:131
IpInexactNormalStepCalc.hpp
Ipopt::InexactSearchDirCalculator::InexactSearchDirCalculator
InexactSearchDirCalculator()
Default Constructor.
IpInexactCq.hpp
Ipopt::AlgorithmStrategyObject::IpCq
IpoptCalculatedQuantities & IpCq() const
Definition: IpAlgStrategy.hpp:137
Ipopt::InexactSearchDirCalculator::InexCq
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
Definition: IpInexactSearchDirCalc.hpp:81
IpSearchDirCalculator.hpp