Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpIterativeWsmpSolverInterface.hpp
Go to the documentation of this file.
1// Copyright (C) 2009 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Andreas Waechter IBM 2009-09-18
6// based on IpWsmpSolverInterface.hpp (rev 1483)
7
8#ifndef __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
9#define __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
10
12
13namespace Ipopt
14{
15
20{
21public:
24
26
30
32 const OptionsList& options,
33 const std::string& prefix
34 );
35
39 Index dim,
40 Index nonzeros,
41 const Index* ia,
42 const Index* ja
43 );
44
45 virtual double* GetValuesArrayPtr();
46
48 bool new_matrix,
49 const Index* ia,
50 const Index* ja,
51 Index nrhs,
52 double* rhs_vals,
53 bool check_NegEVals,
54 Index numberOfNegEVals
55 );
56
57 virtual Index NumberOfNegEVals() const;
59
60 //* @name Options of Linear solver */
62 virtual bool IncreaseQuality();
63
64 virtual bool ProvidesInertia() const
65 {
66 return false;
67 }
68
70 {
72 }
74
75 static void RegisterOptions(
77 );
78
79private:
89
92 );
93
97 );
99
102
104
106 double* a_;
108
111
124
127
130#if 0
132 Index negevals_;
133#endif
135
138
151
154
157 double* DPARM_;
159
162
165 const Index* ia,
166 const Index* ja
167 );
168
171 const Index* ia,
172 const Index* ja
173 );
174
177 const Index* ia,
178 const Index* ja,
179 bool check_NegEVals,
180 Index numberOfNegEVals
181 );
182
185 const Index* ia,
186 const Index* ja,
187 Index nrhs,
188 double* rhs_vals
189 );
191};
192
193} // namespace Ipopt
194#endif
IPOPT_FORTRAN_INTEGER_TYPE ipfint
Definition: IpTypes.hpp:24
Interface to the linear solver WISMP, derived from SparseSymLinearSolverInterface.
double * a_
Array for storing the values of the matrix.
ESymSolverStatus SymbolicFactorization(const Index *ia, const Index *ja)
Call Wsmp to do the analysis phase.
ESymSolverStatus InternalSymFact(const Index *ia, const Index *ja)
Call Wsmp to really do the analysis phase.
virtual ~IterativeWsmpSolverInterface()
Destructor.
bool initialized_
Flag indicating if internal data is initialized.
virtual double * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
Index matrix_file_number_
Counter for matrix file numbers.
ESymSolverStatus Solve(const Index *ia, const Index *ja, Index nrhs, double *rhs_vals)
Call Wsmpx to do the Solve.
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed.
Index wsmp_write_matrix_iteration_
iteration number in which matrices are to be written out
IterativeWsmpSolverInterface(const IterativeWsmpSolverInterface &)
Copy Constructor.
bool have_symbolic_factorization_
Flag indicating whether symbolic factorization and order has already been performed.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Index wsmp_num_threads_
Option that controls the matching strategy.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Index wsmp_scaling_
Indicating which of WSMP's scaling methods should be used.
ipfint * IPARM_
Integer parameter array for WISMP.
double * DPARM_
Double precision parameter array for WISMP.
virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index *ia, const Index *ja, Index nrhs, double *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja)
Method for initializing internal structures.
ESymSolverStatus Factorization(const Index *ia, const Index *ja, bool check_NegEVals, Index numberOfNegEVals)
Call Wsmp to factorize the Matrix.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
void operator=(const IterativeWsmpSolverInterface &)
Default Assignment Operator.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Index dim_
Number of rows and columns of the matrix.
This class stores a list of user set options.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
EMatrixFormat
Enum to specify sparse matrix format.
@ CSR_Format_1_Offset
Compressed sparse row format for lower triangular part, with 1 offset.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ESymSolverStatus
Enum to report outcome of a linear solve.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
double Number
Type of all numbers.
Definition: IpTypes.hpp:15