15 #include "libmesh/quadrature.h"
21 const std::string &
name,
22 const InputParameters & parameters)
24 ScalarCoupleable(&solid_model),
25 _grad_disp_x(coupledGradient(
"disp_x")),
26 _grad_disp_y(coupledGradient(
"disp_y")),
27 _have_strain_zz(isCoupled(
"strain_zz")),
28 _strain_zz(_have_strain_zz ? coupledValue(
"strain_zz") : _zero),
29 _have_scalar_strain_zz(isCoupledScalar(
"scalar_strain_zz")),
30 _scalar_strain_zz(_have_scalar_strain_zz ? coupledScalarValue(
"scalar_strain_zz") : _zero),
31 _grad_disp_x_old(coupledGradientOld(
"disp_x")),
32 _grad_disp_y_old(coupledGradientOld(
"disp_y")),
33 _strain_zz_old(_have_strain_zz ? coupledValueOld(
"strain_zz") : _zero),
34 _scalar_strain_zz_old(_have_scalar_strain_zz ? coupledScalarValueOld(
"scalar_strain_zz")
36 _volumetric_locking_correction(
37 _solid_model.getParamTempl<bool>(
"volumetric_locking_correction"))
54 ColumnMajorMatrix Fbar;
55 ColumnMajorMatrix Fbar_inverse;
56 ColumnMajorMatrix Fhat_average;
63 Real strain_zz, strain_zz_old;
96 Fhat[qp] = A * Fbar_inverse;
110 Fhat_average /= volume;
111 const Real det_Fhat_average(
detMatrix(Fhat_average));
117 const Real factor(std::cbrt(det_Fhat_average / det_Fhat));
130 mooseAssert(F.n() == 3 && F.m() == 3,
"computeDefGrad requires 3x3 matrix");
152 const VariableGradient & grad_x,
153 const VariableGradient & grad_y,
154 const Real & strain_zz,
155 ColumnMajorMatrix & A)
const
157 mooseAssert(A.n() == 3 && A.m() == 3,
"computeDefGrad requires 3x3 matrix");
159 A(0, 0) = grad_x[qp](0);
160 A(0, 1) = grad_x[qp](1);
162 A(1, 0) = grad_y[qp](0);
163 A(1, 1) = grad_y[qp](1);
183 ColumnMajorMatrix Fnm1T;