Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SensSchurDriver.hpp
Go to the documentation of this file.
1 // Copyright 2009, 2011 Hans Pirnay
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Date : 2009-05-06
6
7 #ifndef __ASSCHURDRIVER_HPP__
8 #define __ASSCHURDRIVER_HPP__
9
10 #include "SensSchurData.hpp"
11 #include "SensPCalculator.hpp"
12 #include "IpVector.hpp"
13 #include "IpIteratesVector.hpp"
14
15 namespace Ipopt
16 {
17
18 class SchurDriver : public AlgorithmStrategyObject
19 {
29 public:
30
31 SchurDriver(SmartPtr<PCalculator> pcalc,
32 SmartPtr<SchurData> data_B)
33 :
34 pcalc_(pcalc),
35 data_B_(data_B)
36 {
37 }
38
39 virtual ~SchurDriver()
40 {
41 }
42
44 virtual bool InitializeImpl(const OptionsList& options,
45 const std::string& prefix)
46 {
47 return true;
48 }
49
51 virtual SmartPtr<const SchurData> data_A() const
52 {
53 return pcalc_->data_A();
54 }
55
56 virtual SmartPtr<const SchurData> data_B() const
57 {
58 return ConstPtr(data_B_);
59 }
60
61 virtual SmartPtr<SchurData> data_A_nonconst()
62 {
63 return pcalc_->data_A_nonconst();
64 }
65
66 virtual SmartPtr<SchurData> data_B_nonconst()
67 {
68 return data_B_;
69 }
70
71 virtual SmartPtr<const PCalculator> pcalc() const
72 {
73 return ConstPtr(pcalc_);
74 }
75
76 virtual SmartPtr<PCalculator> pcalc_nonconst()
77 {
78 return pcalc_;
79 }
80
84 virtual bool SchurBuild() =0;
85
87 virtual bool SchurFactorize() =0;
88
90 virtual bool SchurSolve(SmartPtr<IteratesVector> lhs,
91 SmartPtr<const IteratesVector> rhs,
92 SmartPtr<Vector> delta_u,
93 SmartPtr<IteratesVector> sol=NULL)=0; // the vector K^(-1)*r_s which usually should have been computed before.
94
95
101 private:
102 SchurDriver()
103 {
104 }
105
106 SmartPtr<PCalculator> pcalc_;
107
108 SmartPtr<SchurData> data_B_;
109 };
110 }
111
112 #endif
IpVector.hpp
Ipopt::SchurDriver::~SchurDriver
virtual ~SchurDriver()
Definition: SensSchurDriver.hpp:39
Ipopt::SchurDriver
Definition: SensSchurDriver.hpp:18
Ipopt::AlgorithmStrategyObject
This is the base class for all algorithm strategy objects.
Definition: IpAlgStrategy.hpp:35
IpIteratesVector.hpp
SensSchurData.hpp
Ipopt::SchurDriver::SchurDriver
SchurDriver()
Performs a backsolve on S and K; calls the latter with sol=K^(-1)*r_s=0 virtual bool SchurSolve(Smar...
Definition: SensSchurDriver.hpp:102
Ipopt::SchurDriver::data_B
virtual SmartPtr< const SchurData > data_B() const
Definition: SensSchurDriver.hpp:56
Ipopt::SchurDriver::data_A_nonconst
virtual SmartPtr< SchurData > data_A_nonconst()
Definition: SensSchurDriver.hpp:61
Ipopt::SchurDriver::data_B_nonconst
virtual SmartPtr< SchurData > data_B_nonconst()
Definition: SensSchurDriver.hpp:66
Ipopt::SchurDriver::SchurFactorize
virtual bool SchurFactorize()=0
Calls the factorization routine for the SchurMatrix.
Ipopt::SchurDriver::SchurDriver
SchurDriver(SmartPtr< PCalculator > pcalc, SmartPtr< SchurData > data_B)
This class is the interface for any class that deals with the Schur matrix from the point when it is ...
Definition: SensSchurDriver.hpp:31
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::SchurDriver::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Overloaded from AlgorithmStrategyObject.
Definition: SensSchurDriver.hpp:44
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::SchurDriver::SchurSolve
virtual bool SchurSolve(SmartPtr< IteratesVector > lhs, SmartPtr< const IteratesVector > rhs, SmartPtr< Vector > delta_u, SmartPtr< IteratesVector > sol=NULL)=0
Performs a backsolve on S and K.
Ipopt::SchurDriver::SchurBuild
virtual bool SchurBuild()=0
Sets the Data for which this SchurMatrix will be built.
Ipopt::SchurDriver::data_A
virtual SmartPtr< const SchurData > data_A() const
Const accessor methods to the SchurData for for the derived classes.
Definition: SensSchurDriver.hpp:51
Ipopt::SchurDriver::pcalc
virtual SmartPtr< const PCalculator > pcalc() const
Definition: SensSchurDriver.hpp:71
Ipopt::SchurDriver::data_B_
SmartPtr< SchurData > data_B_
Definition: SensSchurDriver.hpp:108
Ipopt::ConstPtr
SmartPtr< const U > ConstPtr(const SmartPtr< U > &smart_ptr)
Definition: IpSmartPtr.hpp:572
Ipopt::SchurDriver::pcalc_
SmartPtr< PCalculator > pcalc_
Definition: SensSchurDriver.hpp:106
Ipopt::SchurDriver::pcalc_nonconst
virtual SmartPtr< PCalculator > pcalc_nonconst()
Definition: SensSchurDriver.hpp:76
SensPCalculator.hpp