18 InputParameters params = validParams<Kernel>();
19 params.addClassDescription(
"Computes flux $j$ as nodal variable $j = -M\\nabla\\mu$");
20 params.addRequiredParam<
unsigned int>(
"component",
"Flux component");
21 params.addRequiredParam<MaterialPropertyName>(
"mobility_name",
"Mobility property name");
22 params.addRequiredCoupledVar(
"mu",
"Chemical Potential");
23 params.addCoupledVar(
"c",
"Concentration");
28 : DerivativeMaterialInterface<Kernel>(parameters),
29 _component(getParam<unsigned int>(
"component")),
30 _mu_var(coupled(
"mu")),
31 _grad_mu(coupledGradient(
"mu")),
32 _mobility(getMaterialProperty<RealTensorValue>(
"mobility_name")),
33 _has_coupled_c(isCoupled(
"c")),
34 _c_var(_has_coupled_c ? coupled(
"c") : 0),
35 _dmobility_dc(_has_coupled_c
36 ? &getMaterialPropertyDerivative<RealTensorValue>(
"mobility_name",
37 getVar(
"c", 0)->
name())
51 return _test[_i][_qp] * _phi[_j][_qp];
60 return _test[_i][_qp] * (*_dmobility_dc)[_qp].row(
_component) *
_grad_mu[_qp] * _phi[_j][_qp];