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.
void SetEssZeroDofs(const Array< int > &dofs)
virtual void SetOperator(const Operator &op)
Set/update the solver for the given operator.
virtual void Mult(const Vector &x, Vector &y) const
Operator application: y=A(x).
BDPMinresSolver(const HypreParMatrix &M, const HypreParMatrix &B, IterSolveParameters param)
Wrapper Block Diagonal Preconditioned MINRES (ex5p)
virtual int GetNumIterations() const
Abstract solver class for Darcy's flow.
virtual int GetNumIterations() const =0
DarcySolver(int size0, int size1)
void SetOptions(IterativeSolver &solver, const IterSolveParameters ¶m)