12 #ifndef __IPSPRALSOLVERINTERFACE_HPP__ 13 #define __IPSPRALSOLVERINTERFACE_HPP__ 19 #include "spral_ssids.h" 91 const std::string& prefix
115 Index numberOfNegEVals
159 const std::string& name
164 const std::string& name
Interface to the linear solver SPRAL.
ESymSolverStatus
Enum to report outcome of a linear solve.
double * scaling_
Store scaling for reuse if doing dynamic scaling.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
int fctidx_
Current factorization number to dump to.
void * akeep_
Stores pointer to factors.
bool IncreaseQuality()
Request to increase quality of solution for next solve.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
ipindex Index
Type of all indices of vectors, matrices etc.
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...
Template class for Smart Pointers.
This class stores a list of user set options.
bool ProvidesDegeneracyDetection() const
Query whether the indices of linearly dependent rows/columns can be determined by this linear solver...
void * fkeep_
Stores pointer to factors.
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.
int ndim_
Number of dimensions.
bool pivtol_changed_
indicates if pivtol has been changed
ESymSolverStatus DetermineDependentRows(const Index *, const Index *, std::list< Index > &)
This method determines the list of row indices of the linearly dependent rows.
double * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class...
ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja)
Method for initializing internal structures.
int numneg_
Number of negative pivots in last factorization.
Unrecoverable error in linear solver occurred.
struct spral_ssids_options control_
EMatrixFormat
Enum to specify sparse matrix format.
static int PivotMethodNameToNum(const std::string &name)
converts a pivot method option name to its spral option number
static int ScaleNameToNum(const std::string &name)
converts a scaling option name to its spral option number
enum scaling_opts switch_[3]
bool rescale_
Indicates if we should rescale next factorization.
static std::string GetName()
give name of MUMPS with version info
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
int numdelay_
Number of delayed pivots last time we scaled.
double * val_
Storage for variables.
Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.