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.