Go to the documentation of this file.
9 #ifndef __IPMA27TSOLVERINTERFACE_HPP__
10 #define __IPMA27TSOLVERINTERFACE_HPP__
33 const std::string& prefix);
63 Index numberOfNegEVals);
224 Index numberOfNegEVals);
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
double cntl_[5]
real control values
ESymSolverStatus
Enum to report outcome of a linear solve.
bool liw_increase_
flag indicating that liw should be increased before next factorization
@ Triplet_Format
Triplet (MA27) format.
bool initialized_
Flag indicating if internal data is initialized.
Number liw_init_factor_
Factor for estimating initial value of liw.
EMatrixFormat
Enum to specify sparse matrix format.
ipfint icntl_[30]
integer control values
ipfint nsteps_
MA27's NSTEPS.
double Number
Type of all numbers.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals)
Call MA27CD to do the backsolve.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal stuctures.
virtual ~Ma27TSolverInterface()
Destructor.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
Index nonzeros_
Number of nonzeros of the matrix.
void operator=(const Ma27TSolverInterface &)
Overloaded Equals Operator.
double * a_
factor A of matrix
ESymSolverStatus SymbolicFactorization(const Index *airn, const Index *ajcn)
Call MA27AD and reserve memory for MA27 data.
int Index
Type of all indices of vectors, matrices etc.
Number meminc_factor_
Factor for increaseing memory.
Template class for Smart Pointers.
FORTRAN_INTEGER_TYPE ipfint
ipfint maxfrt_
MA27's MAXFRT.
bool skip_inertia_check_
Flag indicating if the interia is always assumed to be correct.
ipfint liw_
length of integer work space
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
Interface to the symmetric linear solver MA27, derived from SparseSymLinearSolverInterface.
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.
Number pivtolmax_
Maximal pivot tolerance.
bool la_increase_
flag indicating that la should be increased before next factorization
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
ipfint * iw_
integer work space
bool ignore_singularity_
Flag indicating if MA27 should continue if a singular matrix is detected, but right hands sides are s...
Index negevals_
Number of negative eigenvalues.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
Number la_init_factor_
Factor for estimating initial value of la.
Index dim_
Number of rows and columns of the matrix.
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements (in the same order as airn and ajcn...
ipfint * ikeep_
MA27's IKEEP.
Number pivtol_
Pivol tolerance.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
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.
Ma27TSolverInterface()
Constructor.
ESymSolverStatus Factorization(const Index *airn, const Index *ajcn, bool check_NegEVals, Index numberOfNegEVals)
Call MA27BD to factorize the Matrix.