https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
LayeredFlowAreaChange Class Reference

This layered user object computes the change in cross sectional area of a flow channel. More...

#include <LayeredFlowAreaChange.h>

Inheritance diagram for LayeredFlowAreaChange:
[legend]

Public Types

typedef FunctorBase< Real > FunctorType
 
typedef Real ValueType
 
typedef typename FunctorReturnType< Real, FunctorEvaluationKind::Gradient >::type GradientType
 
typedef ValueType DotType
 

Public Member Functions

 LayeredFlowAreaChange (const InputParameters &parameters)
 
virtual Real spatialValue (const Point &p) const override
 Given a Point return the integral value associated with the layer that point falls in.
 
virtual void initialize () override
 
virtual void execute () override
 
virtual void finalize () override
 
virtual void threadJoin (const UserObject &y) override
 
virtual Real computeIntegral () override
 
virtual bool hasBlocks (SubdomainID sub) const override
 
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
 
const MooseFunctorName & functorName () const
 
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)
 
virtual bool isExtrapolatedBoundaryFace (const FaceInfo &, const Elem *, const StateArg &) const
 
virtual bool isExtrapolatedBoundaryFace (const FaceInfo &, const Elem *, const StateArg &) const
 
bool isInternalFace (const FaceInfo &) const
 
virtual bool isConstant () const
 
virtual bool hasFaceSide (const FaceInfo &fi, const bool fi_elem_side) const override
 
void checkFace (const Moose::FaceArg &face) const
 
ValueType operator() (const ElemArg &elem, const StateArg &state) const
 
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
 
ValueType operator() (const ElemArg &elem, const StateArg &state) const
 
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
 
ValueType operator() (const ElemArg &elem, const StateArg &state) const
 
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
 
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
 
GradientType gradient (const ElemArg &elem, const StateArg &state) const
 
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
 
GradientType gradient (const ElemArg &elem, const StateArg &state) const
 
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
 
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
 
DotType dot (const ElemArg &elem, const StateArg &state) const
 
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
 
DotType dot (const ElemArg &elem, const StateArg &state) const
 
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
 
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
 
GradientType gradDot (const ElemArg &elem, const StateArg &state) const
 
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
 
GradientType gradDot (const ElemArg &elem, const StateArg &state) const
 
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
 
virtual Real integralValue (const Point &p) const
 
virtual Real getLayerValue (unsigned int layer) const
 
virtual unsigned int getLayer (const Point &p) const
 
const std::vector< Real > & getLayerCenters () const
 
unsigned int direction () const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Types

typedef Moose::ElemArg ElemArg
 
typedef Moose::ElemQpArg ElemQpArg
 
typedef Moose::ElemSideQpArg ElemSideQpArg
 
typedef Moose::FaceArg FaceArg
 
typedef Moose::ElemPointArg ElemPointArg
 
typedef Moose::NodeArg NodeArg
 

Protected Member Functions

virtual Real computeQpIntegral () override
 
virtual Real evaluate (const ElemArg &elem, const Moose::StateArg &state) const override
 
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
 
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
 
virtual Real evaluate (const NodeArg &node, const Moose::StateArg &state) const override final
 
virtual bool supportsFaceArg () const override final
 
virtual bool supportsElemSideQpArg () const override final
 
virtual GradientType evaluateGradient (const ElemArg &, const StateArg &) const
 
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
 
virtual GradientType evaluateGradient (const NodeArg &, const StateArg &) const
 
virtual GradientType evaluateGradient (const ElemArg &, const StateArg &) const
 
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
 
virtual GradientType evaluateGradient (const NodeArg &, const StateArg &) const
 
virtual GradientType evaluateGradient (const ElemArg &, const StateArg &) const
 
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
 
virtual GradientType evaluateGradient (const NodeArg &, const StateArg &) const
 
virtual DotType evaluateDot (const ElemArg &, const StateArg &) const
 
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
 
virtual DotType evaluateDot (const NodeArg &, const StateArg &) const
 
virtual DotType evaluateDot (const ElemArg &, const StateArg &) const
 
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
 
virtual DotType evaluateDot (const NodeArg &, const StateArg &) const
 
virtual DotType evaluateDot (const ElemArg &, const StateArg &) const
 
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
 
virtual DotType evaluateDot (const NodeArg &, const StateArg &) const
 
virtual GradientType evaluateGradDot (const ElemArg &, const StateArg &) const
 
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
 
virtual GradientType evaluateGradDot (const NodeArg &, const StateArg &) const
 
virtual GradientType evaluateGradDot (const ElemArg &, const StateArg &) const
 
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
 
virtual GradientType evaluateGradDot (const NodeArg &, const StateArg &) const
 
virtual GradientType evaluateGradDot (const ElemArg &, const StateArg &) const
 
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
 
virtual GradientType evaluateGradDot (const NodeArg &, const StateArg &) const
 
void setLayerValue (unsigned int layer, Real value)
 
bool layerHasValue (unsigned int layer) const
 
void getBounds ()
 
void computeLayerCenters ()
 
TdeclareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< TdeclareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const TgetRestartableData (const std::string &data_name) const
 
TdeclareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
TdeclareRecoverableData (const std::string &data_name, Args &&... args)
 
TdeclareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
TdeclareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 

Protected Attributes

unsigned int _dim
 the problem dimension
 
std::vector< const VariableValue * > _disp
 the displacement vectors
 
std::string _layered_base_name
 
const InputParameters_layered_base_params
 
MooseEnum _direction_enum
 
unsigned int _direction
 
bool _interval_based
 
unsigned int _num_layers
 
std::vector< Real > _layer_bounds
 
unsigned int _sample_type
 
unsigned int _average_radius
 
bool _using_displaced_mesh
 
std::vector< Real > _layer_centers
 
Real _direction_min
 
Real _direction_max
 
std::vector< Real > & _layer_values
 
std::vector< int > & _layer_has_value
 
bool _cumulative
 
const bool _positive_cumulative_direction
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 

Private Member Functions

Real evaluateTemplate (const SpatialArg &position, const Moose::StateArg &state) const
 
void clearCacheData ()
 
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
 
ValueType queryFVArgCache (std::map< SpaceArg, ValueType > &cache_data, const SpaceArg &space) const
 
RestartableDataValueregisterRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 

Private Attributes

std::set< ExecFlagType_clearance_schedule
 
bool _always_evaluate
 
dof_id_type _current_qp_map_key
 
std::vector< std::pair< bool, ValueType > > * _current_qp_map_value
 
std::unordered_map< dof_id_type, std::vector< std::pair< bool, ValueType > > > _qp_to_value
 
dof_id_type _current_side_qp_map_key
 
std::vector< std::vector< std::pair< bool, ValueType > > > * _current_side_qp_map_value
 
std::unordered_map< dof_id_type, std::vector< std::vector< std::pair< bool, ValueType > > > > _side_qp_to_value
 
std::map< ElemArg, ValueType_elem_arg_to_value
 
std::map< FaceArg, ValueType_face_arg_to_value
 
std::map< NodeArg, ValueType_node_arg_to_value
 
MooseFunctorName _functor_name
 
SubProblem_layered_base_subproblem
 
std::vector< SubdomainID_layer_bounding_blocks
 
bool _has_direction_max_min
 
const RestartableDataMapName _metaname
 
std::string _restartable_name
 

Detailed Description

This layered user object computes the change in cross sectional area of a flow channel.

Definition at line 20 of file LayeredFlowAreaChange.h.

Constructor & Destructor Documentation

◆ LayeredFlowAreaChange()

LayeredFlowAreaChange::LayeredFlowAreaChange ( const InputParameters parameters)

Definition at line 36 of file LayeredFlowAreaChange.C.

38 LayeredBase(parameters),
39 _dim(_mesh.dimension())
40{
41 if (coupledComponents("displacements") != _dim)
42 paramError("displacements",
43 "The number of displacement components must be equal to the mesh displacement.");
44
45 _disp.resize(_dim);
46 for (unsigned int j = 0; j < _dim; ++j)
47 _disp[j] = &coupledValue("displacements", j);
48}
unsigned int _dim
the problem dimension
std::vector< const VariableValue * > _disp
the displacement vectors

Member Function Documentation

◆ computeIntegral()

Real LayeredFlowAreaChange::computeIntegral ( )
overridevirtual

Definition at line 69 of file LayeredFlowAreaChange.C.

70{
71 Real sum = 0;
72 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
73 sum += _JxW[_qp] * _coord[_qp] * computeQpIntegral();
74
75 return sum;
76}
virtual Real computeQpIntegral() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by execute().

◆ computeQpIntegral()

Real LayeredFlowAreaChange::computeQpIntegral ( )
overrideprotectedvirtual

Definition at line 79 of file LayeredFlowAreaChange.C.

80{
81 RealVectorValue displacements;
82 for (unsigned int j = 0; j < _dim; ++j)
83 displacements(j) = (*_disp[j])[_qp];
84 return -_normals[_qp] * displacements;
85}
VectorValue< Real > RealVectorValue

Referenced by computeIntegral().

◆ execute()

void LayeredFlowAreaChange::execute ( )
overridevirtual

Definition at line 58 of file LayeredFlowAreaChange.C.

59{
60 unsigned int layer = getLayer(_current_elem->vertex_average());
62 : _layer_bounds[layer + 1] - _layer_bounds[layer];
63 Real integral_value = computeIntegral() / height;
64
65 setLayerValue(layer, getLayerValue(layer) + integral_value);
66}
unsigned int _num_layers
virtual Real getLayerValue(unsigned int layer) const
bool _interval_based
Real _direction_max
virtual unsigned int getLayer(const Point &p) const
void setLayerValue(unsigned int layer, Real value)
Real _direction_min
std::vector< Real > _layer_bounds
virtual Real computeIntegral() override

◆ finalize()

void LayeredFlowAreaChange::finalize ( )
overridevirtual

Reimplemented from LayeredBase.

Definition at line 88 of file LayeredFlowAreaChange.C.

89{
91}
virtual void finalize()

◆ initialize()

void LayeredFlowAreaChange::initialize ( )
overridevirtual

Reimplemented from LayeredBase.

Definition at line 51 of file LayeredFlowAreaChange.C.

◆ spatialValue()

virtual Real LayeredFlowAreaChange::spatialValue ( const Point &  p) const
inlineoverridevirtual

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 31 of file LayeredFlowAreaChange.h.

31{ return integralValue(p); }
const Real p
virtual Real integralValue(const Point &p) const

◆ threadJoin()

void LayeredFlowAreaChange::threadJoin ( const UserObject y)
overridevirtual

Reimplemented from LayeredBase.

Definition at line 94 of file LayeredFlowAreaChange.C.

95{
98}
const std::vector< double > y
virtual void threadJoin(const UserObject &y)

◆ validParams()

InputParameters LayeredFlowAreaChange::validParams ( )
static

Definition at line 15 of file LayeredFlowAreaChange.C.

16{
18 params += LayeredBase::validParams();
19 params.addRequiredCoupledVar("displacements",
20 "Displacements, size must match problem dimension.");
21
22 // this layered object should not be used on the displaced mesh
23 // because it measures deviation from the undisplaced mesh
24 params.suppressParameter<bool>("use_displaced_mesh");
25 params.set<bool>("use_displaced_mesh") = false;
26 params.suppressParameter<std::vector<SubdomainName>>("block");
27
29 "This layered user object computes the change in cross sectional area "
30 "of a flow channel from the displacement variables. Note: the convention is"
31 "that reduction in flow area is negative. For this to be satisfied, normals must"
32 "point INTO the flow channel.");
33 return params;
34}
void suppressParameter(const std::string &name)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
static InputParameters validParams()
static InputParameters validParams()

Member Data Documentation

◆ _dim

unsigned int LayeredFlowAreaChange::_dim
protected

the problem dimension

Definition at line 43 of file LayeredFlowAreaChange.h.

Referenced by computeQpIntegral(), and LayeredFlowAreaChange().

◆ _disp

std::vector<const VariableValue *> LayeredFlowAreaChange::_disp
protected

the displacement vectors

Definition at line 46 of file LayeredFlowAreaChange.h.

Referenced by computeQpIntegral(), and LayeredFlowAreaChange().


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