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
LinearSolvers
IpMa57TSolverInterface.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpMa57TSolverInterface.hpp 2158 2012-12-04 19:24:42Z stefan $
6
//
7
// Authors: Michael Hagemann Univ of Basel 2005-10-28
8
// original version (based on MA27TSolverInterface.hpp)
9
10
#ifndef __IPMA57TSOLVERINTERFACE_HPP__
11
#define __IPMA57TSOLVERINTERFACE_HPP__
12
13
#include "
IpSparseSymLinearSolverInterface.hpp
"
14
15
#ifdef FUNNY_MA57_FINT
16
#include <cstddef>
17
typedef
ptrdiff_t
ma57int
;
18
#else
19
typedef
ipfint
ma57int
;
20
#endif
21
22
namespace
Ipopt
23
{
27
class
Ma57TSolverInterface
:
public
SparseSymLinearSolverInterface
28
{
29
public
:
33
Ma57TSolverInterface
();
34
36
virtual
~Ma57TSolverInterface
();
38
40
bool
InitializeImpl
(
const
OptionsList
& options,
41
const
std::string& prefix);
42
43
51
virtual
ESymSolverStatus
InitializeStructure
(
52
Index
dim,
53
Index
nonzeros,
54
const
Index
*airn,
55
const
Index
*ajcn);
56
62
virtual
double
*
GetValuesArrayPtr
();
63
67
virtual
ESymSolverStatus
MultiSolve
(
bool
new_matrix,
68
const
Index
* airn,
69
const
Index
* ajcn,
70
Index
nrhs,
71
double
* rhs_vals,
72
bool
check_NegEVals,
73
Index
numberOfNegEVals);
74
81
virtual
Index
NumberOfNegEVals
()
const
;
83
84
//* @name Options of Linear solver */
86
91
virtual
bool
IncreaseQuality
();
92
96
virtual
bool
ProvidesInertia
()
const
97
{
98
return
true
;
99
}
103
EMatrixFormat
MatrixFormat
()
const
104
{
105
return
Triplet_Format
;
106
}
108
111
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
113
114
private
:
124
Ma57TSolverInterface
(
const
Ma57TSolverInterface
&);
125
127
void
operator=
(
const
Ma57TSolverInterface
&);
129
133
Index
dim_
;
134
136
Index
nonzeros_
;
138
142
Index
negevals_
;
144
149
bool
initialized_
;
152
bool
pivtol_changed_
;
156
bool
refactorize_
;
158
162
Number
pivtol_
;
164
Number
pivtolmax_
;
166
Number
ma57_pre_alloc_
;
169
bool
warm_start_same_structure_
;
171
176
double
wd_cntl_
[5];
177
ma57int
wd_icntl_
[20];
178
179
ma57int
wd_info_
[40];
180
double
wd_rinfo_
[20];
181
182
ma57int
wd_lkeep_
;
/* LKEEP >= 5*N + NE + max(N,NE) + 42. */
183
ma57int
*
wd_keep_
;
184
185
ma57int
*
wd_iwork_
;
/* 5 * N. */
186
187
double
*
wd_fact_
;
188
ma57int
wd_lfact_
;
189
ma57int
*
wd_ifact_
;
190
ma57int
wd_lifact_
;
191
192
194
double
*
a_
;
196
203
ESymSolverStatus
SymbolicFactorization
(
const
Index
* airn,
204
const
Index
* ajcn);
205
210
ESymSolverStatus
Factorization
(
const
Index
* airn,
211
const
Index
* ajcn,
212
bool
check_NegEVals,
213
Index
numberOfNegEVals);
214
217
ESymSolverStatus
Backsolve
(
Index
nrhs,
218
double
*rhs_vals);
220
};
221
222
}
// namespace Ipopt
223
#endif
Generated by
1.8.3.1