https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
LayeredAverageBase< BaseType > Class Template Referenceabstract

Base class for computing layered averages. More...

#include <LayeredAverageBase.h>

Inheritance diagram for LayeredAverageBase< BaseType >:
[legend]

Public Types

using FunctorType = FunctorBase< Real >
 
using ValueType = Real
 
using GradientType = typename FunctorReturnType< Real, 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

 LayeredAverageBase (const InputParameters &parameters)
 
virtual void initialize () override
 
virtual void execute () override
 
virtual void finalize () override
 
virtual void threadJoin (const UserObject &y) override
 
virtual Real spatialValue (const Point &p) const override
 Given a Point return the integral value associated with the layer that point falls in. More...
 
virtual const std::vector< Point > spatialPoints () const override
 
virtual bool hasBlocks (SubdomainID sub) const override
 Returns whether the functor is defined on this block. More...
 
Real evaluateTemplate (const SpatialArg &position, const Moose::StateArg &libmesh_dbg_var(state)) const
 
FunctorReturnType< Real, 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...
 
virtual Real integralValue (const Point &p) const
 Given a Point return the integral value associated with the layer that point falls in. More...
 
virtual Real getLayerValue (unsigned int layer) const
 Get the value for a given layer. More...
 
virtual unsigned int getLayer (const Point &p) const
 Helper function to return the layer the point lies in. More...
 
const std::vector< Real > & getLayerCenters () const
 Get the center coordinates for the layers (along given direction) More...
 
unsigned int direction () const
 Get direction of the layers. 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
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Types

using ElemArg = Moose::ElemArg
 
using ElemQpArg = Moose::ElemQpArg
 
using ElemSideQpArg = Moose::ElemSideQpArg
 
using FaceArg = Moose::FaceArg
 
using ElemPointArg = Moose::ElemPointArg
 
using NodeArg = Moose::NodeArg
 

Protected Member Functions

virtual Real volume () const =0
 
virtual Real evaluate (const ElemArg &elem, const Moose::StateArg &state) const override final
 Evaluate the functor with a given element. More...
 
virtual Real evaluate (const FaceArg &face, const Moose::StateArg &state) const override final
 
virtual Real evaluate (const ElemQpArg &qp, const Moose::StateArg &state) const override final
 
virtual Real evaluate (const ElemSideQpArg &elem_side_qp, const Moose::StateArg &state) const override final
 
virtual Real evaluate (const ElemPointArg &elem_point, const Moose::StateArg &state) const override final
 Evaluate the functor with a given element and point. More...
 
virtual Real evaluate (const NodeArg &node, const Moose::StateArg &state) const override final
 
virtual bool supportsFaceArg () const override final
 Whether this functor supports evaluation with FaceArg. More...
 
virtual bool supportsElemSideQpArg () const override final
 Whether this functor supports evaluation with ElemSideQpArg. More...
 
void setLayerValue (unsigned int layer, Real value)
 Set the value for a particular layer. More...
 
bool layerHasValue (unsigned int layer) const
 Whether or not a layer has a value. More...
 
void getBounds ()
 Compute bounds, restricted to blocks if given. More...
 
void computeLayerCenters ()
 Compute the center points for each layer. More...
 
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 StateArg doxygen

virtual GradientType evaluateGradient (const ElemArg &, const StateArg &) const
 Evaluate the functor gradient with a given element. More...
 
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 ElemArg &, const StateArg &) const
 Evaluate the functor time derivative with a given element. More...
 
virtual DotType evaluateDot (const FaceArg &, 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
 

Protected Attributes

std::vector< Real_layer_volumes
 Value of the volume (area for side integrals) for each layer. More...
 
std::string _layered_base_name
 Name of this object. More...
 
const InputParameters_layered_base_params
 Params for this object. More...
 
MooseEnum _direction_enum
 The MooseEnum direction the layers are going in. More...
 
unsigned int _direction
 The component direction the layers are going in. We cache this for speed (so we're not always going through the MooseEnum) More...
 
bool _interval_based
 Whether or not this object is based on equally spaced intervals or "bounds". More...
 
unsigned int _num_layers
 Number of layers to split the mesh into. More...
 
std::vector< Real_layer_bounds
 The boundaries of the layers. More...
 
unsigned int _sample_type
 How to sample the values. More...
 
unsigned int _average_radius
 How many layers both above and below the found layer will be used in the average. More...
 
bool _using_displaced_mesh
 true if this object operates on the displaced mesh, otherwise false More...
 
std::vector< Real_layer_centers
 center coordinates of each layer More...
 
Real _direction_min
 
Real _direction_max
 
std::vector< Real > & _layer_values
 Value of the integral for each layer. More...
 
std::vector< int > & _layer_has_value
 Whether or not each layer has had any value summed into it. More...
 
bool _cumulative
 Whether the values are cumulative over the layers. More...
 
const bool _positive_cumulative_direction
 Whether the cumulative values should be summed in the positive or negative direction. More...
 

Detailed Description

template<typename BaseType>
class LayeredAverageBase< BaseType >

Base class for computing layered averages.

Definition at line 18 of file LayeredAverageBase.h.

Member Typedef Documentation

◆ DotType

using Moose::FunctorBase< Real >::DotType = ValueType
inherited

Definition at line 150 of file MooseFunctor.h.

◆ ElemArg

using SpatialUserObjectFunctor< BaseType >::ElemArg = Moose::ElemArg
protectedinherited

Definition at line 29 of file SpatialUserObjectFunctor.h.

◆ ElemPointArg

using SpatialUserObjectFunctor< BaseType >::ElemPointArg = Moose::ElemPointArg
protectedinherited

Definition at line 33 of file SpatialUserObjectFunctor.h.

◆ ElemQpArg

using SpatialUserObjectFunctor< BaseType >::ElemQpArg = Moose::ElemQpArg
protectedinherited

Definition at line 30 of file SpatialUserObjectFunctor.h.

◆ ElemSideQpArg

using SpatialUserObjectFunctor< BaseType >::ElemSideQpArg = Moose::ElemSideQpArg
protectedinherited

Definition at line 31 of file SpatialUserObjectFunctor.h.

◆ FaceArg

using SpatialUserObjectFunctor< BaseType >::FaceArg = Moose::FaceArg
protectedinherited

Definition at line 32 of file SpatialUserObjectFunctor.h.

◆ FunctorType

Definition at line 140 of file MooseFunctor.h.

◆ GradientType

using Moose::FunctorBase< Real >::GradientType = typename FunctorReturnType<Real , FunctorEvaluationKind::Gradient>::type
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.

◆ NodeArg

using SpatialUserObjectFunctor< BaseType >::NodeArg = Moose::NodeArg
protectedinherited

Definition at line 34 of file SpatialUserObjectFunctor.h.

◆ ValueType

using Moose::FunctorBase< Real >::ValueType = Real
inherited

Definition at line 141 of file MooseFunctor.h.

Constructor & Destructor Documentation

◆ LayeredAverageBase()

template<typename BaseType >
LayeredAverageBase< BaseType >::LayeredAverageBase ( const InputParameters parameters)

Definition at line 59 of file LayeredAverageBase.h.

60  : LayeredIntegralBase<BaseType>(parameters)
61 {
63 }
unsigned int _num_layers
Number of layers to split the mesh into.
Definition: LayeredBase.h:118
std::vector< Real > _layer_volumes
Value of the volume (area for side integrals) for each layer.

Member Function Documentation

◆ checkFace()

void Moose::FunctorBase< Real >::checkFace ( const Moose::FaceArg face) const
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

Parameters
faceThe face argument created by the face argument producer, likely a residual object
Returns
A face with possibly changed sidedness depending on whether we aren't defined on both sides of the face

Definition at line 732 of file MooseFunctor.h.

737 {
738 #if DEBUG
739  const Elem * const elem = face.face_side;
740  const FaceInfo * const fi = face.fi;
741  mooseAssert(fi, "face info should be non-null");
742  bool check_elem_def = false;
743  bool check_neighbor_def = false;
744  // We check if the functor is defined on both sides of the face
745  if (!elem)
746  {
747  if (!hasFaceSide(*fi, true))
748  check_neighbor_def = true;
749  else if (!hasFaceSide(*fi, false))
750  check_elem_def = true;
751  }
752  else if (elem == fi->elemPtr())
753  check_elem_def = true;
754  else
755  {
756  mooseAssert(elem == fi->neighborPtr(), "This has to match something");
757  check_neighbor_def = true;
758  }
759 
760  if (check_elem_def && !hasFaceSide(*fi, true))
761  {
762  std::string additional_message = "It is not defined on the neighbor side either.";
763  if (hasFaceSide(*fi, false))
764  additional_message = "It is however defined on the neighbor side.";
765  additional_message += " Face centroid: " + Moose::stringify(fi->faceCentroid());
767  " is not defined on the element side of the face information, but a face argument "
768  "producer "
769  "(e.g. residual object, postprocessor, etc.) has requested evaluation there.\n",
770  additional_message);
771  }
772  if (check_neighbor_def && !hasFaceSide(*fi, false))
773  {
774  std::string additional_message = "It is not defined on the element side either.";
775  if (hasFaceSide(*fi, true))
776  additional_message = "It is however defined on the element side.";
777  additional_message += " Face centroid: " + Moose::stringify(fi->faceCentroid());
778  mooseError(
780  " is not defined on the neighbor side of the face information, but a face argument "
781  "producer (e.g. residual object, postprocessor, etc.) has requested evaluation there.\n",
782  additional_message);
783  }
784 #endif
785 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const libMesh::Elem * face_side
A member that can be used to indicate whether there is a sidedness to this face.
const Point & faceCentroid() const
Returns the coordinates of the face centroid.
Definition: FaceInfo.h:71
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:36
const Elem * neighborPtr() const
Definition: FaceInfo.h:84
MooseFunctorName _functor_name
name of the functor
Definition: MooseFunctor.h:564
const FaceInfo * fi
a face information object which defines our location in space
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
const Elem * elemPtr() const
Definition: FaceInfo.h:82
virtual bool hasFaceSide(const FaceInfo &fi, const bool fi_elem_side) const override
Definition: MooseFunctor.h:976

◆ computeLayerCenters()

void LayeredBase::computeLayerCenters ( )
protectedinherited

Compute the center points for each layer.

Definition at line 388 of file LayeredBase.C.

Referenced by LayeredBase::LayeredBase().

389 {
390  _layer_centers.resize(_num_layers);
391 
392  if (_interval_based)
393  {
395 
396  for (const auto i : make_range(_num_layers))
397  _layer_centers[i] = (i + 0.5) * dx;
398  }
399  else
400  {
401  for (const auto i : make_range(_num_layers))
402  _layer_centers[i] = 0.5 * (_layer_bounds[i + 1] + _layer_bounds[i]);
403  }
404 }
bool _interval_based
Whether or not this object is based on equally spaced intervals or "bounds".
Definition: LayeredBase.h:115
std::vector< Real > _layer_centers
center coordinates of each layer
Definition: LayeredBase.h:133
unsigned int _num_layers
Number of layers to split the mesh into.
Definition: LayeredBase.h:118
std::vector< Real > _layer_bounds
The boundaries of the layers.
Definition: LayeredBase.h:121
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
Real _direction_min
Definition: LayeredBase.h:135
Real _direction_max
Definition: LayeredBase.h:136

◆ customSetup()

void Moose::FunctorBase< Real >::customSetup ( const ExecFlagType exec_type)
overridevirtualinherited

Implements Moose::FunctorAbstract.

Reimplemented in Function.

Definition at line 839 of file MooseFunctor.h.

840 {
841  if (_clearance_schedule.count(exec_type))
842  clearCacheData();
843 }
void clearCacheData()
clear cache data
Definition: MooseFunctor.h:789
std::set< ExecFlagType > _clearance_schedule
How often to clear the material property cache.
Definition: MooseFunctor.h:514

◆ direction()

unsigned int LayeredBase::direction ( ) const
inlineinherited

Get direction of the layers.

Returns
layer direction

Definition at line 73 of file LayeredBase.h.

73 { return _direction; }
unsigned int _direction
The component direction the layers are going in. We cache this for speed (so we&#39;re not always going t...
Definition: LayeredBase.h:112

◆ dot() [1/6]

FunctorBase< Real >::DotType Moose::FunctorBase< Real >::dot ( const ElemArg elem,
const StateArg state 
) const
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.

891 {
892  return evaluateDot(elem, state);
893 }
virtual DotType evaluateDot(const ElemArg &, const StateArg &) const
Evaluate the functor time derivative with a given element.
Definition: MooseFunctor.h:385

◆ dot() [2/6]

FunctorBase< Real >::DotType Moose::FunctorBase< Real >::dot ( const FaceArg face,
const StateArg state 
) const
inherited

Definition at line 897 of file MooseFunctor.h.

898 {
899  checkFace(face);
900  return evaluateDot(face, state);
901 }
virtual DotType evaluateDot(const ElemArg &, const StateArg &) const
Evaluate the functor time derivative with a given element.
Definition: MooseFunctor.h:385
void checkFace(const Moose::FaceArg &face) const
Examines the incoming face argument.
Definition: MooseFunctor.h:732

◆ dot() [3/6]

FunctorBase< Real >::DotType Moose::FunctorBase< Real >::dot ( const ElemQpArg qp,
const StateArg state 
) const
inherited

Definition at line 905 of file MooseFunctor.h.

906 {
907  return evaluateDot(elem_qp, state);
908 }
virtual DotType evaluateDot(const ElemArg &, const StateArg &) const
Evaluate the functor time derivative with a given element.
Definition: MooseFunctor.h:385

◆ dot() [4/6]

FunctorBase< Real >::DotType Moose::FunctorBase< Real >::dot ( const ElemSideQpArg qp,
const StateArg state 
) const
inherited

Definition at line 912 of file MooseFunctor.h.

913 {
914  return evaluateDot(elem_side_qp, state);
915 }
virtual DotType evaluateDot(const ElemArg &, const StateArg &) const
Evaluate the functor time derivative with a given element.
Definition: MooseFunctor.h:385

◆ dot() [5/6]

FunctorBase< Real >::DotType Moose::FunctorBase< Real >::dot ( const ElemPointArg elem_point,
const StateArg state 
) const
inherited

Definition at line 919 of file MooseFunctor.h.

920 {
921  return evaluateDot(elem_point, state);
922 }
virtual DotType evaluateDot(const ElemArg &, const StateArg &) const
Evaluate the functor time derivative with a given element.
Definition: MooseFunctor.h:385

◆ dot() [6/6]

FunctorBase< Real >::DotType Moose::FunctorBase< Real >::dot ( const NodeArg node,
const StateArg state 
) const
inherited

Definition at line 926 of file MooseFunctor.h.

927 {
928  return evaluateDot(node, state);
929 }
virtual DotType evaluateDot(const ElemArg &, const StateArg &) const
Evaluate the functor time derivative with a given element.
Definition: MooseFunctor.h:385

◆ evaluate() [1/6]

Real SpatialUserObjectFunctor< BaseType >::evaluate ( const ElemArg elem,
const Moose::StateArg state 
) const
finaloverrideprotectedvirtualinherited

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< Real >.

Definition at line 85 of file SpatialUserObjectFunctor.h.

87 {
88  return evaluateTemplate(elem, state);
89 }
Real evaluateTemplate(const SpatialArg &position, const Moose::StateArg &state) const

◆ evaluate() [2/6]

Real SpatialUserObjectFunctor< BaseType >::evaluate ( const FaceArg face,
const Moose::StateArg state 
) const
finaloverrideprotectedvirtualinherited
Parameters
faceSee the FaceArg doxygen
stateSee the StateArg doxygen
Returns
The functor evaluated at the requested state and space

Implements Moose::FunctorBase< Real >.

Definition at line 93 of file SpatialUserObjectFunctor.h.

95 {
96  return evaluateTemplate(face, state);
97 }
Real evaluateTemplate(const SpatialArg &position, const Moose::StateArg &state) const

◆ evaluate() [3/6]

Real SpatialUserObjectFunctor< BaseType >::evaluate ( const ElemQpArg qp,
const Moose::StateArg state 
) const
finaloverrideprotectedvirtualinherited
Parameters
qpSee the ElemQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor evaluated at the requested state and space

Implements Moose::FunctorBase< Real >.

Definition at line 101 of file SpatialUserObjectFunctor.h.

103 {
104  return evaluateTemplate(qp, state);
105 }
Real evaluateTemplate(const SpatialArg &position, const Moose::StateArg &state) const

◆ evaluate() [4/6]

Real SpatialUserObjectFunctor< BaseType >::evaluate ( const ElemSideQpArg elem_side_qp,
const Moose::StateArg state 
) const
finaloverrideprotectedvirtualinherited
Parameters
side_qpSee the ElemSideQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor evaluated at the requested state and space

Implements Moose::FunctorBase< Real >.

Definition at line 109 of file SpatialUserObjectFunctor.h.

111 {
112  return evaluateTemplate(elem_side_qp, state);
113 }
Real evaluateTemplate(const SpatialArg &position, const Moose::StateArg &state) const

◆ evaluate() [5/6]

Real SpatialUserObjectFunctor< BaseType >::evaluate ( const ElemPointArg elem_point,
const Moose::StateArg state 
) const
finaloverrideprotectedvirtualinherited

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< Real >.

Definition at line 117 of file SpatialUserObjectFunctor.h.

119 {
120  return evaluateTemplate(elem_point, state);
121 }
Real evaluateTemplate(const SpatialArg &position, const Moose::StateArg &state) const

◆ evaluate() [6/6]

Real SpatialUserObjectFunctor< BaseType >::evaluate ( const NodeArg node,
const Moose::StateArg state 
) const
finaloverrideprotectedvirtualinherited

Implements Moose::FunctorBase< Real >.

Definition at line 125 of file SpatialUserObjectFunctor.h.

127 {
128  return evaluateTemplate(node, state);
129 }
Real evaluateTemplate(const SpatialArg &position, const Moose::StateArg &state) const

◆ evaluateDot() [1/6]

virtual DotType Moose::FunctorBase< Real >::evaluateDot ( const ElemArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

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 in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 385 of file MooseFunctor.h.

386  {
387  mooseError("Element time derivative not implemented for functor " + functorName());
388  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateDot() [2/6]

virtual DotType Moose::FunctorBase< Real >::evaluateDot ( const FaceArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
faceSee the FaceArg doxygen
stateSee the StateArg doxygen
Returns
The functor time derivative evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 395 of file MooseFunctor.h.

396  {
397  mooseError("Face time derivative not implemented for functor " + functorName());
398  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateDot() [3/6]

virtual DotType Moose::FunctorBase< Real >::evaluateDot ( const ElemQpArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
qpSee the ElemQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor time derivative evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 405 of file MooseFunctor.h.

406  {
407  mooseError("Element quadrature point time derivative not implemented for functor " +
408  functorName());
409  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateDot() [4/6]

virtual DotType Moose::FunctorBase< Real >::evaluateDot ( const ElemSideQpArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
side_qpSee the ElemSideQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor time derivative evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 416 of file MooseFunctor.h.

417  {
418  mooseError("Element side quadrature point time derivative not implemented for functor " +
419  functorName());
420  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateDot() [5/6]

virtual DotType Moose::FunctorBase< Real >::evaluateDot ( const ElemPointArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

Evaluate the functor time derivative with a given element and point.

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 425 of file MooseFunctor.h.

426  {
427  mooseError("Element-point time derivative not implemented for functor " + functorName());
428  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateDot() [6/6]

virtual DotType Moose::FunctorBase< Real >::evaluateDot ( const NodeArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 430 of file MooseFunctor.h.

431  {
432  mooseError("Time derivative at node not implemented for functor " + functorName());
433  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradDot() [1/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradDot ( const ElemArg ,
const StateArg  
) const
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

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 439 of file MooseFunctor.h.

440  {
441  mooseError("Element gradient-dot not implemented for functor " + functorName());
442  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradDot() [2/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradDot ( const FaceArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
faceSee the FaceArg doxygen
stateSee the StateArg doxygen
Returns
The functor gradient-dot evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 449 of file MooseFunctor.h.

450  {
451  mooseError("Face gradient-dot not implemented for functor " + functorName());
452  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradDot() [3/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradDot ( const ElemQpArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
qpSee the ElemQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor gradient-dot evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 459 of file MooseFunctor.h.

460  {
461  mooseError("Element quadrature point gradient-dot not implemented for functor " +
462  functorName());
463  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradDot() [4/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradDot ( const ElemSideQpArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
side_qpSee the ElemSideQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor gradient-dot evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 470 of file MooseFunctor.h.

471  {
472  mooseError("Element side quadrature point gradient-dot not implemented for functor " +
473  functorName());
474  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradDot() [5/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradDot ( const ElemPointArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

Evaluate the functor gradient-dot with a given element and point.

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 479 of file MooseFunctor.h.

480  {
481  mooseError("Element-point gradient-dot not implemented for functor " + functorName());
482  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradDot() [6/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradDot ( const NodeArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 484 of file MooseFunctor.h.

485  {
486  mooseError("Gradient-dot at node not implemented for functor " + functorName());
487  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradient() [1/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradient ( const ElemArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

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 in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 332 of file MooseFunctor.h.

333  {
334  mooseError("Element gradient not implemented for functor " + functorName());
335  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradient() [2/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradient ( const FaceArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
faceSee the FaceArg doxygen
stateSee the StateArg doxygen
Returns
The functor gradient evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 342 of file MooseFunctor.h.

343  {
344  mooseError("Face gradient not implemented for functor " + functorName());
345  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradient() [3/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradient ( const ElemQpArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
qpSee the ElemQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor gradient evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 352 of file MooseFunctor.h.

353  {
354  mooseError("Element quadrature point gradient not implemented for functor " + functorName());
355  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradient() [4/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradient ( const ElemSideQpArg ,
const StateArg  
) const
inlineprotectedvirtualinherited
Parameters
side_qpSee the ElemSideQpArg doxygen
stateSee the StateArg doxygen
Returns
The functor gradient evaluated at the requested state and space

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 362 of file MooseFunctor.h.

363  {
364  mooseError("Element side quadrature point gradient not implemented for functor " +
365  functorName());
366  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradient() [5/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradient ( const ElemPointArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

Evaluate the functor gradient with a given element and point.

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 371 of file MooseFunctor.h.

372  {
373  mooseError("Element-point gradient not implemented for functor " + functorName());
374  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateGradient() [6/6]

virtual GradientType Moose::FunctorBase< Real >::evaluateGradient ( const NodeArg ,
const StateArg  
) const
inlineprotectedvirtualinherited

Reimplemented in Moose::FunctorEnvelope< Real >, Function, and Postprocessor.

Definition at line 376 of file MooseFunctor.h.

377  {
378  mooseError("Gradient at node not implemented for functor " + functorName());
379  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const MooseFunctorName & functorName() const
Return the functor name.
Definition: MooseFunctor.h:170

◆ evaluateTemplate()

Real SpatialUserObjectFunctor< BaseType >::evaluateTemplate ( const SpatialArg &  position,
const Moose::StateArg libmesh_dbg_varstate 
) const
inherited

Definition at line 76 of file SpatialUserObjectFunctor.h.

78 {
79  mooseAssert(state.state == 0, "We do not currently support evaluating at old states");
80  return this->spatialValue(position.getPoint());
81 }

◆ execute()

template<typename BaseType >
void LayeredAverageBase< BaseType >::execute ( )
overridevirtual

Reimplemented from LayeredIntegralBase< BaseType >.

Definition at line 77 of file LayeredAverageBase.h.

78 {
80 
81  const auto layer = getLayer(_current_elem->vertex_average());
82  _layer_volumes[layer] += volume();
83 }
virtual Real volume() const =0
virtual unsigned int getLayer(const Point &p) const
Helper function to return the layer the point lies in.
Definition: LayeredBase.C:348
virtual void execute() override
std::vector< Real > _layer_volumes
Value of the volume (area for side integrals) for each layer.

◆ finalize()

template<typename BaseType >
void LayeredAverageBase< BaseType >::finalize ( )
overridevirtual

Reimplemented from LayeredIntegralBase< BaseType >.

Definition at line 87 of file LayeredAverageBase.h.

88 {
90 
91  gatherSum(_layer_volumes);
92 
93  // Compute the average for each layer
94  for (const auto i : index_range(_layer_volumes))
95  if (layerHasValue(i))
97 }
virtual void finalize() override
bool layerHasValue(unsigned int layer) const
Whether or not a layer has a value.
Definition: LayeredBase.h:90
virtual Real getLayerValue(unsigned int layer) const
Get the value for a given layer.
Definition: LayeredBase.C:293
void setLayerValue(unsigned int layer, Real value)
Set the value for a particular layer.
Definition: LayeredBase.C:407
std::vector< Real > _layer_volumes
Value of the volume (area for side integrals) for each layer.
auto index_range(const T &sizable)

◆ functorName()

const MooseFunctorName& Moose::FunctorBase< Real >::functorName ( ) const
inlineinherited

Return the functor name.

Definition at line 170 of file MooseFunctor.h.

170 { return _functor_name; }
MooseFunctorName _functor_name
name of the functor
Definition: MooseFunctor.h:564

◆ genericEvaluate()

FunctorReturnType< Real , FET >::type Moose::FunctorBase< Real >::genericEvaluate ( const Space &  r,
const State &  state 
) const
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.

988 {
989  if constexpr (FET == FunctorEvaluationKind::Value)
990  return (*this)(r, state);
991  else if constexpr (FET == FunctorEvaluationKind::Gradient)
992  return gradient(r, state);
993  else if constexpr (FET == FunctorEvaluationKind::Dot)
994  return dot(r, state);
995  else
996  return gradDot(r, state);
997 }
GradientType gradDot(const ElemArg &elem, const StateArg &state) const
Same as their evaluateGradDot overloads with the same arguments but allows for caching implementation...
Definition: MooseFunctor.h:933
DotType dot(const ElemArg &elem, const StateArg &state) const
Same as their evaluateDot overloads with the same arguments but allows for caching implementation...
Definition: MooseFunctor.h:890
GradientType gradient(const ElemArg &elem, const StateArg &state) const
Same as their evaluateGradient overloads with the same arguments but allows for caching implementatio...
Definition: MooseFunctor.h:847

◆ getBounds()

void LayeredBase::getBounds ( )
protectedinherited

Compute bounds, restricted to blocks if given.

Definition at line 414 of file LayeredBase.C.

Referenced by LayeredBase::initialize(), and LayeredBase::LayeredBase().

415 {
416  if (_layer_bounding_blocks.size() == 0)
417  {
418  BoundingBox bounding_box = MeshTools::create_bounding_box(_layered_base_subproblem.mesh());
419  _direction_min = bounding_box.min()(_direction);
420  _direction_max = bounding_box.max()(_direction);
421  }
422  else
423  {
424  _direction_min = std::numeric_limits<Real>::infinity();
425  _direction_max = -std::numeric_limits<Real>::infinity();
426 
428 
429  for (auto & elem_ptr : *mesh.getActiveLocalElementRange())
430  {
431  auto subdomain_id = elem_ptr->subdomain_id();
432 
433  if (std::find(_layer_bounding_blocks.begin(), _layer_bounding_blocks.end(), subdomain_id) ==
435  continue;
436 
437  for (auto & node : elem_ptr->node_ref_range())
438  {
441  }
442  }
443 
444  mesh.comm().min(_direction_min);
445  mesh.comm().max(_direction_max);
446  }
447 }
virtual MooseMesh & mesh()=0
SubProblem & _layered_base_subproblem
Subproblem for the child object.
Definition: LayeredBase.h:152
libMesh::BoundingBox create_bounding_box(const MeshBase &mesh)
MeshBase & mesh
auto max(const L &left, const R &right)
unsigned int _direction
The component direction the layers are going in. We cache this for speed (so we&#39;re not always going t...
Definition: LayeredBase.h:112
std::vector< SubdomainID > _layer_bounding_blocks
List of SubdomainIDs, if given.
Definition: LayeredBase.h:155
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
Real _direction_min
Definition: LayeredBase.h:135
Real _direction_max
Definition: LayeredBase.h:136
auto min(const L &left, const R &right)

◆ getLayer()

unsigned int LayeredBase::getLayer ( const Point &  p) const
virtualinherited

Helper function to return the layer the point lies in.

Parameters
pThe point.
Returns
The layer the Point is found in.

Definition at line 348 of file LayeredBase.C.

Referenced by LayeredExtremumMaterialProperty::execute(), FunctionLayeredIntegral::execute(), and LayeredBase::integralValue().

349 {
350  Real direction_x = p(_direction);
351 
352  if (direction_x < _direction_min)
353  return 0;
354 
355  if (_interval_based)
356  {
357  unsigned int layer =
358  std::floor(((direction_x - _direction_min) / (_direction_max - _direction_min)) *
359  static_cast<Real>(_num_layers));
360 
361  if (layer >= _num_layers)
362  layer = _num_layers - 1;
363 
364  return layer;
365  }
366  else // Figure out what layer we are in from the bounds
367  {
368  // This finds the first entry in the vector that is larger than what we're looking for
369  std::vector<Real>::const_iterator one_higher =
370  std::upper_bound(_layer_bounds.begin(), _layer_bounds.end(), direction_x);
371 
372  if (one_higher == _layer_bounds.end())
373  {
374  return static_cast<unsigned int>(
375  _layer_bounds.size() -
376  2); // Just return the last layer. -2 because layers are "in-between" bounds
377  }
378  else if (one_higher == _layer_bounds.begin())
379  return 0; // Return the first layer
380  else
381  // The -1 is because the interval that we fall in is just _before_ the number that is bigger
382  // (which is what we found
383  return static_cast<unsigned int>(std::distance(_layer_bounds.begin(), one_higher - 1));
384  }
385 }
bool _interval_based
Whether or not this object is based on equally spaced intervals or "bounds".
Definition: LayeredBase.h:115
unsigned int _direction
The component direction the layers are going in. We cache this for speed (so we&#39;re not always going t...
Definition: LayeredBase.h:112
unsigned int _num_layers
Number of layers to split the mesh into.
Definition: LayeredBase.h:118
std::vector< Real > _layer_bounds
The boundaries of the layers.
Definition: LayeredBase.h:121
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _direction_min
Definition: LayeredBase.h:135
Real _direction_max
Definition: LayeredBase.h:136

◆ getLayerCenters()

const std::vector<Real>& LayeredBase::getLayerCenters ( ) const
inlineinherited

Get the center coordinates for the layers (along given direction)

Definition at line 67 of file LayeredBase.h.

Referenced by NearestPointBase< LayeredSideDiffusiveFluxAverage, SideIntegralVariableUserObject >::spatialPoints().

67 { return _layer_centers; }
std::vector< Real > _layer_centers
center coordinates of each layer
Definition: LayeredBase.h:133

◆ getLayerValue()

Real LayeredBase::getLayerValue ( unsigned int  layer) const
virtualinherited

Get the value for a given layer.

Parameters
layerThe layer index
Returns
The value for the given layer

Definition at line 293 of file LayeredBase.C.

Referenced by LayeredExtremumMaterialProperty::execute(), FunctionLayeredIntegral::execute(), LayeredExtremumMaterialProperty::finalize(), LayeredBase::finalize(), LayeredExtremumMaterialProperty::threadJoin(), and LayeredBase::threadJoin().

294 {
295  if (layer >= _layer_values.size())
296  mooseError("Layer '", layer, "' not found in '", _layered_base_name, "'.");
297  return _layer_values[layer];
298 }
std::vector< Real > & _layer_values
Value of the integral for each layer.
Definition: LayeredBase.h:139
std::string _layered_base_name
Name of this object.
Definition: LayeredBase.h:103
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302

◆ gradDot() [1/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradDot ( const ElemArg elem,
const StateArg state 
) const
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.

934 {
935  return evaluateGradDot(elem, state);
936 }
virtual GradientType evaluateGradDot(const ElemArg &, const StateArg &) const
Evaluate the functor gradient-dot with a given element.
Definition: MooseFunctor.h:439

◆ gradDot() [2/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradDot ( const FaceArg face,
const StateArg state 
) const
inherited

Definition at line 940 of file MooseFunctor.h.

941 {
942  checkFace(face);
943  return evaluateGradDot(face, state);
944 }
void checkFace(const Moose::FaceArg &face) const
Examines the incoming face argument.
Definition: MooseFunctor.h:732
virtual GradientType evaluateGradDot(const ElemArg &, const StateArg &) const
Evaluate the functor gradient-dot with a given element.
Definition: MooseFunctor.h:439

◆ gradDot() [3/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradDot ( const ElemQpArg qp,
const StateArg state 
) const
inherited

Definition at line 948 of file MooseFunctor.h.

949 {
950  return evaluateGradDot(elem_qp, state);
951 }
virtual GradientType evaluateGradDot(const ElemArg &, const StateArg &) const
Evaluate the functor gradient-dot with a given element.
Definition: MooseFunctor.h:439

◆ gradDot() [4/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradDot ( const ElemSideQpArg qp,
const StateArg state 
) const
inherited

Definition at line 955 of file MooseFunctor.h.

956 {
957  return evaluateGradDot(elem_side_qp, state);
958 }
virtual GradientType evaluateGradDot(const ElemArg &, const StateArg &) const
Evaluate the functor gradient-dot with a given element.
Definition: MooseFunctor.h:439

◆ gradDot() [5/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradDot ( const ElemPointArg elem_point,
const StateArg state 
) const
inherited

Definition at line 962 of file MooseFunctor.h.

963 {
964  return evaluateGradDot(elem_point, state);
965 }
virtual GradientType evaluateGradDot(const ElemArg &, const StateArg &) const
Evaluate the functor gradient-dot with a given element.
Definition: MooseFunctor.h:439

◆ gradDot() [6/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradDot ( const NodeArg node,
const StateArg state 
) const
inherited

Definition at line 969 of file MooseFunctor.h.

970 {
971  return evaluateGradDot(node, state);
972 }
virtual GradientType evaluateGradDot(const ElemArg &, const StateArg &) const
Evaluate the functor gradient-dot with a given element.
Definition: MooseFunctor.h:439

◆ gradient() [1/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradient ( const ElemArg elem,
const StateArg state 
) const
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.

848 {
849  return evaluateGradient(elem, state);
850 }
virtual GradientType evaluateGradient(const ElemArg &, const StateArg &) const
Evaluate the functor gradient with a given element.
Definition: MooseFunctor.h:332

◆ gradient() [2/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradient ( const FaceArg face,
const StateArg state 
) const
inherited

Definition at line 854 of file MooseFunctor.h.

855 {
856  checkFace(face);
857  return evaluateGradient(face, state);
858 }
void checkFace(const Moose::FaceArg &face) const
Examines the incoming face argument.
Definition: MooseFunctor.h:732
virtual GradientType evaluateGradient(const ElemArg &, const StateArg &) const
Evaluate the functor gradient with a given element.
Definition: MooseFunctor.h:332

◆ gradient() [3/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradient ( const ElemQpArg qp,
const StateArg state 
) const
inherited

Definition at line 862 of file MooseFunctor.h.

863 {
864  return evaluateGradient(elem_qp, state);
865 }
virtual GradientType evaluateGradient(const ElemArg &, const StateArg &) const
Evaluate the functor gradient with a given element.
Definition: MooseFunctor.h:332

◆ gradient() [4/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradient ( const ElemSideQpArg qp,
const StateArg state 
) const
inherited

Definition at line 869 of file MooseFunctor.h.

870 {
871  return evaluateGradient(elem_side_qp, state);
872 }
virtual GradientType evaluateGradient(const ElemArg &, const StateArg &) const
Evaluate the functor gradient with a given element.
Definition: MooseFunctor.h:332

◆ gradient() [5/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradient ( const ElemPointArg elem_point,
const StateArg state 
) const
inherited

Definition at line 876 of file MooseFunctor.h.

877 {
878  return evaluateGradient(elem_point, state);
879 }
virtual GradientType evaluateGradient(const ElemArg &, const StateArg &) const
Evaluate the functor gradient with a given element.
Definition: MooseFunctor.h:332

◆ gradient() [6/6]

FunctorBase< Real >::GradientType Moose::FunctorBase< Real >::gradient ( const NodeArg node,
const StateArg state 
) const
inherited

Definition at line 883 of file MooseFunctor.h.

884 {
885  return evaluateGradient(node, state);
886 }
virtual GradientType evaluateGradient(const ElemArg &, const StateArg &) const
Evaluate the functor gradient with a given element.
Definition: MooseFunctor.h:332

◆ hasBlocks()

bool SpatialUserObjectFunctor< BaseType >::hasBlocks ( SubdomainID  sub) const
overridevirtualinherited

Returns whether the functor is defined on this block.

Reimplemented from Moose::FunctorBase< Real >.

Definition at line 133 of file SpatialUserObjectFunctor.h.

134 {
135  if constexpr (std::is_base_of<BlockRestrictable, UserObjectType>::value)
136  return UserObjectType::hasBlocks(sub_id);
137  else
139 }
virtual bool hasBlocks(SubdomainID) const
Returns whether the functor is defined on this block.
Definition: MooseFunctor.h:237

◆ hasFaceSide()

bool Moose::FunctorBase< Real >::hasFaceSide ( const FaceInfo fi,
const bool  fi_elem_side 
) const
overridevirtualinherited

Implements FaceArgInterface.

Reimplemented in Moose::FunctorEnvelope< Real >, InternalSideIntegralVariablePostprocessor, InterfaceIntegralVariableValuePostprocessor, SideIntegralVariablePostprocessor, SideIntegralFunctorPostprocessorTempl< is_ad >, and SideIntegralFunctorPostprocessorTempl< false >.

Definition at line 976 of file MooseFunctor.h.

977 {
978  if (fi_elem_side)
979  return hasBlocks(fi.elem().subdomain_id());
980  else
981  return fi.neighborPtr() && hasBlocks(fi.neighbor().subdomain_id());
982 }
virtual bool hasBlocks(SubdomainID) const
Returns whether the functor is defined on this block.
Definition: MooseFunctor.h:237
const Elem & elem() const
Definition: FaceInfo.h:81
const Elem * neighborPtr() const
Definition: FaceInfo.h:84
const Elem & neighbor() const
Definition: FaceInfo.h:216

◆ initialize()

template<typename BaseType >
void LayeredAverageBase< BaseType >::initialize ( )
overridevirtual

Reimplemented from LayeredIntegralBase< BaseType >.

Definition at line 67 of file LayeredAverageBase.h.

68 {
70 
71  for (auto & vol : _layer_volumes)
72  vol = 0.0;
73 }
virtual void initialize() override
std::vector< Real > _layer_volumes
Value of the volume (area for side integrals) for each layer.

◆ integralValue()

Real LayeredBase::integralValue ( const Point &  p) const
virtualinherited

Given a Point return the integral value associated with the layer that point falls in.

Parameters
pThe point to look for in the layers.

Definition at line 182 of file LayeredBase.C.

Referenced by LayeredExtremumMaterialProperty::spatialValue(), LayeredIntegralBase< ElementIntegralVariableUserObject >::spatialValue(), and FunctionLayeredIntegral::spatialValue().

183 {
184  unsigned int layer = getLayer(p);
185 
186  int higher_layer = -1;
187  int lower_layer = -1;
188 
189  for (unsigned int i = layer; i < _layer_values.size(); i++)
190  {
191  if (_layer_has_value[i])
192  {
193  higher_layer = i;
194  break;
195  }
196  }
197 
198  for (int i = layer - 1; i >= 0; i--)
199  {
200  if (_layer_has_value[i])
201  {
202  lower_layer = i;
203  break;
204  }
205  }
206 
207  if (higher_layer == -1 && lower_layer == -1)
208  return 0; // TODO: We could error here but there are startup dependency problems
209 
210  switch (_sample_type)
211  {
212  case 0: // direct
213  {
214  if (higher_layer == -1) // Didn't find a higher layer
215  return _layer_values[lower_layer];
216 
217  if (unsigned(higher_layer) == layer) // constant in a layer
218  return _layer_values[higher_layer];
219 
220  if (lower_layer == -1) // Didn't find a lower layer
221  return _layer_values[higher_layer];
222 
223  return (_layer_values[higher_layer] + _layer_values[lower_layer]) / 2;
224  }
225  case 1: // interpolate
226  {
227  if (higher_layer == -1) // Didn't find a higher layer
228  return _layer_values[lower_layer];
229 
230  Real layer_length = (_direction_max - _direction_min) / _num_layers;
231  Real lower_coor = _direction_min;
232  Real lower_value = 0;
233  if (lower_layer != -1)
234  {
235  lower_coor += (lower_layer + 1) * layer_length;
236  lower_value = _layer_values[lower_layer];
237  }
238 
239  // Interpolate between the two points
240  Real higher_value = _layer_values[higher_layer];
241 
242  // Linear interpolation
243  return lower_value +
244  (higher_value - lower_value) * (p(_direction) - lower_coor) / layer_length;
245  }
246  case 2: // average
247  {
248  Real total = 0;
249  unsigned int num_values = 0;
250 
251  if (higher_layer != -1)
252  {
253  for (const auto i : make_range(_average_radius))
254  {
255  int current_layer = higher_layer + i;
256 
257  if ((size_t)current_layer >= _layer_values.size())
258  break;
259 
260  if (_layer_has_value[current_layer])
261  {
262  total += _layer_values[current_layer];
263  num_values += 1;
264  }
265  }
266  }
267 
268  if (lower_layer != -1)
269  {
270  for (const auto i : make_range(_average_radius))
271  {
272  int current_layer = lower_layer - i;
273 
274  if (current_layer < 0)
275  break;
276 
277  if (_layer_has_value[current_layer])
278  {
279  total += _layer_values[current_layer];
280  num_values += 1;
281  }
282  }
283  }
284 
285  return total / num_values;
286  }
287  default:
288  mooseError("Unknown sample type!");
289  }
290 }
std::vector< Real > & _layer_values
Value of the integral for each layer.
Definition: LayeredBase.h:139
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
std::vector< int > & _layer_has_value
Whether or not each layer has had any value summed into it.
Definition: LayeredBase.h:142
unsigned int _direction
The component direction the layers are going in. We cache this for speed (so we&#39;re not always going t...
Definition: LayeredBase.h:112
unsigned int _average_radius
How many layers both above and below the found layer will be used in the average. ...
Definition: LayeredBase.h:127
virtual unsigned int getLayer(const Point &p) const
Helper function to return the layer the point lies in.
Definition: LayeredBase.C:348
unsigned int _num_layers
Number of layers to split the mesh into.
Definition: LayeredBase.h:118
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
Real _direction_min
Definition: LayeredBase.h:135
unsigned int _sample_type
How to sample the values.
Definition: LayeredBase.h:124
Real _direction_max
Definition: LayeredBase.h:136

◆ isConstant()

virtual bool Moose::FunctorBase< Real >::isConstant ( ) const
inlinevirtualinherited

Returns true if this functor is a constant.

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 260 of file MooseFunctor.h.

260 { return false; }

◆ isExtrapolatedBoundaryFace()

virtual bool Moose::FunctorBase< Real >::isExtrapolatedBoundaryFace ( const FaceInfo ,
const Elem *  ,
const StateArg  
) const
inlinevirtualinherited

Returns whether this (sided) face is an extrapolated boundary face for this functor.

Reimplemented in Moose::FunctorEnvelope< Real >.

Definition at line 247 of file MooseFunctor.h.

248  {
249  mooseError("not implemented");
250  }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302

◆ isInternalFace()

bool Moose::FunctorBase< Real >::isInternalFace ( const FaceInfo fi) const
inherited

Returns true if the face is an internal face.

Definition at line 569 of file MooseFunctor.h.

570 {
571  if (!fi.neighborPtr())
572  return false;
573 
574  return hasBlocks(fi.elem().subdomain_id()) && hasBlocks(fi.neighborPtr()->subdomain_id());
575 }
virtual bool hasBlocks(SubdomainID) const
Returns whether the functor is defined on this block.
Definition: MooseFunctor.h:237
const Elem & elem() const
Definition: FaceInfo.h:81
const Elem * neighborPtr() const
Definition: FaceInfo.h:84

◆ jacobianSetup()

void Moose::FunctorBase< Real >::jacobianSetup ( )
overridevirtualinherited

Implements Moose::FunctorAbstract.

Reimplemented in Function.

Definition at line 831 of file MooseFunctor.h.

832 {
834  clearCacheData();
835 }
const ExecFlagType EXEC_NONLINEAR
Definition: Moose.C:31
void clearCacheData()
clear cache data
Definition: MooseFunctor.h:789
std::set< ExecFlagType > _clearance_schedule
How often to clear the material property cache.
Definition: MooseFunctor.h:514

◆ layerHasValue()

bool LayeredBase::layerHasValue ( unsigned int  layer) const
inlineprotectedinherited

Whether or not a layer has a value.

Definition at line 90 of file LayeredBase.h.

90 { return _layer_has_value[layer]; }
std::vector< int > & _layer_has_value
Whether or not each layer has had any value summed into it.
Definition: LayeredBase.h:142

◆ operator()() [1/6]

FunctorBase< Real >::ValueType Moose::FunctorBase< Real >::operator() ( const ElemArg elem,
const StateArg state 
) const
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.

598 {
599  if (_always_evaluate)
600  return evaluate(elem, state);
601 
602  mooseAssert(state.state == 0,
603  "Cached evaluations are only currently supported for the current state.");
604 
605  return queryFVArgCache(_elem_arg_to_value, elem);
606 }
ValueType queryFVArgCache(std::map< SpaceArg, ValueType > &cache_data, const SpaceArg &space) const
check a finite volume spatial argument cache and if invalid then evaluate
Definition: MooseFunctor.h:580
virtual ValueType evaluate(const ElemArg &elem, const StateArg &state) const=0
Evaluate the functor with a given element.
std::map< ElemArg, ValueType > _elem_arg_to_value
Map from element arguments to their cached evaluations.
Definition: MooseFunctor.h:555
bool _always_evaluate
Boolean to check if we always need evaluation.
Definition: MooseFunctor.h:517

◆ operator()() [2/6]

FunctorBase< Real >::ValueType Moose::FunctorBase< Real >::operator() ( const FaceArg face,
const StateArg state 
) const
inherited

Definition at line 610 of file MooseFunctor.h.

611 {
612  checkFace(face_in);
613 
614  if (_always_evaluate)
615  return evaluate(face_in, state);
616 
617  mooseAssert(state.state == 0,
618  "Cached evaluations are only currently supported for the current state.");
619 
620  return queryFVArgCache(_face_arg_to_value, face_in);
621 }
std::map< FaceArg, ValueType > _face_arg_to_value
Map from face arguments to their cached evaluations.
Definition: MooseFunctor.h:558
void checkFace(const Moose::FaceArg &face) const
Examines the incoming face argument.
Definition: MooseFunctor.h:732
ValueType queryFVArgCache(std::map< SpaceArg, ValueType > &cache_data, const SpaceArg &space) const
check a finite volume spatial argument cache and if invalid then evaluate
Definition: MooseFunctor.h:580
virtual ValueType evaluate(const ElemArg &elem, const StateArg &state) const=0
Evaluate the functor with a given element.
bool _always_evaluate
Boolean to check if we always need evaluation.
Definition: MooseFunctor.h:517

◆ operator()() [3/6]

FunctorBase< Real >::ValueType Moose::FunctorBase< Real >::operator() ( const ElemQpArg qp,
const StateArg state 
) const
inherited

Definition at line 656 of file MooseFunctor.h.

657 {
658  if (_always_evaluate)
659  return evaluate(elem_qp, state);
660 
661  const auto elem_id = elem_qp.elem->id();
662  if (elem_id != _current_qp_map_key)
663  {
664  _current_qp_map_key = elem_id;
666  }
667  auto & qp_data = *_current_qp_map_value;
668  const auto qp = elem_qp.qp;
669  const auto * const qrule = elem_qp.qrule;
670  mooseAssert(qrule, "qrule must be non-null");
671 
672  return queryQpCache(qp, *qrule, qp_data, elem_qp, state);
673 }
dof_id_type _current_qp_map_key
Current key for qp map cache.
Definition: MooseFunctor.h:523
std::vector< std::pair< bool, ValueType > > * _current_qp_map_value
Current value for qp map cache.
Definition: MooseFunctor.h:526
ValueType queryQpCache(unsigned int qp, const libMesh::QBase &qrule, std::vector< std::pair< bool, Real >> &qp_cache_data, const SpaceArg &space, const StateArg &state) const
check a qp cache and if invalid then evaluate
Definition: MooseFunctor.h:626
virtual ValueType evaluate(const ElemArg &elem, const StateArg &state) const=0
Evaluate the functor with a given element.
bool _always_evaluate
Boolean to check if we always need evaluation.
Definition: MooseFunctor.h:517
std::unordered_map< dof_id_type, std::vector< std::pair< bool, ValueType > > > _qp_to_value
Cached element quadrature point functor property evaluations.
Definition: MooseFunctor.h:533

◆ operator()() [4/6]

FunctorBase< Real >::ValueType Moose::FunctorBase< Real >::operator() ( const ElemSideQpArg qp,
const StateArg state 
) const
inherited

Definition at line 677 of file MooseFunctor.h.

678 {
679  if (_always_evaluate)
680  return evaluate(elem_side_qp, state);
681 
682  const Elem * const elem = elem_side_qp.elem;
683  mooseAssert(elem, "elem must be non-null");
684  const auto elem_id = elem->id();
685  if (elem_id != _current_side_qp_map_key)
686  {
687  _current_side_qp_map_key = elem_id;
689  }
690  auto & side_qp_data = *_current_side_qp_map_value;
691  const auto side = elem_side_qp.side;
692  const auto qp = elem_side_qp.qp;
693  const auto * const qrule = elem_side_qp.qrule;
694  mooseAssert(qrule, "qrule must be non-null");
695 
696  // Check and see whether we even have sized for this side
697  if (side >= side_qp_data.size())
698  side_qp_data.resize(elem->n_sides());
699 
700  // Ok we were sized enough for our side
701  auto & qp_data = side_qp_data[side];
702  return queryQpCache(qp, *qrule, qp_data, elem_side_qp, state);
703 }
std::unordered_map< dof_id_type, std::vector< std::vector< std::pair< bool, ValueType > > > > _side_qp_to_value
Cached element quadrature point functor property evaluations.
Definition: MooseFunctor.h:552
ValueType queryQpCache(unsigned int qp, const libMesh::QBase &qrule, std::vector< std::pair< bool, Real >> &qp_cache_data, const SpaceArg &space, const StateArg &state) const
check a qp cache and if invalid then evaluate
Definition: MooseFunctor.h:626
virtual ValueType evaluate(const ElemArg &elem, const StateArg &state) const=0
Evaluate the functor with a given element.
dof_id_type _current_side_qp_map_key
Current key for side-qp map cache.
Definition: MooseFunctor.h:539
std::vector< std::vector< std::pair< bool, ValueType > > > * _current_side_qp_map_value
Current value for side-qp map cache.
Definition: MooseFunctor.h:542
bool _always_evaluate
Boolean to check if we always need evaluation.
Definition: MooseFunctor.h:517

◆ operator()() [5/6]

FunctorBase< Real >::ValueType Moose::FunctorBase< Real >::operator() ( const ElemPointArg elem_point,
const StateArg state 
) const
inherited

Definition at line 707 of file MooseFunctor.h.

708 {
709  return evaluate(elem_point, state);
710 }
virtual ValueType evaluate(const ElemArg &elem, const StateArg &state) const=0
Evaluate the functor with a given element.

◆ operator()() [6/6]

FunctorBase< Real >::ValueType Moose::FunctorBase< Real >::operator() ( const NodeArg node,
const StateArg state 
) const
inherited

Definition at line 724 of file MooseFunctor.h.

725 {
726  mooseAssert(node.subdomain_ids, "Subdomain IDs must be supplied to the node argument");
727  return evaluate(node, state);
728 }
virtual ValueType evaluate(const ElemArg &elem, const StateArg &state) const=0
Evaluate the functor with a given element.

◆ residualSetup()

void Moose::FunctorBase< Real >::residualSetup ( )
overridevirtualinherited

Implements Moose::FunctorAbstract.

Reimplemented in Function.

Definition at line 823 of file MooseFunctor.h.

824 {
825  if (_clearance_schedule.count(EXEC_LINEAR))
826  clearCacheData();
827 }
const ExecFlagType EXEC_LINEAR
Definition: Moose.C:29
void clearCacheData()
clear cache data
Definition: MooseFunctor.h:789
std::set< ExecFlagType > _clearance_schedule
How often to clear the material property cache.
Definition: MooseFunctor.h:514

◆ setCacheClearanceSchedule()

void Moose::FunctorBase< Real >::setCacheClearanceSchedule ( const std::set< ExecFlagType > &  clearance_schedule)
inherited

Set how often to clear the functor evaluation cache.

Definition at line 714 of file MooseFunctor.h.

715 {
716  if (clearance_schedule.count(EXEC_ALWAYS))
717  _always_evaluate = true;
718 
719  _clearance_schedule = clearance_schedule;
720 }
const ExecFlagType EXEC_ALWAYS
Definition: Moose.C:47
bool _always_evaluate
Boolean to check if we always need evaluation.
Definition: MooseFunctor.h:517
std::set< ExecFlagType > _clearance_schedule
How often to clear the material property cache.
Definition: MooseFunctor.h:514

◆ setLayerValue()

void LayeredBase::setLayerValue ( unsigned int  layer,
Real  value 
)
protectedinherited

Set the value for a particular layer.

Parameters
layerThe layer you are setting the value for
valueThe value to set

Definition at line 407 of file LayeredBase.C.

Referenced by LayeredExtremumMaterialProperty::execute(), FunctionLayeredIntegral::execute(), LayeredExtremumMaterialProperty::finalize(), LayeredBase::finalize(), LayeredExtremumMaterialProperty::initialize(), LayeredExtremumMaterialProperty::threadJoin(), and LayeredBase::threadJoin().

408 {
409  _layer_values[layer] = value;
410  _layer_has_value[layer] = true;
411 }
std::vector< Real > & _layer_values
Value of the integral for each layer.
Definition: LayeredBase.h:139
std::vector< int > & _layer_has_value
Whether or not each layer has had any value summed into it.
Definition: LayeredBase.h:142
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

◆ spatialPoints()

const std::vector< Point > LayeredIntegralBase< BaseType >::spatialPoints ( ) const
overridevirtualinherited

Definition at line 101 of file LayeredIntegralBase.h.

102 {
103  std::vector<Point> points;
104 
105  for (const auto & l : _layer_centers)
106  {
107  Point pt(0.0, 0.0, 0.0);
108  pt(_direction) = l;
109  points.push_back(pt);
110  }
111 
112  return points;
113 }
std::vector< Real > _layer_centers
center coordinates of each layer
Definition: LayeredBase.h:133
unsigned int _direction
The component direction the layers are going in. We cache this for speed (so we&#39;re not always going t...
Definition: LayeredBase.h:112

◆ spatialValue()

virtual Real LayeredIntegralBase< BaseType >::spatialValue ( const Point &  p) const
inlineoverridevirtualinherited

Given a Point return the integral value associated with the layer that point falls in.

Parameters
pThe point to look for in the layers.

Definition at line 32 of file LayeredIntegralBase.h.

32 { return integralValue(p); }
virtual Real integralValue(const Point &p) const
Given a Point return the integral value associated with the layer that point falls in...
Definition: LayeredBase.C:182

◆ supportsElemSideQpArg()

virtual bool SpatialUserObjectFunctor< BaseType >::supportsElemSideQpArg ( ) const
inlinefinaloverrideprotectedvirtualinherited

Whether this functor supports evaluation with ElemSideQpArg.

Implements Moose::FunctorBase< Real >.

Definition at line 46 of file SpatialUserObjectFunctor.h.

46 { return true; }

◆ supportsFaceArg()

virtual bool SpatialUserObjectFunctor< BaseType >::supportsFaceArg ( ) const
inlinefinaloverrideprotectedvirtualinherited

Whether this functor supports evaluation with FaceArg.

Implements Moose::FunctorBase< Real >.

Definition at line 45 of file SpatialUserObjectFunctor.h.

45 { return true; }

◆ threadJoin()

template<typename BaseType >
void LayeredAverageBase< BaseType >::threadJoin ( const UserObject y)
overridevirtual

Reimplemented from LayeredIntegralBase< BaseType >.

Definition at line 101 of file LayeredAverageBase.h.

102 {
104  const auto & lsa = static_cast<const LayeredAverageBase<BaseType> &>(y);
105  for (const auto i : index_range(_layer_volumes))
106  if (lsa.layerHasValue(i))
107  _layer_volumes[i] += lsa._layer_volumes[i];
108 }
Base class for computing layered averages.
virtual void threadJoin(const UserObject &y) override
std::vector< Real > _layer_volumes
Value of the volume (area for side integrals) for each layer.
auto index_range(const T &sizable)

◆ timestepSetup()

void Moose::FunctorBase< Real >::timestepSetup ( )
overridevirtualinherited

Implements Moose::FunctorAbstract.

Reimplemented in Function, NumNonlinearIterations, and MemoryUsage.

Definition at line 815 of file MooseFunctor.h.

816 {
818  clearCacheData();
819 }
const ExecFlagType EXEC_TIMESTEP_BEGIN
Definition: Moose.C:35
void clearCacheData()
clear cache data
Definition: MooseFunctor.h:789
std::set< ExecFlagType > _clearance_schedule
How often to clear the material property cache.
Definition: MooseFunctor.h:514

◆ validParams()

template<typename BaseType >
InputParameters LayeredAverageBase< BaseType >::validParams ( )
static

Definition at line 52 of file LayeredAverageBase.h.

Referenced by LayeredSideAverageBase< SideIntegralVariableUserObject >::validParams(), and LayeredVolumeAverageBase< ElementIntegralVariableUserObject >::validParams().

53 {
55  return params;
56 }
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
static InputParameters validParams()

◆ volume()

template<typename BaseType>
virtual Real LayeredAverageBase< BaseType >::volume ( ) const
protectedpure virtual

Member Data Documentation

◆ _average_radius

unsigned int LayeredBase::_average_radius
protectedinherited

How many layers both above and below the found layer will be used in the average.

Definition at line 127 of file LayeredBase.h.

Referenced by LayeredBase::integralValue().

◆ _cumulative

bool LayeredBase::_cumulative
protectedinherited

Whether the values are cumulative over the layers.

Definition at line 145 of file LayeredBase.h.

Referenced by LayeredExtremumMaterialProperty::finalize(), LayeredBase::finalize(), and LayeredBase::LayeredBase().

◆ _direction

unsigned int LayeredBase::_direction
protectedinherited

The component direction the layers are going in. We cache this for speed (so we're not always going through the MooseEnum)

Definition at line 112 of file LayeredBase.h.

Referenced by LayeredBase::direction(), LayeredBase::getBounds(), LayeredBase::getLayer(), LayeredBase::integralValue(), LayeredExtremumMaterialProperty::spatialPoints(), and FunctionLayeredIntegral::spatialPoints().

◆ _direction_enum

MooseEnum LayeredBase::_direction_enum
protectedinherited

The MooseEnum direction the layers are going in.

Definition at line 109 of file LayeredBase.h.

◆ _direction_max

Real LayeredBase::_direction_max
protectedinherited

◆ _direction_min

Real LayeredBase::_direction_min
protectedinherited

◆ _interval_based

bool LayeredBase::_interval_based
protectedinherited

Whether or not this object is based on equally spaced intervals or "bounds".

Definition at line 115 of file LayeredBase.h.

Referenced by LayeredBase::computeLayerCenters(), LayeredBase::getLayer(), and LayeredBase::LayeredBase().

◆ _layer_bounds

std::vector<Real> LayeredBase::_layer_bounds
protectedinherited

The boundaries of the layers.

Definition at line 121 of file LayeredBase.h.

Referenced by LayeredBase::computeLayerCenters(), LayeredBase::getLayer(), and LayeredBase::LayeredBase().

◆ _layer_centers

std::vector<Real> LayeredBase::_layer_centers
protectedinherited

◆ _layer_has_value

std::vector<int>& LayeredBase::_layer_has_value
protectedinherited

◆ _layer_values

std::vector<Real>& LayeredBase::_layer_values
protectedinherited

◆ _layer_volumes

template<typename BaseType>
std::vector<Real> LayeredAverageBase< BaseType >::_layer_volumes
protected

Value of the volume (area for side integrals) for each layer.

Definition at line 42 of file LayeredAverageBase.h.

Referenced by LayeredAverageBase< ElementIntegralVariableUserObject >::LayeredAverageBase(), and LayeredAverageBase< ElementIntegralVariableUserObject >::threadJoin().

◆ _layered_base_name

std::string LayeredBase::_layered_base_name
protectedinherited

Name of this object.

Definition at line 103 of file LayeredBase.h.

Referenced by LayeredBase::getLayerValue().

◆ _layered_base_params

const InputParameters& LayeredBase::_layered_base_params
protectedinherited

Params for this object.

Definition at line 106 of file LayeredBase.h.

Referenced by LayeredBase::LayeredBase().

◆ _num_layers

unsigned int LayeredBase::_num_layers
protectedinherited

◆ _positive_cumulative_direction

const bool LayeredBase::_positive_cumulative_direction
protectedinherited

Whether the cumulative values should be summed in the positive or negative direction.

Definition at line 148 of file LayeredBase.h.

Referenced by LayeredExtremumMaterialProperty::finalize(), and LayeredBase::finalize().

◆ _sample_type

unsigned int LayeredBase::_sample_type
protectedinherited

How to sample the values.

Definition at line 124 of file LayeredBase.h.

Referenced by LayeredBase::integralValue(), and LayeredBase::LayeredBase().

◆ _using_displaced_mesh

bool LayeredBase::_using_displaced_mesh
protectedinherited

true if this object operates on the displaced mesh, otherwise false

Definition at line 130 of file LayeredBase.h.

Referenced by LayeredBase::initialize().


The documentation for this class was generated from the following file: