43 _c(coupledValue(
"c")),
44 _c_name(coupledName(
"c", 0)),
45 _op_num(coupledComponents(
"v")),
47 _diff_name(getParam<MaterialPropertyName>(
"diffusivity")),
48 _diff(declareProperty<Real>(_diff_name)),
49 _dDdc(isCoupledConstant(_c_name) ? nullptr
50 : &declarePropertyDerivative<Real>(_diff_name, _c_name)),
51 _hb(getMaterialProperty<Real>(
"void_switch")),
52 _hm(getMaterialProperty<Real>(
"solid_switch")),
53 _dhbdc(getMaterialPropertyDerivative<Real>(
"void_switch", _c_name)),
54 _dhmdc(getMaterialPropertyDerivative<Real>(
"solid_switch", _c_name)),
57 _diff_bulk(getParam<Real>(
"Dbulk")),
58 _diff_void(getParam<Real>(
"Dvoid")),
59 _diff_surf(getParam<Real>(
"Dsurf")),
60 _diff_gb(getParam<Real>(
"Dgb")),
61 _s_weight(getParam<Real>(
"surf_weight")),
62 _gb_weight(getParam<Real>(
"gb_weight")),
63 _b_weight(getParam<Real>(
"bulk_weight")),
64 _v_weight(getParam<Real>(
"void_weight"))
67 paramError(
"op_num",
"Model requires a non zero number of order parameters.");
70 for (MooseIndex(
_op_num) op_index = 0; op_index <
_op_num; ++op_index)
72 _vals[op_index] = &coupledValue(
"v", op_index);
73 const VariableName op_name = coupledName(
"v", op_index);
74 if (!isCoupledConstant(
"v"))
75 _dDdv[op_index] = &declarePropertyDerivative<Real>(
_diff_name, coupledName(
"v", op_index));
76 _dhbdv[op_index] = &getMaterialPropertyDerivative<Real>(
"void_switch", op_index);
77 _dhmdv[op_index] = &getMaterialPropertyDerivative<Real>(
"solid_switch", op_index);