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++)
82 for (
unsigned int j = 0;
j <
_dim; ++
j)
83 displacements(
j) = (*
_disp[
j])[_qp];
84 return -_normals[_qp] * displacements;
This layered user object computes the change in cross sectional area of a flow channel.
virtual void execute() override
virtual Real computeQpIntegral() override
static InputParameters validParams()
std::vector< const VariableValue * > _disp
the displacement vectors
const std::vector< double > y
static InputParameters validParams()
static InputParameters validParams()
virtual void threadJoin(const UserObject &y)
registerMooseObject("ThermalHydraulicsApp", LayeredFlowAreaChange)
virtual Real getLayerValue(unsigned int layer) const
void setLayerValue(unsigned int layer, Real value)
virtual unsigned int getLayer(const Point &p) const
virtual void initialize()
LayeredFlowAreaChange(const InputParameters ¶meters)
virtual void threadJoin(const UserObject &y) override
std::vector< Real > _layer_bounds
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computeIntegral() override
virtual void initialize() override
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
virtual void finalize() override
unsigned int _dim
the problem dimension