18 InputParameters params = validParams<Kernel>();
19 params.addClassDescription(
"Gradient energy term for when kappa as a function of the variable");
20 params.addParam<MaterialPropertyName>(
"mob_name",
"L",
"The mobility used with the kernel");
21 params.addParam<MaterialPropertyName>(
"kappa_name",
"kappa_op",
"The kappa function name");
22 params.addCoupledVar(
"v",
23 "Vector of additional nonlinear variables that affect the gradient energy");
28 : DerivativeMaterialInterface<JvarMapKernelInterface<Kernel>>(parameters),
29 _var_name(getParam<NonlinearVariableName>(
"variable")),
30 _L_name(getParam<MaterialPropertyName>(
"mob_name")),
31 _L(getMaterialProperty<Real>(_L_name)),
32 _dLdvar(getMaterialPropertyDerivative<Real>(_L_name, _var_name)),
33 _kappa_name(getParam<MaterialPropertyName>(
"kappa_name")),
34 _dkappadvar(getMaterialPropertyDerivative<Real>(_kappa_name, _var_name)),
35 _d2kappadvar2(getMaterialPropertyDerivative<Real>(_kappa_name, _var_name, _var_name)),
36 _op_num(coupledComponents(
"v")),
40 _d2kappadvardv(_op_num)
42 for (
unsigned int i = 0; i <
_op_num; ++i)
44 _v_name[i] = getVar(
"v", i)->name();
45 _grad_v[i] = &coupledGradient(
"v", i);
60 Real pre_jac = 0.5 * _test[_i][_qp] * _phi[_j][_qp] *
computeFg();
61 Real term1 = _test[_i][_qp] *
_L[_qp] *
_dkappadvar[_qp] * _grad_u[_qp] * _grad_phi[_j][_qp];
69 const unsigned int i = mapJvarToCvar(jvar);
70 Real pre_jac = 0.5 * _test[_i][_qp] * _phi[_j][_qp] *
computeFg();
80 Real sum_grad_etai2 = 0.0;
81 for (
unsigned int i = 0; i <
_op_num; ++i)
84 Real grad_var2 = _grad_u[_qp] * _grad_u[_qp];
85 return sum_grad_etai2 + grad_var2;