20 #ifndef GEOS_LINEARALGEBRA_INTERFACES_SUITESPARSE_HPP_ 
   21 #define GEOS_LINEARALGEBRA_INTERFACES_SUITESPARSE_HPP_ 
   25 #include "common/PreconditionerBase.hpp" 
   35 struct SuiteSparseData;
 
   41 template< 
typename LAI >
 
  116   void doSolve( 
Vector const & b, 
Vector & x, 
bool transpose ) 
const;
 
  122   real64 estimateConditionNumberBasic() 
const;
 
  128   real64 estimateConditionNumberAdvanced() 
const;
 
  131   std::unique_ptr< SuiteSparseData > m_data;
 
  137   std::unique_ptr< typename Matrix::Export > m_export;
 
Simple interface for linear solvers that allows to extract solution results.
typename Base::Vector Vector
Alias for vector type.
LinearSolverResult m_result
Result of most recent solve (status, timings)
LinearSolverParameters m_params
Parameters for the solver.
typename Base::Matrix Matrix
Alias for matrix type.
Common interface for preconditioning operators.
bool ready() const
Chech if preconditioner is ready to use.
Matrix const  & matrix() const
Access the matrix the preconditioner was computed from.
typename Base::Vector Vector
Alias for vector type.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
Wrapper for UMFPACK direct solver from SuiteSparse package.
virtual void setup(Matrix const &mat) override
Compute the preconditioner from a matrix.
virtual void clear() override
Clean up the preconditioner setup.
virtual void solve(Vector const &rhs, Vector &sol) const override
Solve the system with a particular rhs.
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector, dst = this(src).
virtual ~SuiteSparse() override
Destructor.
SuiteSparse(LinearSolverParameters params)
Constructor with parameters.
void applyTranspose(Vector const &src, Vector &dst) const
Apply transpose operator to a vector, dst = this^T(src).
double real64
64-bit floating point type.
Set of parameters for a linear solver or preconditioner.