Ipopt
3.11.8
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
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 by
1.8.3.1