18 InputParameters params = validParams<Kernel>();
19 params.addClassDescription(
"KKS model kernel to enforce the decomposition of concentration into "
20 "phase concentration (1-h(eta))*ca + h(eta)*cb - c = 0. The "
21 "non-linear variable of this kernel is cb.");
22 params.addRequiredCoupledVar(
"ca",
"Phase a concentration");
23 params.addRequiredCoupledVar(
"c",
"Real concentration");
24 params.addRequiredCoupledVar(
"eta",
"Phase a/b order parameter");
25 params.addParam<MaterialPropertyName>(
26 "h_name",
"h",
"Base name for the switching function h(eta)");
33 : DerivativeMaterialInterface<Kernel>(parameters),
34 _ca(coupledValue(
"ca")),
35 _ca_var(coupled(
"ca")),
36 _c(coupledValue(
"c")),
38 _eta(coupledValue(
"eta")),
39 _eta_var(coupled(
"eta")),
40 _prop_h(getMaterialProperty<Real>(
"h_name")),
41 _prop_dh(getMaterialPropertyDerivative<Real>(
"h_name", getVar(
"eta", 0)->
name()))
49 return _test[_i][_qp] * ((1.0 -
_prop_h[_qp]) *
_ca[_qp] +
_prop_h[_qp] * _u[_qp] -
_c[_qp]);
55 return _test[_i][_qp] *
_prop_h[_qp] * _phi[_j][_qp];
62 return _test[_i][_qp] * (1.0 -
_prop_h[_qp]) * _phi[_j][_qp];
65 return -_test[_i][_qp] * _phi[_j][_qp];
68 return _test[_i][_qp] * (_u[_qp] -
_ca[_qp]) *
_prop_dh[_qp] * _phi[_j][_qp];