12 #include "SubProblem.h"
13 #include "MooseMesh.h"
21 InputParameters params = validParams<ElementAverageValue>();
22 params.addRequiredCoupledVar(
"dx_xx",
"solution in xx");
23 params.addRequiredCoupledVar(
"dy_xx",
"solution in xx");
24 params.addCoupledVar(
"dz_xx",
"solution in xx");
25 params.addRequiredCoupledVar(
"dx_yy",
"solution in yy");
26 params.addRequiredCoupledVar(
"dy_yy",
"solution in yy");
27 params.addCoupledVar(
"dz_yy",
"solution in yy");
28 params.addCoupledVar(
"dx_zz",
"solution in zz");
29 params.addCoupledVar(
"dy_zz",
"solution in zz");
30 params.addCoupledVar(
"dz_zz",
"solution in zz");
31 params.addRequiredCoupledVar(
"dx_xy",
"solution in xy");
32 params.addRequiredCoupledVar(
"dy_xy",
"solution in xy");
33 params.addCoupledVar(
"dz_xy",
"solution in xy");
34 params.addCoupledVar(
"dx_yz",
"solution in yz");
35 params.addCoupledVar(
"dy_yz",
"solution in yz");
36 params.addCoupledVar(
"dz_yz",
"solution in yz");
37 params.addCoupledVar(
"dx_zx",
"solution in zx");
38 params.addCoupledVar(
"dy_zx",
"solution in zx");
39 params.addCoupledVar(
"dz_zx",
"solution in zx");
40 params.addParam<std::string>(
41 "appended_property_name",
"",
"Name appended to material properties to make them unique");
42 params.addRequiredParam<
unsigned int>(
"column",
43 "An integer corresponding to the direction the "
44 "variable this kernel acts in. (0 for xx, 1 for "
45 "yy, 2 for zz, 3 for xy, 4 for yz, 5 for zx)");
46 params.addRequiredParam<
unsigned int>(
"row",
47 "An integer corresponding to the direction the "
48 "variable this kernel acts in. (0 for xx, 1 for yy, "
49 "2 for zz, 3 for xy, 4 for yz, 5 for zx)");
54 : ElementAverageValue(parameters),
55 _grad_disp_x_xx(coupledGradient(
"dx_xx")),
56 _grad_disp_y_xx(coupledGradient(
"dy_xx")),
57 _grad_disp_z_xx(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dz_xx") : _grad_zero),
58 _grad_disp_x_yy(coupledGradient(
"dx_yy")),
59 _grad_disp_y_yy(coupledGradient(
"dy_yy")),
60 _grad_disp_z_yy(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dz_yy") : _grad_zero),
61 _grad_disp_x_zz(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dx_zz") : _grad_zero),
62 _grad_disp_y_zz(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dy_zz") : _grad_zero),
63 _grad_disp_z_zz(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dz_zz") : _grad_zero),
64 _grad_disp_x_xy(coupledGradient(
"dx_xy")),
65 _grad_disp_y_xy(coupledGradient(
"dy_xy")),
66 _grad_disp_z_xy(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dz_xy") : _grad_zero),
67 _grad_disp_x_yz(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dx_yz") : _grad_zero),
68 _grad_disp_y_yz(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dy_yz") : _grad_zero),
69 _grad_disp_z_yz(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dz_yz") : _grad_zero),
70 _grad_disp_x_zx(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dx_zx") : _grad_zero),
71 _grad_disp_y_zx(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dy_zx") : _grad_zero),
72 _grad_disp_z_zx(_subproblem.mesh().dimension() == 3 ? coupledGradient(
"dz_zx") : _grad_zero),
74 "elasticity_tensor" + getParam<std::string>(
"appended_property_name"))),
75 _column(getParam<unsigned int>(
"column")),
76 _row(getParam<unsigned int>(
"row")),
168 _volume += _current_elem_volume;
198 const VariableGradient * grad[6][3];
223 for (
int p = 0; p < 3; p++)
225 for (
int q = 0; q < 3; q++)
227 value += E(
_I, 3 * q + p) * (*grad[
_column][p])[_qp](q);
231 return (E(
_I,
_J) + value);