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
IpWsmpSolverInterface.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2010 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpWsmpSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2005-03-17
8
9
10
#ifndef __IPWSMPSOLVERINTERFACE_HPP__
11
#define __IPWSMPSOLVERINTERFACE_HPP__
12
13
#include "
IpSparseSymLinearSolverInterface.hpp
"
14
15
//#define PARDISO_MATCHING_PREPROCESS
16
17
namespace
Ipopt
18
{
19
24
class
WsmpSolverInterface
:
public
SparseSymLinearSolverInterface
25
{
26
public
:
30
WsmpSolverInterface
();
31
33
virtual
~WsmpSolverInterface
();
35
37
bool
InitializeImpl
(
const
OptionsList
& options,
38
const
std::string& prefix);
39
40
44
virtual
ESymSolverStatus
InitializeStructure
(
Index
dim,
Index
nonzeros,
45
const
Index
*ia,
46
const
Index
*ja);
47
50
virtual
double
*
GetValuesArrayPtr
();
51
53
virtual
ESymSolverStatus
MultiSolve
(
bool
new_matrix,
54
const
Index
* ia,
55
const
Index
* ja,
56
Index
nrhs,
57
double
* rhs_vals,
58
bool
check_NegEVals,
59
Index
numberOfNegEVals);
60
64
virtual
Index
NumberOfNegEVals
()
const
;
66
67
//* @name Options of Linear solver */
69
71
virtual
bool
IncreaseQuality
();
72
76
virtual
bool
ProvidesInertia
()
const
77
{
78
return
true
;
79
}
83
EMatrixFormat
MatrixFormat
()
const
84
{
85
return
CSR_Format_1_Offset
;
86
}
88
91
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
93
96
virtual
bool
ProvidesDegeneracyDetection
()
const
;
97
100
virtual
ESymSolverStatus
DetermineDependentRows
(
const
Index
* ia,
101
const
Index
* ja,
102
std::list<Index>& c_deps);
103
104
private
:
114
WsmpSolverInterface
(
const
WsmpSolverInterface
&);
115
117
void
operator=
(
const
WsmpSolverInterface
&);
119
123
Index
dim_
;
124
126
Index
nonzeros_
;
127
129
double
*
a_
;
130
131
#ifdef PARDISO_MATCHING_PREPROCESS
132
135
ipfint
* ia2;
136
ipfint
* ja2;
137
double
* a2_;
138
ipfint
* perm2;
139
double
* scale2;
141
142
#endif
143
145
149
Index
wsmp_num_threads_
;
151
Number
wsmp_pivtol_
;
153
Number
wsmp_pivtolmax_
;
155
Index
wsmp_scaling_
;
158
Number
wsmp_singularity_threshold_
;
160
Index
wsmp_write_matrix_iteration_
;
163
bool
skip_inertia_check_
;
166
bool
wsmp_no_pivoting_
;
168
170
Index
matrix_file_number_
;
171
175
Index
negevals_
;
177
182
bool
initialized_
;
185
bool
printed_num_threads_
;
189
bool
pivtol_changed_
;
192
bool
have_symbolic_factorization_
;
195
Index
factorizations_since_recomputed_ordering_
;
197
201
ipfint
*
IPARM_
;
203
double
*
DPARM_
;
205
ipfint
*
PERM_
;
207
ipfint
*
INVP_
;
209
ipfint
*
MRP_
;
211
216
ESymSolverStatus
SymbolicFactorization
(
const
Index
* ia,
const
Index
* ja);
217
219
ESymSolverStatus
InternalSymFact
(
const
Index
* ia,
const
Index
* ja,
220
Index
numberOfNegEVals);
221
224
ESymSolverStatus
Factorization
(
const
Index
* ia,
225
const
Index
* ja,
226
bool
check_NegEVals,
227
Index
numberOfNegEVals);
228
231
ESymSolverStatus
Solve
(
const
Index
* ia,
232
const
Index
* ja,
233
Index
nrhs,
234
double
*rhs_vals);
236
};
237
238
}
// namespace Ipopt
239
#endif
Generated on Mon Oct 21 2013 19:08:15 for Ipopt by
1.8.4