53 std::vector<const MaterialProperty<T> *>
_dMdarg;
59 _M(getMaterialProperty<
T>(
"mob_name")),
60 _dMdc(getMaterialPropertyDerivative<
T>(
"mob_name", _var.
name()))
63 unsigned int nvar = _coupled_moose_vars.size();
69 for (
unsigned int i = 0; i < nvar; ++i)
70 _dMdarg[i] = &getMaterialPropertyDerivative<T>(
"mob_name", _coupled_moose_vars[i]->
name());
79 params.
addParam<MaterialPropertyName>(
"mob_name",
"M",
"The mobility used with the kernel");
80 params.
addCoupledVar(
"coupled_variables",
"Vector of variable arguments of the mobility");
88 validateNonlinearCoupling<Real>(
"mob_name");
95 return _M[_qp] * computeGradDFDCons(
Residual);
102 RealGradient grad_value = _M[_qp] * computeGradDFDCons(Jacobian) +
103 _dMdc[_qp] * _phi[_j][_qp] * computeGradDFDCons(
Residual);
113 const unsigned int cvar = mapJvarToCvar(jvar);
115 return (*_dMdarg[cvar])[_qp] * _phi[_j][_qp] * computeGradDFDCons(
Residual) * _grad_test[_i][_qp];
This is the Cahn-Hilliard equation base class that implements the bulk or local energy term of the eq...
virtual RealGradient precomputeQpJacobian()
std::vector< const MaterialProperty< T > * > _dMdarg
Mobility derivative w.r.t coupled variables.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
static InputParameters validParams()
const MaterialProperty< T > & _M
Mobility.
virtual RealGradient computeGradDFDCons(PFFunctionType type)=0
virtual RealGradient precomputeQpResidual()
const MaterialProperty< T > & _dMdc
Mobility derivative w.r.t. concentration.
virtual void initialSetup()
CHBulk(const InputParameters ¶meters)
static InputParameters validParams()