18 params.
addClassDescription(
"Computes the deformation gradient associated with the linear thermal " 19 "expansion in a crystal plasticity simulation");
20 params.
addCoupledVar(
"temperature",
"Coupled temperature variable");
24 "thermal_expansion_coefficients",
25 "thermal_expansion_coefficients_size=1 | thermal_expansion_coefficients_size=3 | " 26 "thermal_expansion_coefficients_size=6 | thermal_expansion_coefficients_size=9",
27 "Vector of values defining the constant second order thermal expansion coefficients, " 28 "depending on the degree of anisotropy, this should be of size 1, 3, 6 or 9");
33 ComputeCrystalPlasticityThermalEigenstrain::ComputeCrystalPlasticityThermalEigenstrain(
36 _temperature(coupledValue(
"temperature")),
37 _temperature_old(coupledValueOld(
"temperature")),
38 _ddeformation_gradient_dT(isCoupledConstant(
"temperature")
41 _deformation_gradient_name, coupledName(
"temperature", 0))),
42 _thermal_expansion_coefficients(getParam<
std::vector<
Real>>(
"thermal_expansion_coefficients")),
43 _lattice_thermal_expansion_coefficients(declareProperty<
RankTwoTensor>(
45 "_lattice_thermal_expansion_coefficients"))
52 ComputeCrystalPlasticityThermalEigenstrain::computeQpDeformationGradient()
55 _lattice_thermal_expansion_coefficients[_qp] =
56 _thermal_expansion_coefficients.rotated(_crysrot[_qp]);
59 Real dtheta = (_temperature[_qp] - _temperature_old[_qp]) * _substep_dt / _dt;
60 RankTwoTensor residual_equivalent_thermal_expansion_increment =
62 _deformation_gradient[_qp] =
63 residual_equivalent_thermal_expansion_increment.
inverse() * _deformation_gradient_old[_qp];
66 if (_ddeformation_gradient_dT)
67 (*_ddeformation_gradient_dT)[_qp] =
68 _lattice_thermal_expansion_coefficients[_qp] * _deformation_gradient[_qp];
RankTwoTensorTempl< Real > inverse() const
ComputeCrystalPlasticityEigenstrainBase is the base class for computing eigenstrain tensors in crysta...
static InputParameters validParams()
static RankTwoTensorTempl Identity()
InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("SolidMechanicsApp", ComputeCrystalPlasticityThermalEigenstrain)