20 "Compute the radial component of the displacement vector for cylindrical models.");
23 "The displacements appropriate for the simulation geometry and coordinate system");
25 "origin",
"Origin of cylinder axis of rotation for 2D and 3D Cartesian models");
27 "axis_vector",
"Vector defining direction of cylindrical axis (3D Cartesian models)");
28 params.
set<
bool>(
"use_displaced_mesh") =
false;
35 _ndisp(coupledComponents(
"displacements")),
36 _disp_vals(coupledValues(
"displacements"))
39 const auto & sbd_begin = *subdomains.begin();
40 for (
const auto & sbd : subdomains)
45 mooseError(
"RadialDisplacementCylinderAux requires that all subdomains have the same " 50 mooseError(
"The number of displacement variables supplied must match the mesh dimension.");
53 mooseError(
"RadialDisplacmentCylinderAux is not applicable for 1D Cartesian models");
56 mooseError(
"RadialDisplacementCylinderAux can only be used with Cartesian or axisymmetric " 57 "coordinate systems");
62 mooseError(
"The 'origin' parameter is only valid for Cartesian models.");
64 _origin = getParam<RealVectorValue>(
"origin");
67 mooseError(
"Must specify 'origin' for models with Cartesian coordinate systems.");
72 mooseError(
"The 'axis_vector' parameter is only valid for 3D Cartesian models.");
77 mooseError(
"axis_vector must have nonzero length");
81 mooseError(
"Must specify 'axis_vector' for 3D Cartesian models");
103 rad_vec = current_point -
_origin;
113 rad_vec = current_point - p;
120 rad_disp = rad_vec * disp_vec;
123 rad_disp = disp_vec.
norm();
registerMooseObject("SolidMechanicsApp", RadialDisplacementCylinderAux)
RadialDisplacementCylinderAux(const InputParameters ¶meters)
auto norm() const -> decltype(std::norm(Real()))
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
const Node *const & _current_node
RealVectorValue _origin
Point used to define the origin of the cylinder axis for Cartesian systems.
bool isParamValid(const std::string &name) const
const std::vector< const VariableValue * > _disp_vals
Coupled variable values of the displacement components.
virtual unsigned int dimension() const
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
static InputParameters validParams()
Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) const
unsigned int _ndisp
Number of displacment components.
virtual Real computeValue()
Compute the value of the radial displacement.
Calculates the radial displacement for cylindrical geometries.
RealVectorValue _axis_vector
Axis direction.
Moose::CoordinateSystemType _coord_system
Type of coordinate system.
const std::set< SubdomainID > & meshSubdomains() const