18 InputParameters params = validParams<Kernel>();
19 params.addClassDescription(
"Gradient energy Allen-Cahn Kernel");
20 params.addParam<MaterialPropertyName>(
"mob_name",
"L",
"The mobility used with the kernel");
21 params.addParam<MaterialPropertyName>(
"kappa_name",
"kappa_op",
"The kappa used with the kernel");
22 params.addCoupledVar(
"args",
"Vector of nonlinear variable arguments this object depends on");
23 params.addParam<
bool>(
"variable_L",
25 "The mobility is a function of any MOOSE variable (if "
26 "this is set to false L must be constant over the "
32 : DerivativeMaterialInterface<JvarMapKernelInterface<Kernel>>(parameters),
33 _L(getMaterialProperty<Real>(
"mob_name")),
34 _kappa(getMaterialProperty<Real>(
"kappa_name")),
35 _variable_L(getParam<bool>(
"variable_L")),
36 _dLdop(getMaterialPropertyDerivative<Real>(
"mob_name", _var.
name())),
37 _d2Ldop2(getMaterialPropertyDerivative<Real>(
"mob_name", _var.
name(), _var.
name())),
38 _dkappadop(getMaterialPropertyDerivative<Real>(
"kappa_name", _var.
name())),
39 _nvar(_coupled_moose_vars.size()),
47 for (
unsigned int i = 0; i <
_nvar; ++i)
49 MooseVariable * ivar = _coupled_standard_moose_vars[i];
50 const VariableName iname = ivar->name();
51 if (iname == _var.name())
53 "The kernel variable should not be specified in the coupled `args` parameter.");
55 _dLdarg[i] = &getMaterialPropertyDerivative<Real>(
"mob_name", iname);
56 _dkappadarg[i] = &getMaterialPropertyDerivative<Real>(
"kappa_name", iname);
58 _d2Ldargdop[i] = &getMaterialPropertyDerivative<Real>(
"mob_name", iname, _var.name());
63 for (
unsigned int j = 0; j <
_nvar; ++j)
65 &getMaterialPropertyDerivative<Real>(
"mob_name", iname, _coupled_moose_vars[j]->
name());
72 validateCoupling<Real>(
"mob_name");
73 validateCoupling<Real>(
"kappa_name");
80 for (
unsigned int i = 0; i <
_nvar; ++i)
92 sum +=
gradL() * _test[_i][_qp];
120 _grad_phi[_j][_qp] *
_dLdop[_qp] + _grad_u[_qp] * _phi[_j][_qp] *
_d2Ldop2[_qp];
122 for (
unsigned int i = 0; i <
_nvar; ++i)
128 return _grad_phi[_j][_qp] *
kappaNablaLPsi() + _grad_u[_qp] * dsum;
135 const unsigned int cvar = mapJvarToCvar(jvar);
139 _phi[_j][_qp] * _grad_test[_i][_qp];
145 _grad_u[_qp] * _phi[_j][_qp] * (*
_d2Ldargdop[cvar])[_qp];
147 for (
unsigned int i = 0; i <
_nvar; ++i)
153 return _grad_u[_qp] * dsum;