17 template <
typename R2>
25 template <
typename R2>
30 _strain_rate(this->template declareADProperty<R2>(_base_name +
"strain_rate")),
31 _strain_increment(this->template declareADProperty<R2>(_base_name +
"strain_increment")),
33 this->template declareADProperty<
RankTwoTensor>(_base_name +
"rotation_increment")),
34 _mechanical_strain_old(
35 this->template getMaterialPropertyOld<R2>(_base_name +
"mechanical_strain")),
36 _total_strain_old(this->template getMaterialPropertyOld<R2>(_base_name +
"total_strain")),
37 _eigenstrains_old(_eigenstrain_names.size())
43 template <
typename R2>
48 for (
unsigned int i = 0; i < 3; ++i)
50 if (this->_fe_problem.isTransient() && i < _ndisp)
51 _grad_disp_old[i] = &this->coupledGradientOld(
"displacements", i);
53 _grad_disp_old[i] = &_grad_zero;
57 template <
typename R2>
61 _mechanical_strain[_qp].zero();
62 _total_strain[_qp].zero();
65 template <
typename R2>
69 for (
unsigned int i = 0; i < _eigenstrains.size(); ++i)
71 strain -= (*_eigenstrains[i])[_qp];
72 strain += (*_eigenstrains_old[i])[_qp];
static InputParameters validParams()
ADComputeIncrementalStrainBaseTempl(const InputParameters ¶meters)
std::vector< const MaterialProperty< R2 > * > _eigenstrains_old
ADComputeIncrementalStrainBase is the base class for strain tensors using incremental formulations...
Moose::GenericType< R2, true > ADR2
ADComputeStrainBase is the base class for strain tensors.
void initialSetup() override
static InputParameters validParams()
void subtractEigenstrainIncrementFromStrain(ADR2 &strain)
void initialSetup() override
std::vector< MaterialPropertyName > _eigenstrain_names
virtual void initQpStatefulProperties() override