19 "This class computes the updated Euler angle for crystal plasticity simulations. This needs "
20 "to be used together with the ComputeMultipleCrystalPlasticityStress class, where the "
21 "updated rotation material property is computed. ");
23 "degree_to_radian",
false,
"Whether to convert euler angles from degree to radian.");
29 _updated_rotation(getMaterialProperty<
RankTwoTensor>(
"updated_rotation")),
30 _updated_euler_angle(declareProperty<RealVectorValue>(
"updated_Euler_angle")),
31 _degree_to_radian(getParam<bool>(
"degree_to_radian"))
49 RealVectorValue & euler_angle)
52 Eigen::Matrix<Real, 3, 3> rot_mat;
54 for (
unsigned int i = 0; i < 3; ++i)
55 for (
unsigned int j = 0; j < 3; ++j)
56 rot_mat(i, j) = rot(i, j);
59 Eigen::Quaternion<Real> q(rot_mat);
63 euler_angle = (RealVectorValue)ea;
registerMooseObject("SolidMechanicsApp", ComputeUpdatedEulerAngle)
const MaterialProperty< RankTwoTensor > & _updated_rotation
void initQpStatefulProperties() override
ComputeUpdatedEulerAngle(const InputParameters ¶meters)
MaterialProperty< RealVectorValue > & _updated_euler_angle
void computeEulerAngleFromRotationMatrix(const RankTwoTensor &rot, RealVectorValue &euler_angle)
static InputParameters validParams()
void computeQpProperties() override
static InputParameters validParams()