Main Page
Namespaces
Classes
Files
File List
File Members
build
buildd
coinor-ipopt-3.10.2
Ipopt
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 Fri Jun 29 2012 06:35:13 by
1.8.1.1