29 MFEM_VERIFY(!
VQ && !
MQ,
30 "Only scalar coefficient supported for DiffusionIntegrator"
44 MFEM_ABORT(
"Error: DiffusionIntegrator::AssembleMF only implemented with"
56 MFEM_ABORT(
"Error: DiffusionIntegrator::AssembleDiagonalMF only"
57 " implemented with libCEED");
69 MFEM_ABORT(
"Error: DiffusionIntegrator::AddMultMF only implemented with"
static const IntegrationRule & GetRule(const FiniteElement &trial_fe, const FiniteElement &test_fe)
void AddMultMF(const Vector &, Vector &) const override
void AssembleMF(const FiniteElementSpace &fes) override
Method defining matrix-free assembly.
void AssembleDiagonalMF(Vector &diag) override
Assemble diagonal and add it to Vector diag.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
bool IsVariableOrder() const
Returns true if the space contains elements of varying polynomial orders.
Mesh * GetMesh() const
Returns the mesh.
const FiniteElement * GetTypicalFE() const
Return GetFE(0) if the local mesh is not empty; otherwise return a typical FE based on the Geometry t...
Abstract class for all finite elements.
Class for an integration rule - an Array of IntegrationPoint.
const IntegrationRule * IntRule
int Dimension() const
Dimension of the reference space used within the elements.
int GetNumGeometries(int dim) const
Return the number of geometries of the given dimension present in the mesh.
Represent a DiffusionIntegrator with AssemblyLevel::None using libCEED.
void GetDiagonal(mfem::Vector &diag) const
void AddMult(const mfem::Vector &x, mfem::Vector &y, const real_t a=1.0) const override
Operator application: y+=A(x) (default) or y+=a*A(x).
bool DeviceCanUseCeed()
Function that determines if a CEED kernel should be used, based on the current mfem::Device configura...