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
IpMumpsSolverInterface.hpp
Go to the documentation of this file.
1
// Copyright (C) 2006, 2007 Damien Hocking, KBC Advanced Technologies
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// Authors: Damien Hocking KBC 2006-03-20
6
// (included his original contribution into Ipopt package on 2006-03-25)
7
// Andreas Waechter IBM 2006-03-25
8
// (minor changes and corrections)
9
// Scott Turnberg CMU 2006-05-12
10
// (major revision)
11
// (incorporated by AW on 2006-11-11 into Ipopt package)
12
13
14
#ifndef __IPMUMPSSOLVERINTERFACE_HPP__
15
#define __IPMUMPSSOLVERINTERFACE_HPP__
16
17
#include "
IpSparseSymLinearSolverInterface.hpp
"
18
19
namespace
Ipopt
20
{
21
26
class
MumpsSolverInterface
:
public
SparseSymLinearSolverInterface
27
{
28
public
:
32
MumpsSolverInterface
();
33
35
virtual
~MumpsSolverInterface
();
37
39
bool
InitializeImpl
(
const
OptionsList
& options,
40
const
std::string& prefix);
41
49
virtual
ESymSolverStatus
InitializeStructure
(
Index
dim,
Index
nonzeros,
50
const
Index
*airn,
51
const
Index
*ajcn);
52
58
virtual
double
*
GetValuesArrayPtr
();
59
63
virtual
ESymSolverStatus
MultiSolve
(
bool
new_matrix,
64
const
Index
* airn,
65
const
Index
* ajcn,
66
Index
nrhs,
67
double
* rhs_vals,
68
bool
check_NegEVals,
69
Index
numberOfNegEVals);
70
77
virtual
Index
NumberOfNegEVals
()
const
;
79
80
//* @name Options of Linear solver */
82
87
virtual
bool
IncreaseQuality
();
88
92
virtual
bool
ProvidesInertia
()
const
93
{
94
return
true
;
95
}
99
EMatrixFormat
MatrixFormat
()
const
100
{
101
return
Triplet_Format
;
102
}
104
107
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
109
112
virtual
bool
ProvidesDegeneracyDetection
()
const
;
113
116
virtual
ESymSolverStatus
DetermineDependentRows
(
const
Index
* ia,
117
const
Index
* ja,
118
std::list<Index>& c_deps);
119
120
private
:
130
MumpsSolverInterface
(
const
MumpsSolverInterface
&);
131
133
void
operator=
(
const
MumpsSolverInterface
&);
135
139
void
*
mumps_ptr_
;
141
145
Index
negevals_
;
147
152
bool
initialized_
;
155
bool
pivtol_changed_
;
159
bool
refactorize_
;
164
static
int
instancecount_mpi
;
166
170
Number
pivtol_
;
171
173
Number
pivtolmax_
;
174
176
Index
mem_percent_
;
177
179
Index
mumps_permuting_scaling_
;
180
182
Index
mumps_pivot_order_
;
183
185
Index
mumps_scaling_
;
186
189
Number
mumps_dep_tol_
;
190
193
bool
warm_start_same_structure_
;
195
198
bool
have_symbolic_factorization_
;
199
205
ESymSolverStatus
SymbolicFactorization
();
206
211
ESymSolverStatus
Factorization
(
bool
check_NegEVals,
212
Index
numberOfNegEVals);
213
216
ESymSolverStatus
Solve
(
Index
nrhs,
double
*rhs_vals);
218
};
219
220
}
// namespace Ipopt
221
#endif
Generated by
1.8.3.1