20 "Displacements, size must match problem dimension.");
25 params.
set<
bool>(
"use_displaced_mesh") =
false;
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.");
39 _dim(_mesh.dimension())
41 if (coupledComponents(
"displacements") !=
_dim)
42 paramError(
"displacements",
43 "The number of displacement components must be equal to the mesh displacement.");
46 for (
unsigned int j = 0; j <
_dim; ++j)
47 _disp[j] = &coupledValue(
"displacements", j);
60 unsigned int layer =
getLayer(_current_elem->vertex_average());
72 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
81 RealVectorValue displacements;
82 for (
unsigned int j = 0; j <
_dim; ++j)
83 displacements(j) = (*
_disp[j])[_qp];
84 return -_normals[_qp] * displacements;
const std::vector< double > y
registerMooseObject("ThermalHydraulicsApp", LayeredFlowAreaChange)
virtual void threadJoin(const UserObject &y)
virtual Real getLayerValue(unsigned int layer) const
virtual unsigned int getLayer(const Point &p) const
void setLayerValue(unsigned int layer, Real value)
static InputParameters validParams()
std::vector< Real > _layer_bounds
virtual void initialize()
This layered user object computes the change in cross sectional area of a flow channel.
LayeredFlowAreaChange(const InputParameters ¶meters)
virtual void finalize() override
unsigned int _dim
the problem dimension
virtual Real computeIntegral() override
static InputParameters validParams()
virtual void initialize() override
virtual Real computeQpIntegral() override
virtual void threadJoin(const UserObject &y) override
virtual void execute() override
std::vector< const VariableValue * > _disp
the displacement vectors
static InputParameters validParams()