10#ifdef MOOSE_MFEM_ENABLED
17#include "libmesh/ignore_warnings.h"
19#include "libmesh/restore_warnings.h"
32 mfem::QuadratureFunction & qf,
33 UpdatePolicy update_policy,
34 const std::string & name);
38 void SetTime(mfem::real_t t)
override;
41 mfem::real_t
Eval(mfem::ElementTransformation & T,
const mfem::IntegrationPoint & ip)
override;
44 void Project(mfem::QuadratureFunction & qf)
override;
53 mfem::QuadratureFunction &
_qf;
Shared lazy-update state for quadrature function coefficients.
Scalar coefficient holding precomputed values of a source coefficient at the quadrature points of a Q...
mfem::Coefficient & _source
Source coefficient the stored values are projected from.
mfem::real_t Eval(mfem::ElementTransformation &T, const mfem::IntegrationPoint &ip) override
Return the stored value at ip, re-projecting the source first if invalidated.
void Refresh()
Project the source coefficient into the quadrature function if invalidated.
void Project(mfem::QuadratureFunction &qf) override
Copy the stored values into qf, re-projecting the source first if invalidated.
mfem::QuadratureFunction & _qf
Storage for the projected values, shared with the owning MOOSE object.
void SetTime(mfem::real_t t) override
Set the time for the coefficient, invalidating the stored values unless the update policy is NONE.