15 #include "libmesh/quadrature.h" 16 #include "libmesh/utility.h" 24 params.
addClassDescription(
"Compute a rotation increment for finite rotations of the beam and " 25 "computes the small/large strain increments in the current rotated " 26 "configuration of the beam.");
32 _total_rotation_old(getMaterialPropertyOld<
RankTwoTensor>(
"total_rotation"))
44 const Real intermediate_length_1 =
46 Utility::pow<2>(delta_disp_local(2)));
48 const Real sin_alpha =
std::sqrt(1.0 - Utility::pow<2>(cos_alpha));
50 const Real intermediate_length_2 =
51 std::sqrt(Utility::pow<2>(intermediate_length_1) + Utility::pow<2>(delta_disp_local(1)));
52 const Real sin_beta = delta_disp_local(1) / intermediate_length_2;
53 const Real cos_beta =
std::sqrt(1.0 - Utility::pow<2>(sin_beta));
55 const RealVectorValue rotation_d_1(cos_alpha * cos_beta, sin_beta, sin_alpha * cos_beta);
56 const RealVectorValue rotation_d_2(-cos_alpha * sin_beta, cos_beta, -sin_alpha * sin_beta);
59 const auto rotation_d =
65 const Real gamma_increment =
66 0.5 * (rotation_d_1(0) * avg_rot_local(0) + rotation_d_1(1) * avg_rot_local(1) +
67 rotation_d_1(2) * avg_rot_local(2));
70 rotation_a(0, 0) = 1.0;
71 rotation_a(1, 1) = std::cos(gamma_increment);
72 rotation_a(1, 2) = std::sin(gamma_increment);
73 rotation_a(2, 1) = -rotation_a(1, 2);
74 rotation_a(2, 2) = rotation_a(1, 1);
void computeRotation() override
Computes the rotation matrix at time t. For small rotation scenarios, the rotation matrix at time t i...
static InputParameters validParams()
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< Real > &row0, const libMesh::TypeVector< Real > &row1, const libMesh::TypeVector< Real > &row2)
ComputeFiniteBeamStrain(const InputParameters ¶meters)
ComputeIncrementalBeamStrain defines a displacement and rotation strain increment and rotation increm...
ComputeFiniteBeamStrain calculates the rotation increment to account for finite rotations of the beam...
MaterialProperty< Real > & _original_length
Initial length of the beam.
const MaterialProperty< RankTwoTensor > & _total_rotation_old
Rotational transformation from the global to beam local coordinate system at time t...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
registerMooseObject("SolidMechanicsApp", ComputeFiniteBeamStrain)
RealVectorValue _disp0
Displacement and rotations at the two nodes of the beam in the global coordinate system.
MaterialProperty< RankTwoTensor > & _total_rotation
Rotational transformation from global coordinate system to beam local configuration at time t...