13 #include "MooseMesh.h"
14 #include "libmesh/quadrature.h"
20 const std::string &
name,
21 const InputParameters & parameters)
23 _large_strain(solid_model.getParamTempl<bool>(
"large_strain")),
24 _grad_disp_x(coupledGradient(
"disp_x")),
25 _grad_disp_y(coupledGradient(
"disp_y")),
26 _grad_disp_z(parameters.get<SubProblem *>(
"_subproblem")->mesh().dimension() == 3
27 ? coupledGradient(
"disp_z")
29 _volumetric_locking_correction(solid_model.getParamTempl<bool>(
"volumetric_locking_correction"))
72 Real volumetric_strain = 0.0;
74 for (
unsigned int qp_loop = 0; qp_loop <
_solid_model.
qrule()->n_points(); ++qp_loop)
84 volumetric_strain += 0.5 *
89 volumetric_strain += 0.5 *
94 volumetric_strain += 0.5 *
102 volumetric_strain /= volume;
105 Real trace = strain_increment.
trace();
106 strain_increment.
xx() += volumetric_strain - trace / 3.0;
107 strain_increment.
yy() += volumetric_strain - trace / 3.0;
108 strain_increment.
zz() += volumetric_strain - trace / 3.0;
111 total_strain_new = strain_increment;
112 strain_increment -= total_strain_old;