Class template for creating constant functors. More...
#include <MooseFunctor.h>
Public Types | |
using | FunctorType = FunctorBase< T > |
using | ValueType = T |
using | GradientType = typename FunctorReturnType< T, FunctorEvaluationKind::Gradient >::type |
This rigmarole makes it so that a user can create functors that return containers (std::vector, std::array). More... | |
using | DotType = ValueType |
Public Member Functions | |
ConstantFunctor (const ValueType &value) | |
ConstantFunctor (ValueType &&value) | |
virtual bool | isConstant () const override |
Returns true if this functor is a constant. More... | |
bool | hasBlocks (SubdomainID) const override |
Returns whether the functor is defined on this block. More... | |
bool | supportsFaceArg () const override final |
Whether this functor supports evaluation with FaceArg. More... | |
bool | supportsElemSideQpArg () const override final |
Whether this functor supports evaluation with ElemSideQpArg. More... | |
template<FunctorEvaluationKind FET, typename Space , typename State > | |
FunctorReturnType< T, FET >::type | genericEvaluate (const Space &r, const State &state) const |
Perform a generic evaluation based on the supplied template argument FET and supplied spatial and temporal arguments. More... | |
const MooseFunctorName & | functorName () const |
Return the functor name. More... | |
virtual void | residualSetup () override |
virtual void | jacobianSetup () override |
virtual void | timestepSetup () override |
virtual void | customSetup (const ExecFlagType &exec_type) override |
void | setCacheClearanceSchedule (const std::set< ExecFlagType > &clearance_schedule) |
Set how often to clear the functor evaluation cache. More... | |
virtual bool | isExtrapolatedBoundaryFace (const FaceInfo &, const Elem *, const StateArg &) const |
Returns whether this (sided) face is an extrapolated boundary face for this functor. More... | |
bool | isInternalFace (const FaceInfo &) const |
Returns true if the face is an internal face. More... | |
virtual bool | hasFaceSide (const FaceInfo &fi, const bool fi_elem_side) const override |
void | checkFace (const Moose::FaceArg &face) const |
Examines the incoming face argument. More... | |
ValueType | operator() (const ElemArg &elem, const StateArg &state) const |
Same as their evaluate overloads with the same arguments but allows for caching implementation. More... | |
ValueType | operator() (const FaceArg &face, const StateArg &state) const |
ValueType | operator() (const ElemQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemSideQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemPointArg &elem_point, const StateArg &state) const |
ValueType | operator() (const NodeArg &node, const StateArg &state) const |
GradientType | gradient (const ElemArg &elem, const StateArg &state) const |
Same as their evaluateGradient overloads with the same arguments but allows for caching implementation. More... | |
GradientType | gradient (const FaceArg &face, const StateArg &state) const |
GradientType | gradient (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradient (const NodeArg &node, const StateArg &state) const |
DotType | dot (const ElemArg &elem, const StateArg &state) const |
Same as their evaluateDot overloads with the same arguments but allows for caching implementation. More... | |
DotType | dot (const FaceArg &face, const StateArg &state) const |
DotType | dot (const ElemQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemSideQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemPointArg &elem_point, const StateArg &state) const |
DotType | dot (const NodeArg &node, const StateArg &state) const |
GradientType | gradDot (const ElemArg &elem, const StateArg &state) const |
Same as their evaluateGradDot overloads with the same arguments but allows for caching implementation. More... | |
GradientType | gradDot (const FaceArg &face, const StateArg &state) const |
GradientType | gradDot (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradDot (const NodeArg &node, const StateArg &state) const |
Private Member Functions | |
ValueType | evaluate (const ElemArg &, const StateArg &) const override |
Evaluate the functor with a given element. More... | |
ValueType | evaluate (const FaceArg &, const StateArg &) const override |
ValueType | evaluate (const ElemQpArg &, const StateArg &) const override |
ValueType | evaluate (const ElemSideQpArg &, const StateArg &) const override |
ValueType | evaluate (const ElemPointArg &, const StateArg &) const override |
Evaluate the functor with a given element and point. More... | |
ValueType | evaluate (const NodeArg &, const StateArg &) const override |
GradientType | evaluateGradient (const ElemArg &, const StateArg &) const override |
Evaluate the functor gradient with a given element. More... | |
GradientType | evaluateGradient (const FaceArg &, const StateArg &) const override |
GradientType | evaluateGradient (const ElemQpArg &, const StateArg &) const override |
GradientType | evaluateGradient (const ElemSideQpArg &, const StateArg &) const override |
GradientType | evaluateGradient (const ElemPointArg &, const StateArg &) const override |
Evaluate the functor gradient with a given element and point. More... | |
GradientType | evaluateGradient (const NodeArg &, const StateArg &) const override |
DotType | evaluateDot (const ElemArg &, const StateArg &) const override |
Evaluate the functor time derivative with a given element. More... | |
DotType | evaluateDot (const FaceArg &, const StateArg &) const override |
DotType | evaluateDot (const ElemQpArg &, const StateArg &) const override |
DotType | evaluateDot (const ElemSideQpArg &, const StateArg &) const override |
DotType | evaluateDot (const ElemPointArg &, const StateArg &) const override |
Evaluate the functor time derivative with a given element and point. More... | |
DotType | evaluateDot (const NodeArg &, const StateArg &) const override |
GradientType | evaluateGradDot (const ElemArg &, const StateArg &) const override |
Evaluate the functor gradient-dot with a given element. More... | |
GradientType | evaluateGradDot (const FaceArg &, const StateArg &) const override |
GradientType | evaluateGradDot (const ElemQpArg &, const StateArg &) const override |
GradientType | evaluateGradDot (const ElemSideQpArg &, const StateArg &) const override |
GradientType | evaluateGradDot (const ElemPointArg &, const StateArg &) const override |
Evaluate the functor gradient-dot with a given element and point. More... | |
GradientType | evaluateGradDot (const NodeArg &, const StateArg &) const override |
Private Attributes | |
ValueType | _value |
Class template for creating constant functors.
Definition at line 1267 of file MooseFunctor.h.
|
inherited |
Definition at line 150 of file MooseFunctor.h.
|
inherited |
Definition at line 140 of file MooseFunctor.h.
|
inherited |
This rigmarole makes it so that a user can create functors that return containers (std::vector, std::array).
This logic will make it such that if a user requests a functor type T that is a container of algebraic types, for example Reals, then the GradientType will be a container of the gradients of those algebraic types, in this example VectorValue<Reals>. So if T is std::vector<Real>, then GradientType will be std::vector<VectorValue<Real>>. As another example: T = std::array<VectorValue<Real>, 1> -> GradientType = std::array<TensorValue<Real>, 1>
Definition at line 149 of file MooseFunctor.h.
|
inherited |
Definition at line 141 of file MooseFunctor.h.
|
inline |
Definition at line 1275 of file MooseFunctor.h.
|
inline |
Definition at line 1279 of file MooseFunctor.h.
|
inherited |
Examines the incoming face argument.
If the face argument producer (residual object, postprocessor, etc.) did not indicate a sidedness to the face, e.g. if the face_side
member of the FaceArg
is nullptr
, then we may "modify" the sidedness of the argument if we are only defined on one side of the face. If the face argument producer has indicated a sidedness and we are not defined on that side, then we will error
face | The face argument created by the face argument producer, likely a residual object |
Definition at line 732 of file MooseFunctor.h.
|
overridevirtualinherited |
Implements Moose::FunctorAbstract.
Reimplemented in Function.
Definition at line 839 of file MooseFunctor.h.
|
inherited |
Same as their evaluateDot
overloads with the same arguments but allows for caching implementation.
These are the methods a user will call in their code
Definition at line 890 of file MooseFunctor.h.
Referenced by FVFunctorTimeKernel::computeQpResidual(), and Moose::ADWrapperFunctor< T >::evaluateDot().
|
inherited |
Definition at line 897 of file MooseFunctor.h.
|
inherited |
Definition at line 905 of file MooseFunctor.h.
|
inherited |
Definition at line 912 of file MooseFunctor.h.
|
inherited |
Definition at line 919 of file MooseFunctor.h.
|
inherited |
Definition at line 926 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor with a given element.
Some example implementations of this method could compute an element-average or evaluate at the element centroid
Implements Moose::FunctorBase< T >.
Definition at line 1292 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Implements Moose::FunctorBase< T >.
Definition at line 1293 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Implements Moose::FunctorBase< T >.
Definition at line 1294 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Implements Moose::FunctorBase< T >.
Definition at line 1295 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor with a given element and point.
Some example implementations of this method could perform a two-term Taylor expansion using cell-centered value and gradient
Implements Moose::FunctorBase< T >.
Definition at line 1296 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
|
inlineoverrideprivatevirtual |
Evaluate the functor time derivative with a given element.
Some example implementations of this method could compute an element-average or evaluate at the element centroid
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1309 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1310 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1311 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1312 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor time derivative with a given element and point.
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1313 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1314 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor gradient-dot with a given element.
Some example implementations of this method could compute an element-average or evaluate at the element centroid
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1316 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1317 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1318 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1319 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor gradient-dot with a given element and point.
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1320 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1321 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor gradient with a given element.
Some example implementations of this method could compute an element-average or evaluate at the element centroid
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1299 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1300 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1301 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1302 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Evaluate the functor gradient with a given element and point.
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1306 of file MooseFunctor.h.
|
inlineoverrideprivatevirtual |
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1307 of file MooseFunctor.h.
|
inlineinherited |
Return the functor name.
Definition at line 170 of file MooseFunctor.h.
Referenced by Moose::FunctorBase< libMesh::VectorValue >::evaluateDot(), Moose::FunctorBase< libMesh::VectorValue >::evaluateGradDot(), Moose::FunctorBase< libMesh::VectorValue >::evaluateGradient(), and Moose::FunctorBase< libMesh::VectorValue >::hasBlocks().
|
inherited |
Perform a generic evaluation based on the supplied template argument FET
and supplied spatial and temporal arguments.
Definition at line 987 of file MooseFunctor.h.
|
inherited |
Same as their evaluateGradDot
overloads with the same arguments but allows for caching implementation.
These are the methods a user will call in their code
Definition at line 933 of file MooseFunctor.h.
Referenced by Moose::VectorComponentFunctor< T >::evaluateGradDot(), and Moose::ADWrapperFunctor< T >::evaluateGradDot().
|
inherited |
Definition at line 940 of file MooseFunctor.h.
|
inherited |
Definition at line 948 of file MooseFunctor.h.
|
inherited |
Definition at line 955 of file MooseFunctor.h.
|
inherited |
Definition at line 962 of file MooseFunctor.h.
|
inherited |
Definition at line 969 of file MooseFunctor.h.
|
inherited |
Same as their evaluateGradient
overloads with the same arguments but allows for caching implementation.
These are the methods a user will call in their code
Definition at line 847 of file MooseFunctor.h.
Referenced by GradientJumpIndicator::computeQpIntegral(), Moose::FV::containerInterpolate(), Moose::VectorComponentFunctor< T >::evaluateGradient(), Moose::ADWrapperFunctor< T >::evaluateGradient(), and Moose::FV::greenGaussGradient().
|
inherited |
Definition at line 854 of file MooseFunctor.h.
|
inherited |
Definition at line 862 of file MooseFunctor.h.
|
inherited |
Definition at line 869 of file MooseFunctor.h.
|
inherited |
Definition at line 876 of file MooseFunctor.h.
|
inherited |
Definition at line 883 of file MooseFunctor.h.
|
inlineoverridevirtual |
Returns whether the functor is defined on this block.
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1286 of file MooseFunctor.h.
|
overridevirtualinherited |
Implements FaceArgInterface.
Reimplemented in Moose::NullFunctor< T >, Moose::FunctorEnvelope< T >, Moose::FunctorEnvelope< ADReal >, Moose::FunctorEnvelope< GenericReal< is_ad > >, Moose::FunctorEnvelope< GenericRealVectorValue< is_ad > >, Moose::FunctorEnvelope< VectorValue< Real > >, Moose::FunctorEnvelope< Moose::GenericType< T, is_ad > >, Moose::FunctorEnvelope< VectorValue< GenericReal< is_ad > > >, Moose::FunctorEnvelope< Moose::GenericType< Real, is_ad > >, Moose::FunctorEnvelope< Real >, Moose::FunctorEnvelope< libMesh::VectorValue >, Moose::ADWrapperFunctor< T >, Moose::RawValueFunctor< T >, InternalSideIntegralVariablePostprocessor, InterfaceIntegralVariableValuePostprocessor, SideIntegralVariablePostprocessor, SideIntegralFunctorPostprocessorTempl< is_ad >, and SideIntegralFunctorPostprocessorTempl< false >.
Definition at line 976 of file MooseFunctor.h.
Referenced by SideIntegralVariablePostprocessor::hasFaceSide(), InternalSideIntegralVariablePostprocessor::hasFaceSide(), and Moose::ADWrapperFunctor< T >::hasFaceSide().
|
inlineoverridevirtual |
Returns true if this functor is a constant.
Reimplemented from Moose::FunctorBase< T >.
Definition at line 1284 of file MooseFunctor.h.
|
inlinevirtualinherited |
Returns whether this (sided) face is an extrapolated boundary face for this functor.
Reimplemented in Moose::FunctorEnvelope< T >, Moose::FunctorEnvelope< ADReal >, Moose::FunctorEnvelope< GenericReal< is_ad > >, Moose::FunctorEnvelope< GenericRealVectorValue< is_ad > >, Moose::FunctorEnvelope< VectorValue< Real > >, Moose::FunctorEnvelope< Moose::GenericType< T, is_ad > >, Moose::FunctorEnvelope< VectorValue< GenericReal< is_ad > > >, Moose::FunctorEnvelope< Moose::GenericType< Real, is_ad > >, Moose::FunctorEnvelope< Real >, Moose::FunctorEnvelope< libMesh::VectorValue >, MooseVariableFV< OutputType >, MooseVariableFV< ComputeValueType >, MooseVariableFV< T >, MooseVariableFV< RealEigenVector >, MooseVariableFV< RealVectorValue >, MooseVariableFV< Real >, MooseLinearVariableFV< OutputType >, MooseLinearVariableFV< ComputeValueType >, MooseLinearVariableFV< T >, MooseLinearVariableFV< RealEigenVector >, MooseLinearVariableFV< RealVectorValue >, MooseLinearVariableFV< Real >, PiecewiseByBlockLambdaFunctor< T >, Moose::VectorComponentFunctor< T >, Moose::ArrayComponentFunctor< T, ArrayTypeFunctor >, Moose::ADWrapperFunctor< T >, and Moose::RawValueFunctor< T >.
Definition at line 247 of file MooseFunctor.h.
Referenced by Moose::ADWrapperFunctor< T >::isExtrapolatedBoundaryFace().
|
inherited |
Returns true if the face is an internal face.
Definition at line 569 of file MooseFunctor.h.
Referenced by FVAnisotropicDiffusion::computeQpResidual(), and FVDiffusion::computeQpResidual().
|
overridevirtualinherited |
Implements Moose::FunctorAbstract.
Reimplemented in MooseVariableFE< OutputType >, MooseVariableFE< ComputeValueType >, MooseVariableFE< T >, MooseVariableFE< RealEigenVector >, MooseVariableFE< VectorValue< Real > >, MooseVariableFE< RealVectorValue >, MooseVariableFE< Real >, MooseVariableFV< OutputType >, MooseVariableFV< ComputeValueType >, MooseVariableFV< T >, MooseVariableFV< RealEigenVector >, MooseVariableFV< RealVectorValue >, MooseVariableFV< Real >, MooseVariableField< OutputType >, MooseVariableField< RT >, MooseVariableField< ComputeValueType >, MooseVariableField< T >, MooseVariableField< RealEigenVector >, MooseVariableField< RealVectorValue >, MooseVariableField< Real >, MooseLinearVariableFV< OutputType >, MooseLinearVariableFV< ComputeValueType >, MooseLinearVariableFV< T >, MooseLinearVariableFV< RealEigenVector >, MooseLinearVariableFV< RealVectorValue >, MooseLinearVariableFV< Real >, and Function.
Definition at line 831 of file MooseFunctor.h.
|
inherited |
Same as their evaluate
overloads with the same arguments but allows for caching implementation.
These are the methods a user will call in their code
Definition at line 597 of file MooseFunctor.h.
|
inherited |
Definition at line 610 of file MooseFunctor.h.
|
inherited |
Definition at line 656 of file MooseFunctor.h.
|
inherited |
Definition at line 677 of file MooseFunctor.h.
|
inherited |
Definition at line 707 of file MooseFunctor.h.
|
inherited |
Definition at line 724 of file MooseFunctor.h.
|
overridevirtualinherited |
Implements Moose::FunctorAbstract.
Reimplemented in MooseVariableFE< OutputType >, MooseVariableFE< ComputeValueType >, MooseVariableFE< T >, MooseVariableFE< RealEigenVector >, MooseVariableFE< VectorValue< Real > >, MooseVariableFE< RealVectorValue >, MooseVariableFE< Real >, MooseVariableFV< OutputType >, MooseVariableFV< ComputeValueType >, MooseVariableFV< T >, MooseVariableFV< RealEigenVector >, MooseVariableFV< RealVectorValue >, MooseVariableFV< Real >, MooseVariableField< OutputType >, MooseVariableField< RT >, MooseVariableField< ComputeValueType >, MooseVariableField< T >, MooseVariableField< RealEigenVector >, MooseVariableField< RealVectorValue >, MooseVariableField< Real >, MooseLinearVariableFV< OutputType >, MooseLinearVariableFV< ComputeValueType >, MooseLinearVariableFV< T >, MooseLinearVariableFV< RealEigenVector >, MooseLinearVariableFV< RealVectorValue >, MooseLinearVariableFV< Real >, and Function.
Definition at line 823 of file MooseFunctor.h.
|
inherited |
Set how often to clear the functor evaluation cache.
Definition at line 714 of file MooseFunctor.h.
|
inlinefinaloverridevirtual |
Whether this functor supports evaluation with ElemSideQpArg.
Implements Moose::FunctorBase< T >.
Definition at line 1289 of file MooseFunctor.h.
|
inlinefinaloverridevirtual |
Whether this functor supports evaluation with FaceArg.
Implements Moose::FunctorBase< T >.
Definition at line 1288 of file MooseFunctor.h.
|
overridevirtualinherited |
Implements Moose::FunctorAbstract.
Reimplemented in MooseVariableFV< OutputType >, MooseVariableFV< ComputeValueType >, MooseVariableFV< T >, MooseVariableFV< RealEigenVector >, MooseVariableFV< RealVectorValue >, MooseVariableFV< Real >, MooseVariableField< OutputType >, MooseVariableField< RT >, MooseVariableField< ComputeValueType >, MooseVariableField< T >, MooseVariableField< RealEigenVector >, MooseVariableField< RealVectorValue >, MooseVariableField< Real >, Function, NumNonlinearIterations, and MemoryUsage.
Definition at line 815 of file MooseFunctor.h.
|
private |
Definition at line 1324 of file MooseFunctor.h.
Referenced by Moose::ConstantFunctor< T >::evaluate().