16 template <ComputeStage compute_stage>
21 params.addClassDescription(
"Compute stress using elasticity for finite strains");
25 template <ComputeStage compute_stage>
27 const InputParameters & parameters)
30 _elasticity_tensor_name(_base_name +
"elasticity_tensor"),
31 _elasticity_tensor(getADMaterialProperty<
RankFourTensor>(_elasticity_tensor_name)),
32 _strain_increment(getADMaterialPropertyByName<
RankTwoTensor>(_base_name +
"strain_increment")),
34 getADMaterialPropertyByName<
RankTwoTensor>(_base_name +
"rotation_increment")),
35 _stress_old(getMaterialPropertyOldByName<
RankTwoTensor>(_base_name +
"stress")),
36 _elastic_strain_old(getMaterialPropertyOldByName<
RankTwoTensor>(_base_name +
"elastic_strain"))
40 template <ComputeStage compute_stage>
46 "ADComputeFiniteStrainElasticStress can only be used with elasticity tensor materials "
47 "that guarantee isotropic tensors.");
50 template <ComputeStage compute_stage>
55 ADRankTwoTensor intermediate_stress;
58 _elasticity_tensor[_qp] * (_strain_increment[_qp] + _elastic_strain_old[_qp]);
62 _rotation_increment[_qp] * intermediate_stress * _rotation_increment[_qp].transpose();
65 _elastic_strain[_qp] = _mechanical_strain[_qp];