20 #ifndef GEOS_LINEARALGEBRA_INTERFACES_SUPERLU_DIST_HPP_ 
   21 #define GEOS_LINEARALGEBRA_INTERFACES_SUPERLU_DIST_HPP_ 
   25 #include "common/PreconditionerBase.hpp" 
   35 struct SuperLUDistData;
 
   41 template< 
typename LAI >
 
  115   real64 estimateConditionNumberBasic() 
const;
 
  121   real64 estimateConditionNumberAdvanced() 
const;
 
  124   std::unique_ptr< SuperLUDistData > m_data;
 
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.
Wrapper for SuperLU_Dist parallel direct solver.
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector, dst = this(src).
virtual void setup(Matrix const &mat) override
Compute the preconditioner from a matrix.
virtual void clear() override
Clean up the preconditioner setup.
virtual ~SuperLUDist() override
Destructor.
virtual void solve(Vector const &rhs, Vector &sol) const override
Solve the system with a particular rhs.
SuperLUDist(LinearSolverParameters params)
Constructor with parameters.
double real64
64-bit floating point type.
Set of parameters for a linear solver or preconditioner.