Go to the documentation of this file.
9 #ifndef __IPTSYMLINEARSOLVER_HPP__
10 #define __IPTSYMLINEARSOLVER_HPP__
51 const std::string& prefix);
62 Index numberOfNegEVals);
101 std::list<Index>& c_deps);
ESymSolverStatus
Enum to report outcome of a linear solve.
virtual bool ProvidesInertia() const
Query whether inertia is computed by linear solver.
TSymLinearSolver(SmartPtr< SparseSymLinearSolverInterface > solver_interface, SmartPtr< TSymScalingMethod > scaling_method)
Constructor.
EMatrixFormat
Enum to specify sparse matrix format.
TSymLinearSolver()
Default Constructor.
bool linear_scaling_on_demand_
Flag indicating whether the scaling objected is to be switched on when increased quality is requested...
double Number
Type of all numbers.
Index nonzeros_triplet_
Number of nonzeros of the matrix in triplet format.
bool just_switched_on_scaling_
Flag indicating whether we just switched on the scaling.
bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Index nonzeros_compressed_
Number of nonzeros in compressed format.
void operator=(const TSymLinearSolver &)
Overloaded Equals Operator.
SparseSymLinearSolverInterface::EMatrixFormat matrix_format_
Flag indicating what matrix data format the solver requires.
ESymSolverStatus InitializeStructure(const SymMatrix &symT_A)
Initialize nonzero structure.
virtual ~TSymLinearSolver()
Destructor.
virtual ESymSolverStatus MultiSolve(const SymMatrix &A, std::vector< SmartPtr< const Vector > > &rhsV, std::vector< SmartPtr< Vector > > &solV, bool check_NegEVals, Index numberOfNegEVals)
Solve operation for multiple right hand sides.
int Index
Type of all indices of vectors, matrices etc.
SmartPtr< TSymScalingMethod > scaling_method_
Strategy Object for a method that computes scaling factors for the matrices.
Index * airn_
row indices of matrix in triplet (MA27) format.
Base class for all derived symmetric linear solvers.
Template class for Smart Pointers.
virtual bool IncreaseQuality()
Request to increase quality of solution for next solve.
Index * ajcn_
column indices of matrix in triplet (MA27) format.
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
TSymLinearSolver(const TSymLinearSolver &)
Copy Constructor.
virtual Index NumberOfNegEVals() const
Number of negative eigenvalues detected during last factorization.
General driver for linear solvers for sparse indefinite symmetric matrices.
TaggedObject::Tag atag_
Tag for the incoming matrix.
This is the base class for all derived symmetric matrix types.
SmartPtr< SparseSymLinearSolverInterface > solver_interface_
Strategy Object for an interface to a linear solver.
bool initialized_
Flag indicating if the InitializeStructure method has been called for the linear solver.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
unsigned int Tag
Type for the Tag values.
double * scaling_factors_
Array storing the scaling factors.
bool have_structure_
Flag indicating if the internal structures are initialized.
SmartPtr< TripletToCSRConverter > triplet_to_csr_converter_
Pointer to object for conversion from triplet to compressed format.
Index dim_
Number of rows and columns of the matrix.
This class stores a list of user set options.
ESymSolverStatus DetermineDependentRows(Index n_rows, Index n_cols, Index n_jac_nz, Number *jac_c_vals, Index *jac_c_iRow, Index *jac_c_jCol, std::list< Index > &c_deps)
Given the entries of a matrix in Triplet format, this method determines the list of row indices of th...
bool ProvidesDegeneracyDetection() const
Returns true if the underlying linear solver can detect the linearly dependent rows in a matrix.
void GiveMatrixToSolver(bool new_matrix, const SymMatrix &sym_A)
Copy the elements of the matrix in the required format into the array that is provided by the solver ...
bool use_scaling_
Flag indicating whether scaling should be performed.