11 #include "libmesh/quadrature.h"
17 template <ComputeStage compute_stage>
22 params.addClassDescription(
"Compute a Green-Lagrange strain.");
26 template <ComputeStage compute_stage>
28 const InputParameters & parameters)
33 paramError(
"global_strain",
34 "Global strain (periodicity) is not yet supported for Green-Lagrange strains");
36 paramError(
"eigenstrain_names",
37 "Eigenstrains are not yet supported for Green-Lagrange strains");
39 paramError(
"volumetric_locking_correction",
40 "Volumetric locking correction is not implemented for Green-Lagrange strains");
43 template <ComputeStage compute_stage>
47 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
49 ADRankTwoTensor dxu((*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]);
50 ADRankTwoTensor dxuT = dxu.transpose();
52 _mechanical_strain[_qp] = _total_strain[_qp] = (dxuT + dxu + dxuT * dxu) / 2.0;