Go to the documentation of this file.
8 #ifndef __IPMA57TSOLVERINTERFACE_HPP__
9 #define __IPMA57TSOLVERINTERFACE_HPP__
13 #ifdef FUNNY_MA57_FINT
39 const std::string& prefix
60 Index numberOfNegEVals
199 Index numberOfNegEVals
ESymSolverStatus
Enum to report outcome of a linear solve.
Index negevals_
Number of negative eigenvalues.
@ Triplet_Format
Triplet (MA27) format.
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA57AD and reserve memory for MA57 data.
EMatrixFormat
Enum to specify sparse matrix format.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
double * a_
factor A of matrix
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
double Number
Type of all numbers.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA57BD to factorize the Matrix.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal structures.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
Number pivtol_
Pivot tolerance.
Index nonzeros_
Number of nonzeros of the matrix.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
int Index
Type of all indices of vectors, matrices etc.
virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index *airn, const Index *ajcn, Index nrhs, double *rhs_vals, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
Index dim_
Number of rows and columns of the matrix.
Template class for Smart Pointers.
FORTRAN_INTEGER_TYPE ipfint
bool initialized_
Flag indicating if internal data is initialized.
void operator=(const Ma57TSolverInterface &)
Default Assignment Operator.
Number pivtolmax_
Maximal pivot tolerance.
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
virtual ~Ma57TSolverInterface()
Destructor.
virtual double * GetValuesArrayPtr()
Method returning an internal array into which the nonzero elements (in the same order as ja) will be ...
Ma57TSolverInterface(const Ma57TSolverInterface &)
Copy Constructor.
Ma57TSolverInterface()
Constructor.
ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals)
Call MA57CD to do the backsolve.
Number ma57_pre_alloc_
Factor for estimating initial size of work arrays.
Interface to the symmetric linear solver MA57, derived from SparseSymLinearSolverInterface.
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed.
This class stores a list of user set options.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.