12 #include "../general/forall.hpp"
15 #include "ceed/mass.hpp"
29 if (mesh->
GetNE() == 0) {
return; }
33 = IntRule ? IntRule : &MassIntegrator::GetRule(el, el, *T);
34 if (DeviceCanUseCeed())
37 ceedOp =
new ceed::MFMassIntegrator(fes, *ir, Q);
40 MFEM_ABORT(
"Error: VectorMassIntegrator::AssembleMF only implemented with"
44 void VectorMassIntegrator::AddMultMF(
const Vector &x,
Vector &y)
const
46 if (DeviceCanUseCeed())
48 ceedOp->AddMult(x, y);
52 MFEM_ABORT(
"Error: VectorMassIntegrator::AddMultMF only implemented with"
57 void VectorMassIntegrator::AssembleDiagonalMF(
Vector &diag)
59 if (DeviceCanUseCeed())
61 ceedOp->GetDiagonal(diag);
65 MFEM_ABORT(
"Error: VectorMassIntegrator::AssembleDiagonalMF only"
66 " implemented with libCEED");
Abstract class for all finite elements.
Class for an integration rule - an Array of IntegrationPoint.
int GetNE() const
Returns number of elements.
Mesh * GetMesh() const
Returns the mesh.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void GetElementTransformation(int i, IsoparametricTransformation *ElTr)
virtual const FiniteElement * GetFE(int i) const
Returns pointer to the FiniteElement in the FiniteElementCollection associated with i'th element in t...