Go to the documentation of this file.
14 #ifndef __IPMUMPSSOLVERINTERFACE_HPP__
15 #define __IPMUMPSSOLVERINTERFACE_HPP__
40 const std::string& prefix);
69 Index numberOfNegEVals);
118 std::list<Index>& c_deps);
212 Index numberOfNegEVals);
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
ESymSolverStatus
Enum to report outcome of a linear solve.
virtual double * GetValuesArrayPtr()
Method returing an internal array into which the nonzero elements (in the same order as airn and ajcn...
@ Triplet_Format
Triplet (MA27) format.
Index mumps_pivot_order_
Pivot order in MUMPS.
EMatrixFormat
Enum to specify sparse matrix format.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
Index mumps_permuting_scaling_
Permution and scaling method in MUMPS.
ESymSolverStatus Factorization(bool check_NegEVals, Index numberOfNegEVals)
Call MUMPS (job=2) to factorize the Matrix.
bool pivtol_changed_
Flag indicating if the matrix has to be refactorized because the pivot tolerance has been changed.
void * mumps_ptr_
Primary MUMP data structure.
double Number
Type of all numbers.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
Number mumps_dep_tol_
Threshold in MUMPS to stay that a constraint is linearly dependent.
Number pivtolmax_
Maximal pivot tolerance.
Base class for interfaces to symmetric indefinite linear solvers for sparse matrices.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
EMatrixFormat MatrixFormat() const
Query of requested matrix type that the linear solver understands.
int Index
Type of all indices of vectors, matrices etc.
ESymSolverStatus Solve(Index nrhs, double *rhs_vals)
Call MUMPS (job=3) to do the solve.
bool initialized_
Flag indicating if internal data is initialized.
Template class for Smart Pointers.
Number pivtol_
Pivol tolerance.
virtual ~MumpsSolverInterface()
Destructor.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Index negevals_
Number of negative eigenvalues.
Index mumps_scaling_
Scaling in MUMPS.
virtual ESymSolverStatus DetermineDependentRows(const Index *ia, const Index *ja, std::list< Index > &c_deps)
This method determines the list of row indices of the linearly dependent rows.
ESymSolverStatus SymbolicFactorization()
Call MUMPS (job=1) to perform symbolic manipulations, and reserve memory.
bool have_symbolic_factorization_
Flag indicating if symbolic factorization has already been called.
bool refactorize_
Flag that is true if we just requested the values of the matrix again (SYMSOLVER_CALL_AGAIN) and have...
MumpsSolverInterface()
Constructor.
Index mem_percent_
Percent increase in memory.
void operator=(const MumpsSolverInterface &)
Overloaded Equals Operator.
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.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
virtual bool ProvidesDegeneracyDetection() const
Query whether the indices of linearly dependent rows/columns can be determined by this linear solver.
This class stores a list of user set options.
Interface to the linear solver Mumps, derived from SparseSymLinearSolverInterface.
virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn)
Method for initializing internal stuctures.
static int instancecount_mpi
Counter on number of alive Mumps interface objects, if we have called MPI_Initialize.