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(
"args",
"Vector of variable arguments of the mobility");
89 validateNonlinearCoupling<Real>(
"mob_name");
96 return _M[_qp] * computeGradDFDCons(
Residual);
104 _dMdc[_qp] * _phi[_j][_qp] * computeGradDFDCons(
Residual);
109 template <
typename T>
114 const unsigned int cvar = mapJvarToCvar(jvar);
116 return (*_dMdarg[cvar])[_qp] * _phi[_j][_qp] * computeGradDFDCons(
Residual) * _grad_test[_i][_qp];
virtual RealGradient computeGradDFDCons(PFFunctionType type)=0
This is the Cahn-Hilliard equation base class that implements the bulk or local energy term of the eq...
const MaterialProperty< T > & _M
Mobility.
const MaterialProperty< T > & _dMdc
Mobility derivative w.r.t. concentration.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
virtual RealGradient precomputeQpJacobian()
virtual RealGradient precomputeQpResidual()
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
CHBulk(const InputParameters ¶meters)
std::vector< const MaterialProperty< T > * > _dMdarg
Mobility derivative w.r.t coupled variables.
virtual void initialSetup()