Main Page
Namespaces
Classes
Files
File List
File Members
var
build
temp
tmp.niCloInx4p
4.0-0-0
coinor-ipopt
coinor-ipopt-3.10.2
Ipopt
contrib
sIPOPT
src
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
Generated on Mon Mar 17 2014 19:49:12 by
1.8.1.2