12 #include "../general/forall.hpp"
26 if (mesh->
GetNE() == 0) {
return; }
33 MFEM_VERIFY(!VQ && !MQ,
34 "Only scalar coefficient supported for DiffusionIntegrator"
48 MFEM_ABORT(
"Error: VectorDiffusionIntegrator::AssembleMF only implemented"
52 void VectorDiffusionIntegrator::AddMultMF(
const Vector &x,
Vector &y)
const
56 ceedOp->AddMult(x, y);
60 MFEM_ABORT(
"Error: VectorDiffusionIntegrator::AddMultMF only implemented"
65 void VectorDiffusionIntegrator::AssembleDiagonalMF(
Vector &diag)
69 ceedOp->GetDiagonal(diag);
73 MFEM_ABORT(
"Error: VectorDiffusionIntegrator::AssembleDiagonalMF only"
74 " implemented with libCEED");
Abstract class for all finite elements.
Class for an integration rule - an Array of IntegrationPoint.
bool IsVariableOrder() const
Returns true if the space contains elements of varying polynomial orders.
int GetNumGeometries(int dim) const
Return the number of geometries of the given dimension present in the mesh.
int GetNE() const
Returns number of elements.
Represent a DiffusionIntegrator with AssemblyLevel::None using libCEED.
Mesh * GetMesh() const
Returns the mesh.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
bool DeviceCanUseCeed()
Function that determines if a CEED kernel should be used, based on the current mfem::Device configura...
const IntegrationRule & GetRule(const Integrator &integ, const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
virtual const FiniteElement * GetFE(int i) const
Returns pointer to the FiniteElement in the FiniteElementCollection associated with i'th element in t...