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
src
Algorithm
IpStdAugSystemSolver.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpStdAugSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IP_STDAUGSYSTEMSOLVER_HPP__
10
#define __IP_STDAUGSYSTEMSOLVER_HPP__
11
12
#include "
IpAugSystemSolver.hpp
"
13
#include "
IpCompoundMatrix.hpp
"
14
#include "
IpCompoundSymMatrix.hpp
"
15
#include "
IpCompoundVector.hpp
"
16
#include "
IpSumSymMatrix.hpp
"
17
#include "
IpDiagMatrix.hpp
"
18
#include "
IpIdentityMatrix.hpp
"
19
20
namespace
Ipopt
21
{
27
class
StdAugSystemSolver
:
public
AugSystemSolver
28
{
29
public
:
33
StdAugSystemSolver
(
SymLinearSolver
& LinSolver);
34
36
virtual
~StdAugSystemSolver
();
38
40
bool
InitializeImpl
(
const
OptionsList
& options,
41
const
std::string& prefix);
42
47
virtual
ESymSolverStatus
MultiSolve
(
48
const
SymMatrix
* W,
49
double
W_factor,
50
const
Vector
* D_x,
51
double
delta_x,
52
const
Vector
* D_s,
53
double
delta_s,
54
const
Matrix
* J_c,
55
const
Vector
* D_c,
56
double
delta_c,
57
const
Matrix
* J_d,
58
const
Vector
* D_d,
59
double
delta_d,
60
std::vector<
SmartPtr<const Vector>
>& rhs_xV,
61
std::vector<
SmartPtr<const Vector>
>& rhs_sV,
62
std::vector<
SmartPtr<const Vector>
>& rhs_cV,
63
std::vector<
SmartPtr<const Vector>
>& rhs_dV,
64
std::vector<
SmartPtr<Vector>
>& sol_xV,
65
std::vector<
SmartPtr<Vector>
>& sol_sV,
66
std::vector<
SmartPtr<Vector>
>& sol_cV,
67
std::vector<
SmartPtr<Vector>
>& sol_dV,
68
bool
check_NegEVals,
69
Index
numberOfNegEVals);
70
77
virtual
Index
NumberOfNegEVals
()
const
;
78
82
virtual
bool
ProvidesInertia
()
const
;
83
90
virtual
bool
IncreaseQuality
();
91
92
private
:
102
StdAugSystemSolver
();
104
StdAugSystemSolver
(
const
StdAugSystemSolver
&);
105
107
void
operator=
(
const
StdAugSystemSolver
&);
109
110
114
void
CreateAugmentedSpace
(
const
SymMatrix
& W,
115
const
Matrix
& J_c,
116
const
Matrix
& J_d,
117
const
Vector
& proto_x,
118
const
Vector
& proto_s,
119
const
Vector
& proto_c,
120
const
Vector
& proto_d);
121
122
126
void
CreateAugmentedSystem
(
const
SymMatrix
* W,
127
double
W_factor,
128
const
Vector
* D_x,
129
double
delta_x,
130
const
Vector
* D_s,
131
double
delta_s,
132
const
Matrix
& J_c,
133
const
Vector
* D_c,
134
double
delta_c,
135
const
Matrix
& J_d,
136
const
Vector
* D_d,
137
double
delta_d,
138
const
Vector
& proto_x,
139
const
Vector
& proto_s,
140
const
Vector
& proto_c,
141
const
Vector
& proto_d);
142
145
bool
AugmentedSystemRequiresChange
(
const
SymMatrix
* W,
146
double
W_factor,
147
const
Vector
* D_x,
148
double
delta_x,
149
const
Vector
* D_s,
150
double
delta_s,
151
const
Matrix
& J_c,
152
const
Vector
* D_c,
153
double
delta_c,
154
const
Matrix
& J_d,
155
const
Vector
* D_d,
156
double
delta_d);
157
161
SmartPtr<SymLinearSolver>
linsolver_
;
162
164
SmartPtr<CompoundSymMatrixSpace>
augmented_system_space_
;
165
SmartPtr<SumSymMatrixSpace>
sumsym_space_x_
;
166
SmartPtr<DiagMatrixSpace>
diag_space_x_
;
167
SmartPtr<DiagMatrixSpace>
diag_space_s_
;
168
SmartPtr<DiagMatrixSpace>
diag_space_c_
;
169
SmartPtr<IdentityMatrixSpace>
ident_space_ds_
;
170
SmartPtr<DiagMatrixSpace>
diag_space_d_
;
171
172
SmartPtr<CompoundVectorSpace>
augmented_vector_space_
;
173
182
TaggedObject::Tag
w_tag_
;
184
double
w_factor_
;
188
TaggedObject::Tag
d_x_tag_
;
190
double
delta_x_
;
194
TaggedObject::Tag
d_s_tag_
;
196
double
delta_s_
;
200
TaggedObject::Tag
j_c_tag_
;
204
TaggedObject::Tag
d_c_tag_
;
206
double
delta_c_
;
210
TaggedObject::Tag
j_d_tag_
;
214
TaggedObject::Tag
d_d_tag_
;
216
double
delta_d_
;
217
224
TaggedObject::Tag
augsys_tag_
;
226
233
SmartPtr<CompoundSymMatrix>
augmented_system_
;
234
238
SmartPtr<const SymMatrix>
old_w_
;
239
244
bool
warm_start_same_structure_
;
246
};
247
248
}
// namespace Ipopt
249
250
#endif
Generated on Mon Mar 17 2014 19:49:13 by
1.8.1.2