19 #ifndef GEOSX_HYPREPRECONDITIONER_HPP 20 #define GEOSX_HYPREPRECONDITIONER_HPP 22 #include "linearAlgebra/solvers/PreconditionerBase.hpp" 37 extern "C" struct hypre_Solver_struct;
48 struct HyprePrecAuxData;
51 struct HyprePrecFuncs;
78 DofManager const *
const dofManager =
nullptr );
88 DofManager const *
const dofManager =
nullptr );
115 virtual void clear()
override;
133 void createHyprePreconditioner(
DofManager const *
const dofManager );
137 void createMGR(
DofManager const *
const dofManager );
153 std::unique_ptr< HyprePrecFuncs > m_functions;
156 std::unique_ptr< HyprePrecAuxData > m_auxData;
170 #endif //GEOSX_HYPREPRECONDITIONER_HPP virtual void clear() override
Clean up the preconditioner setup.
typename Base::Vector Vector
Alias for vector type.
Common interface for preconditioning operators.
virtual void compute(Matrix const &mat)
Compute the preconditioner from a matrix.
virtual ~HyprePreconditioner() override
Destructor.
Set of parameters for a linear solver or preconditioner.
void create()
Create the preconditioner from the input parameters.
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns, and generally simplifying the interaction between PhysicsSolvers and linear algebra operations.
Container for hypre preconditioner function pointers.
HyprePrecFuncs const & unwrappedFuncs() const
Access the underlying implementation.
HYPRE_Solver const & unwrapped() const
Access the underlying implementation.
typename Base::Matrix Matrix
Alias for matrix type.
typename HypreInterface ::ParallelMatrix Matrix
Alias for matrix type.
virtual void compute(Matrix const &mat) override
Compute the preconditioner from a matrix.
Wrapper around hypre-based preconditioners.
hypre_Solver_struct * HYPRE_Solver
Solver pointer alias.
HyprePreconditioner(LinearSolverParameters params, DofManager const *const dofManager=nullptr)
Constructor.
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
typename Base::Vector Vector
Alias for vector type.
This class provides a fixed dimensional resizeable array interface in addition to an interface simila...