19 return MooseEnum(
"VonMisesStress EffectiveStrain Hydrostatic L2norm MaxPrincipal " 20 "MidPrincipal MinPrincipal VolumetricStrain FirstInvariant SecondInvariant " 21 "ThirdInvariant AxialStress HoopStress RadialStress TriaxialityStress " 22 "Direction MaxShear StressIntensity");
28 return MooseEnum(
"VonMisesStress EffectiveStrain Hydrostatic L2norm VolumetricStrain " 29 "FirstInvariant SecondInvariant " 30 "ThirdInvariant TriaxialityStress MaxShear StressIntensity EffectiveStrain");
36 return MooseEnum(
"AxialStress HoopStress RadialStress");
42 return MooseEnum(
"HoopStress RadialStress");
48 const Point & curr_point,
49 Point & normalPosition)
54 Point axis_rotation = point2 - point1;
55 Point positionWRTpoint1 = point1 - curr_point;
56 Real projection = (axis_rotation * positionWRTpoint1) / axis_rotation.norm_sq();
57 Point normal = point1 - projection * axis_rotation;
61 normalPosition = curr_point - normal;
62 normalPosition /= normalPosition.norm();
77 radial_vector /= rv_norm;
79 mooseError(
"The outward normal vector cannot be a zero vector");
81 azimuthal_vector = polar_vector.
cross(radial_vector);
82 azimuthal_vector /= azimuthal_vector.
norm();
91 rotationMatrix.
fillColumn(1, azimuthal_vector);
96 rotationMatrix.
fillRow(0, radial_vector);
97 rotationMatrix.
fillRow(1, azimuthal_vector);
98 rotationMatrix.
fillRow(2, polar_vector);
void fillRow(unsigned int r, const libMesh::TypeVector< Real > &v)
auto norm() const -> decltype(std::norm(Real()))
void mooseError(Args &&... args)
void fillColumn(unsigned int c, const libMesh::TypeVector< Real > &v)
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross(const TypeVector< T2 > &v) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real