19 params.addClassDescription(
20 "Free energy contribution symmetric across interfaces between arbitrary pairs of phases.");
25 const InputParameters & parameters)
29 for (
unsigned int i = 0; i <
_num_eta; ++i)
30 for (
unsigned int j = 0; j < i; ++j)
32 paramError(
"W_ij",
"Please supply a symmetric W_ij matrix");
42 for (
unsigned int i = 0; i <
_num_eta; ++i)
43 for (
unsigned int j = i + 1; j <
_num_eta; ++j)
45 const Real ni = (*
_eta[i])[_qp];
46 const Real nj = (*
_eta[j])[_qp];
52 _prop_g[_qp] += 16.0 * Wij * (ni * ni * nj * nj);
54 (*
_prop_dg[i])[_qp] += 16.0 * Wij * (2 * ni * nj * nj);
55 (*
_prop_dg[j])[_qp] += 16.0 * Wij * (2 * ni * ni * nj);
57 (*
_prop_d2g[i][i])[_qp] += 16.0 * Wij * (2 * nj * nj);
58 (*
_prop_d2g[j][j])[_qp] += 16.0 * Wij * (2 * ni * ni);
60 (*
_prop_d2g[i][j])[_qp] = 16.0 * Wij * (4 * ni * nj);
64 _prop_g[_qp] += 4.0 * Wij * (ni * nj);
66 (*
_prop_dg[i])[_qp] += 4.0 * Wij * nj;
67 (*
_prop_dg[j])[_qp] += 4.0 * Wij * ni;
74 mooseError(
"Internal error");