Shared lazy-update state for quadrature function coefficients. More...
#include <MFEMQuadratureFunctionCoefficientBase.h>
Public Member Functions | |
| CreateMooseEnumClass (UpdatePolicy, NONE, TIME, NONLINEAR) | |
| Policy controlling when the stored values are re-projected from the source coefficient. More... | |
| MFEMQuadratureFunctionCoefficientBase (UpdatePolicy update_policy, const std::string &name) | |
| virtual | ~MFEMQuadratureFunctionCoefficientBase ()=default |
| void | MarkSolutionChanged () |
| Mark the stored values as stale following a change of solution variables, forcing the source to be re-projected on next use. More... | |
Protected Member Functions | |
| void | MarkTimeChanged () |
| Mark the stored values as stale following a change of time. More... | |
| void | CheckIntegrationRule (const mfem::QuadratureFunction &qf, mfem::ElementTransformation &T, const mfem::IntegrationPoint &ip) const |
| Verify that the integration point ip supplied by a consuming integrator belongs to the same quadrature rule the values in qf are stored on. More... | |
Protected Attributes | |
| const UpdatePolicy | _update_policy |
| When the stored values are re-projected from the source coefficient. More... | |
| const std::string | _name |
| Name of the owning MOOSE object, used in error messages. More... | |
| bool | _dirty |
| Whether the stored values are stale and must be re-projected before use. More... | |
Shared lazy-update state for quadrature function coefficients.
Holds the update policy and a dirty flag marking whether the stored quadrature point values are stale and must be re-projected from the source coefficient before use. Provides a common polymorphic type so that scalar and vector quadrature function coefficients can be invalidated uniformly.
Definition at line 30 of file MFEMQuadratureFunctionCoefficientBase.h.
|
inline |
Definition at line 42 of file MFEMQuadratureFunctionCoefficientBase.h.
|
virtualdefault |
|
protected |
Verify that the integration point ip supplied by a consuming integrator belongs to the same quadrature rule the values in qf are stored on.
Errors, naming the quadrature order the coefficient should use, if the rules do not match. The stored values are indexed by quadrature point, so a mismatched rule would silently read values from the wrong points.
Definition at line 37 of file MFEMQuadratureFunctionCoefficientBase.C.
Referenced by MFEMScalarQuadratureFunctionCoefficient::Eval(), and MFEMVectorQuadratureFunctionCoefficient::Eval().
| MFEMQuadratureFunctionCoefficientBase::CreateMooseEnumClass | ( | UpdatePolicy | , |
| NONE | , | ||
| TIME | , | ||
| NONLINEAR | |||
| ) |
Policy controlling when the stored values are re-projected from the source coefficient.
NONE - the source never changes after initialization; project exactly once. TIME - the source changes with time only; re-project when the time is set. NONLINEAR - the source may additionally depend on solution variables; also re-project whenever trial variables are updated (i.e. on each nonlinear iteration).
|
inline |
Mark the stored values as stale following a change of solution variables, forcing the source to be re-projected on next use.
Definition at line 51 of file MFEMQuadratureFunctionCoefficientBase.h.
|
inlineprotected |
Mark the stored values as stale following a change of time.
Definition at line 59 of file MFEMQuadratureFunctionCoefficientBase.h.
Referenced by MFEMScalarQuadratureFunctionCoefficient::SetTime(), and MFEMVectorQuadratureFunctionCoefficient::SetTime().
|
protected |
Whether the stored values are stale and must be re-projected before use.
Definition at line 78 of file MFEMQuadratureFunctionCoefficientBase.h.
Referenced by MFEMScalarQuadratureFunctionCoefficient::Eval(), MFEMVectorQuadratureFunctionCoefficient::Eval(), MarkSolutionChanged(), MarkTimeChanged(), MFEMScalarQuadratureFunctionCoefficient::Project(), MFEMVectorQuadratureFunctionCoefficient::Project(), MFEMScalarQuadratureFunctionCoefficient::Refresh(), and MFEMVectorQuadratureFunctionCoefficient::Refresh().
|
protected |
Name of the owning MOOSE object, used in error messages.
Definition at line 76 of file MFEMQuadratureFunctionCoefficientBase.h.
Referenced by CheckIntegrationRule().
|
protected |
When the stored values are re-projected from the source coefficient.
Definition at line 74 of file MFEMQuadratureFunctionCoefficientBase.h.
Referenced by MarkSolutionChanged(), and MarkTimeChanged().
1.8.14