12#ifndef MFEM_DARCY_SOLVER_HPP
13#define MFEM_DARCY_SOLVER_HPP
27#if defined(MFEM_USE_DOUBLE)
30#elif defined(MFEM_USE_SINGLE)
34#error "Only single and double precision are supported!"
void Copy(Array ©) const
Create a copy of the internal array to the provided copy.
A class to handle Block diagonal preconditioners in a matrix-free implementation.
A class to handle Block systems in a matrix-free implementation.
Wrapper for hypre's ParCSR matrix class.
Abstract base class for iterative solver.
int GetNumIterations() const
Returns the number of iterations taken during the last call to Mult()
Pointer to an Operator of a specified type.
int height
Dimension of the output / number of rows in the matrix.
Wrapper for the block-diagonal-preconditioned MINRES employed in ex5p.cpp.
int GetNumIterations() const override
void SetEssZeroDofs(const Array< int > &dofs)
void SetOperator(const Operator &op) override
Set/update the solver for the given operator.
void Mult(const Vector &x, Vector &y) const override
Operator application: y=A(x).
BDPMinresSolver(const HypreParMatrix &M, const HypreParMatrix &B, IterSolveParameters param)
Wrapper Block Diagonal Preconditioned MINRES (ex5p)
Abstract solver class for Darcy's flow.
virtual int GetNumIterations() const =0
DarcySolver(int size0, int size1)
void SetOptions(IterativeSolver &solver, const IterSolveParameters ¶m)