Go to the documentation of this file.
11 #ifndef __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
12 #define __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
37 const std::string& prefix);
58 Index numberOfNegEVals);
180 Index numberOfNegEVals);
Index wsmp_num_threads_
Option that controls the matching strategy.
ESymSolverStatus
Enum to report outcome of a linear solve.
bool have_symbolic_factorization_
Flag indicating whether symbolic factorization and order has already been performed.
Index matrix_file_number_
Counter for matrix file numbers.
Number wsmp_pivtolmax_
Maximal pivot tolerance.
EMatrixFormat
Enum to specify sparse matrix format.
double * a_
Array for storing the values of the matrix.
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed.
void operator=(const IterativeWsmpSolverInterface &)
Overloaded Equals Operator.
ESymSolverStatus SymbolicFactorization(const Index *ia, const Index *ja)
Call Wsmp to do the analysis phase.
double Number
Type of all numbers.
@ CSR_Format_1_Offset
Compressed sparse row format for lower triangular part, with 1 offset.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
virtual ~IterativeWsmpSolverInterface()
Destructor.
int Index
Type of all indices of vectors, matrices etc.
Number wsmp_inexact_fillin_limit_
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Template class for Smart Pointers.
ESymSolverStatus InternalSymFact(const Index *ia, const Index *ja)
Call Wsmp to really do the analysis phase.
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements are to be stored.
FORTRAN_INTEGER_TYPE ipfint
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
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 stuctures.
Index dim_
Number of rows and columns of the matrix.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
ESymSolverStatus Factorization(const Index *ia, const Index *ja, bool check_NegEVals, Index numberOfNegEVals)
Call Wsmp to factorize the Matrix.
IterativeWsmpSolverInterface(const IterativeWsmpSolverInterface &)
Copy Constructor.
bool initialized_
Flag indicating if internal data is initialized.
Index wsmp_scaling_
Indicating which of WSMP's scaling methods should be used.
double * DPARM_
Double precision parameter array for WISMP.
ESymSolverStatus Solve(const Index *ia, const Index *ja, Index nrhs, double *rhs_vals)
Call Wsmpx to do the Solve.
IterativeWsmpSolverInterface()
Constructor.
Index wsmp_write_matrix_iteration_
iteration number in which matrices are to be written out
Interface to the linear solver WISMP, derived from SparseSymLinearSolverInterface.
This class stores a list of user set options.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
ipfint * IPARM_
Integer parameter array for WISMP.
Number wsmp_pivtol_
Pivol tolerance.
Number wsmp_inexact_droptol_
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.