12 #include "../general/forall.hpp"
15 #include "libceed/mass.hpp"
28 if (mesh->
GetNE() == 0) {
return; }
32 if (DeviceCanUseCeed())
35 ceedDataPtr =
new CeedData;
36 InitCeedCoeff(Q, *mesh, *ir, ceedDataPtr);
37 return CeedMFMassAssemble(fes, *ir, *ceedDataPtr);
40 mfem_error(
"Error: MassIntegrator::AssembleMF only implemented with libCEED");
46 if (DeviceCanUseCeed())
48 CeedAddMult(ceedDataPtr, x, y);
53 mfem_error(
"Error: MassIntegrator::AddMultMF only implemented with libCEED");
57 void MassIntegrator::AssembleDiagonalMF(
Vector &diag)
60 if (DeviceCanUseCeed())
62 CeedAssembleDiagonal(ceedDataPtr, diag);
67 mfem_error(
"Error: MassIntegrator::AssembleDiagonalMF only 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.
void mfem_error(const char *msg)
Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void GetElementTransformation(int i, IsoparametricTransformation *ElTr)
const FiniteElement * GetFE(int i) const
Returns pointer to the FiniteElement in the FiniteElementCollection associated with i'th element in t...