Ipopt
3.11.4
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
src
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_
;
161
165
Number
pivtol_
;
166
168
Number
pivtolmax_
;
169
171
Index
mem_percent_
;
172
174
Index
mumps_permuting_scaling_
;
175
177
Index
mumps_pivot_order_
;
178
180
Index
mumps_scaling_
;
181
184
Number
mumps_dep_tol_
;
185
188
bool
warm_start_same_structure_
;
190
193
bool
have_symbolic_factorization_
;
194
200
ESymSolverStatus
SymbolicFactorization
();
201
206
ESymSolverStatus
Factorization
(
bool
check_NegEVals,
207
Index
numberOfNegEVals);
208
211
ESymSolverStatus
Solve
(
Index
nrhs,
double
*rhs_vals);
213
};
214
215
}
// namespace Ipopt
216
#endif
Generated on Mon Oct 21 2013 19:08:15 for Ipopt by
1.8.4