20 params.
addParam<UserObjectName>(
"read_prop_user_object",
21 "The ElementReadPropertyFile " 22 "GeneralUserObject to read element " 23 "specific property values from file");
25 "Vector of coupled variables representing the Euler angles' components.");
31 _read_prop_user_object(isParamValid(
"read_prop_user_object")
34 _Euler_angles_mat_prop(declareProperty<
RealVectorValue>(
"Euler_angles")),
35 _crysrot(declareProperty<
RankTwoTensor>(_base_name +
"crysrot")),
37 _n_euler_angle_vars(coupledComponents(
"euler_angle_variables")),
38 _euler_angle_vars(coupledValues(
"euler_angle_variables"))
61 mooseError(
"Bunge Euler angle information and the rotation_matrix cannot both be specified. " 62 "Provide only one type of orientation information in the input file.");
67 "Euler angles cannot be supplied from both coupled variables and auxiliary input " 68 "file in the option `read_prop_user_object`.");
71 paramError(
"euler_angle_variables",
"The Euler angles should have three components.");
virtual bool isCoupled(const std::string &var_name, unsigned int i=0) const
registerMooseObject("SolidMechanicsApp", ComputeElasticityTensorCP)
unsigned int _n_euler_angle_vars
MaterialProperty< RealVectorValue > & _Euler_angles_mat_prop
Material property that stores the values of the Euler Angles for postprocessing.
RealVectorValue _Euler_angles
ComputeElasticityTensorCP(const InputParameters ¶meters)
GenericMaterialProperty< RankFourTensor, is_ad > & _elasticity_tensor
static InputParameters validParams()
RotationTensor _R
Rotation matrix.
ComputeElasticityTensorCP defines an elasticity tensor material object for crystal plasticity models...
Real getData(const Elem *const elem, const unsigned int prop_num) const
RankFourTensor _Cijkl
Individual material information.
void revokeGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
MaterialProperty< RankTwoTensor > & _crysrot
Crystal Rotation Matrix used to rotate the slip system direction and normal.
const std::vector< const VariableValue * > _euler_angle_vars
ComputeElasticityTensor defines an elasticity tensor material object with a given base name...
void paramError(const std::string ¶m, Args... args) const
void rotate(const TypeTensor< T > &R)
static InputParameters validParams()
const PropertyReadFile *const _read_prop_user_object
Element property read user object used to read in Euler angles.
virtual void assignEulerAngles()
bool _user_provided_rotation_matrix
flag for user-defined rotation matrix, supplied in input file
std::string _elasticity_tensor_name
void mooseError(Args &&... args) const
const InputParameters & parameters() const
const RealTensorValue _rotation_matrix
virtual void computeQpElasticityTensor() override
Defines the constant rotation matrix from the user specified Bunge Euler Angles or user-supplied rota...
void update(Axis axis, Real angle)
reforms the rotation matrix according to axis and angle.
const Elem *const & _current_elem