A functor that returns a vector composed of its component functor evaluations. More...
#include <VectorCompositeFunctor.h>
Public Types | |
template<typename U > | |
using | FunctorBase = FunctorBase< U > |
using | FunctorType = FunctorBase< VectorValue< T > > |
using | ValueType = VectorValue< T > |
using | GradientType = typename FunctorReturnType< VectorValue< 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 | |
VectorCompositeFunctor (const MooseFunctorName &name, const FunctorBase< T > &x_comp, const FunctorBase< T > &y_comp, const FunctorBase< T > &z_comp) | |
From xyz component constructor. More... | |
VectorCompositeFunctor (const MooseFunctorName &name, const FunctorBase< T > &x_comp, const FunctorBase< T > &y_comp) | |
From xy component constructor. More... | |
VectorCompositeFunctor (const MooseFunctorName &name, const FunctorBase< T > &x_comp) | |
From x component constructor. More... | |
virtual bool | hasBlocks (SubdomainID sub_id) const override |
Returns whether the functor is defined on this block. More... | |
bool | supportsFaceArg () const override |
Whether this functor supports evaluation with FaceArg. More... | |
bool | supportsElemSideQpArg () const override |
Whether this functor supports evaluation with ElemSideQpArg. More... | |
FunctorReturnType< VectorValue< 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 | isConstant () const |
Returns true if this functor is a constant. 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 |
Protected Member Functions | |
Functor evaluation routines | |
These methods are all for evaluating functors with different kinds of spatial arguments. Each of these methods also takes a state argument. For a description of the state argument, please see the | |
virtual GradientType | evaluateGradient (const FaceArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const ElemQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const ElemSideQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const ElemPointArg &, const StateArg &) const |
Evaluate the functor gradient with a given element and point. More... | |
virtual GradientType | evaluateGradient (const NodeArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemQpArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemSideQpArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemPointArg &, const StateArg &) const |
Evaluate the functor time derivative with a given element and point. More... | |
virtual DotType | evaluateDot (const NodeArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemArg &, const StateArg &) const |
Evaluate the functor gradient-dot with a given element. More... | |
virtual GradientType | evaluateGradDot (const FaceArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemSideQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemPointArg &, const StateArg &) const |
Evaluate the functor gradient-dot with a given element and point. More... | |
virtual GradientType | evaluateGradDot (const NodeArg &, const StateArg &) const |
Private Member Functions | |
ValueType | evaluate (const ElemArg &elem_arg, const StateArg &state) const override |
Evaluate the functor with a given element. More... | |
ValueType | evaluate (const FaceArg &face, const StateArg &state) const override |
ValueType | evaluate (const ElemQpArg &elem_qp, const StateArg &state) const override |
ValueType | evaluate (const ElemSideQpArg &elem_side_qp, const StateArg &state) const override |
ValueType | evaluate (const ElemPointArg &elem_point_arg, const StateArg &state) const override |
Evaluate the functor with a given element and point. More... | |
ValueType | evaluate (const NodeArg &node_arg, const StateArg &state) const override |
GradientType | evaluateGradient (const ElemArg &elem_arg, const StateArg &state) const override |
Evaluate the functor gradient with a given element. More... | |
DotType | evaluateDot (const FaceArg &face_arg, const StateArg &state) const override |
DotType | evaluateDot (const ElemArg &elem_arg, const StateArg &state) const override |
Evaluate the functor time derivative with a given element. More... | |
Private Attributes | |
std::unique_ptr< ConstantFunctor< T > > | _y_constant |
Possible holder of constant-0 y-component functor. More... | |
std::unique_ptr< ConstantFunctor< T > > | _z_constant |
Possible holder of constant-0 z-component functor. More... | |
const FunctorBase< T > & | _x_comp |
The x-component functor. More... | |
const FunctorBase< T > & | _y_comp |
The y-component functor. More... | |
const FunctorBase< T > & | _z_comp |
The z-component functor. More... | |
const bool | _has_y |
Whether the user supplied a y-functor. More... | |
const bool | _has_z |
Whether the user supplied a z-functor. More... | |
A functor that returns a vector composed of its component functor evaluations.
Definition at line 23 of file VectorCompositeFunctor.h.
|
inherited |
Definition at line 150 of file MooseFunctor.h.
using Moose::VectorCompositeFunctor< T >::FunctorBase = FunctorBase<U> |
Definition at line 27 of file VectorCompositeFunctor.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.
Moose::VectorCompositeFunctor< T >::VectorCompositeFunctor | ( | const MooseFunctorName & | name, |
const FunctorBase< T > & | x_comp, | ||
const FunctorBase< T > & | y_comp, | ||
const FunctorBase< T > & | z_comp | ||
) |
From xyz component constructor.
Definition at line 104 of file VectorCompositeFunctor.h.
Moose::VectorCompositeFunctor< T >::VectorCompositeFunctor | ( | const MooseFunctorName & | name, |
const FunctorBase< T > & | x_comp, | ||
const FunctorBase< T > & | y_comp | ||
) |
From xy component constructor.
Definition at line 118 of file VectorCompositeFunctor.h.
Moose::VectorCompositeFunctor< T >::VectorCompositeFunctor | ( | const MooseFunctorName & | name, |
const FunctorBase< T > & | x_comp | ||
) |
From x component constructor.
Definition at line 132 of file VectorCompositeFunctor.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.
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.
|
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.
|
overrideprivatevirtual |
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< VectorValue< T > >.
Definition at line 173 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
Implements Moose::FunctorBase< VectorValue< T > >.
Definition at line 180 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
Implements Moose::FunctorBase< VectorValue< T > >.
Definition at line 187 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Implements Moose::FunctorBase< VectorValue< T > >.
Definition at line 194 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
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< VectorValue< T > >.
Definition at line 202 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
Implements Moose::FunctorBase< VectorValue< T > >.
Definition at line 212 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
Reimplemented from Moose::FunctorBase< VectorValue< T > >.
Definition at line 228 of file VectorCompositeFunctor.h.
|
overrideprivatevirtual |
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< VectorValue< T > >.
Definition at line 235 of file VectorCompositeFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 405 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Definition at line 416 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Evaluate the functor time derivative with a given element and point.
Definition at line 425 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 430 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
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
Definition at line 439 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 449 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 459 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Definition at line 470 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Evaluate the functor gradient-dot with a given element and point.
Definition at line 479 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 484 of file MooseFunctor.h.
|
overrideprivatevirtual |
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< VectorValue< T > >.
Definition at line 219 of file VectorCompositeFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 342 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 352 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
side_qp | See the ElemSideQpArg doxygen |
state | See the StateArg doxygen |
Definition at line 362 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Evaluate the functor gradient with a given element and point.
Definition at line 371 of file MooseFunctor.h.
|
inlineprotectedvirtualinherited |
Definition at line 376 of file MooseFunctor.h.
|
inlineinherited |
Return the functor name.
Definition at line 170 of file MooseFunctor.h.
|
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.
|
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.
|
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< VectorValue< T > >.
Definition at line 53 of file VectorCompositeFunctor.h.
|
overridevirtualinherited |
Implements FaceArgInterface.
Definition at line 976 of file MooseFunctor.h.
|
inlinevirtualinherited |
Returns true if this functor is a constant.
Definition at line 260 of file MooseFunctor.h.
|
inlinevirtualinherited |
Returns whether this (sided) face is an extrapolated boundary face for this functor.
Definition at line 247 of file MooseFunctor.h.
|
inherited |
Returns true if the face is an internal face.
Definition at line 569 of file MooseFunctor.h.
|
overridevirtualinherited |
Implements Moose::FunctorAbstract.
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.
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.
|
overridevirtual |
Whether this functor supports evaluation with ElemSideQpArg.
Implements Moose::FunctorBase< VectorValue< T > >.
Definition at line 160 of file VectorCompositeFunctor.h.
|
overridevirtual |
Whether this functor supports evaluation with FaceArg.
Implements Moose::FunctorBase< VectorValue< T > >.
Definition at line 147 of file VectorCompositeFunctor.h.
|
overridevirtualinherited |
Implements Moose::FunctorAbstract.
Definition at line 815 of file MooseFunctor.h.
|
private |
Whether the user supplied a y-functor.
Definition at line 97 of file VectorCompositeFunctor.h.
Referenced by Moose::VectorCompositeFunctor< T >::hasBlocks().
|
private |
Whether the user supplied a z-functor.
Definition at line 100 of file VectorCompositeFunctor.h.
Referenced by Moose::VectorCompositeFunctor< T >::hasBlocks().
|
private |
The x-component functor.
Definition at line 90 of file VectorCompositeFunctor.h.
Referenced by Moose::VectorCompositeFunctor< T >::hasBlocks().
|
private |
The y-component functor.
Definition at line 92 of file VectorCompositeFunctor.h.
Referenced by Moose::VectorCompositeFunctor< T >::hasBlocks().
|
private |
Possible holder of constant-0 y-component functor.
This will be allocated if the user only supplies one component functor during construction
Definition at line 83 of file VectorCompositeFunctor.h.
|
private |
The z-component functor.
Definition at line 94 of file VectorCompositeFunctor.h.
Referenced by Moose::VectorCompositeFunctor< T >::hasBlocks().
|
private |
Possible holder of constant-0 z-component functor.
This will be allocated if the user only supplies two component functors during construction
Definition at line 87 of file VectorCompositeFunctor.h.