20 #ifndef GEOS_LINEARALGEBRA_INTERFACES_HYPREPRECONDITIONER_HPP_
21 #define GEOS_LINEARALGEBRA_INTERFACES_HYPREPRECONDITIONER_HPP_
23 #include "common/PreconditionerBase.hpp"
33 struct HyprePrecWrapper;
39 struct HypreNullSpace;
104 void create(
DofManager const *
const dofManager );
120 std::unique_ptr< HyprePrecWrapper > m_precond;
123 std::unique_ptr< HypreMGRData > m_mgrData;
126 std::unique_ptr< HypreNullSpace > m_nullSpace;
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns,...
Wrapper class for hypre's ParCSRMatrix.
Wrapper around hypre-based preconditioners.
virtual ~HyprePreconditioner() override
Destructor.
virtual void clear() override
Clean up the preconditioner setup.
HyprePrecWrapper const & unwrapped() const
Access the underlying implementation.
HyprePreconditioner(LinearSolverParameters params)
Constructor.
HyprePreconditioner(LinearSolverParameters params, arrayView1d< HypreVector > const &nearNullKernel)
Constructor.
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
virtual void setup(Matrix const &mat) override
Compute the preconditioner from a matrix.
LAI::ParallelVector Vector
Alias for template parameter.
Common interface for preconditioning operators.
virtual void setup(Matrix const &mat)
Compute the preconditioner from a matrix.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Container for hypre preconditioner function pointers.
Set of parameters for a linear solver or preconditioner.