10 #ifndef __IPMA57TSOLVERINTERFACE_HPP__
11 #define __IPMA57TSOLVERINTERFACE_HPP__
15 #ifdef FUNNY_MA57_FINT
41 const std::string& prefix);
73 Index numberOfNegEVals);
213 Index numberOfNegEVals);
FORTRAN_INTEGER_TYPE ipfint
Interface to the symmetric linear solver MA57, derived from SparseSymLinearSolverInterface.
Number ma57_pre_alloc_
Factor for estimating initial size of work arrays.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Index negevals_
Number of negative eigenvalues.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal stuctures.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals)
Call MA57CD to do the backsolve.
Index nonzeros_
Number of nonzeros of the matrix.
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA57BD to factorize the Matrix.
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA57AD and reserve memory for MA57 data.
Ma57TSolverInterface()
Constructor.
void operator=(const Ma57TSolverInterface &)
Overloaded Equals Operator.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
bool initialized_
Flag indicating if internal data is initialized.
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
Ma57TSolverInterface(const Ma57TSolverInterface &)
Copy Constructor.
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed.
Number pivtolmax_
Maximal pivot tolerance.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
Number pivtol_
Pivol tolerance.
double * a_
factor A of matrix
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.
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements (in the same order as airn and ajcn...
virtual ~Ma57TSolverInterface()
Destructor.
Index dim_
Number of rows and columns of the matrix.
This class stores a list of user set options.
Template class for Smart Pointers.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
EMatrixFormat
Enum to specify sparse matrix format.
@ Triplet_Format
Triplet (MA27) format.
ESymSolverStatus
Enum to report outcome of a linear solve.
int Index
Type of all indices of vectors, matrices etc.
double Number
Type of all numbers.