19 InputParameters params = validParams<Material>();
20 params.addClassDescription(
"Providing external applied force density to grains");
21 params.addParam<FunctionName>(
"force_x", 0.0,
"The forcing function in x direction.");
22 params.addParam<FunctionName>(
"force_y", 0.0,
"The forcing function in y direction.");
23 params.addParam<FunctionName>(
"force_z", 0.0,
"The forcing function in z direction.");
24 params.addRequiredCoupledVarWithAutoBuild(
25 "etas",
"var_name_base",
"op_num",
"Array of coupled order parameters");
26 params.addCoupledVar(
"c",
"Concentration field");
27 params.addParam<Real>(
"k", 1.0,
"stiffness constant multiplier");
32 : DerivativeMaterialInterface<Material>(parameters),
33 _force_x(getFunction(
"force_x")),
34 _force_y(getFunction(
"force_y")),
35 _force_z(getFunction(
"force_z")),
36 _c(coupledValue(
"c")),
37 _c_name(getVar(
"c", 0)->
name()),
38 _k(getParam<Real>(
"k")),
39 _op_num(coupledComponents(
43 _dF(declareProperty<std::vector<
RealGradient>>(
"force_density_ext")),
44 _dFdc(declarePropertyDerivative<std::vector<
RealGradient>>(
"force_density_ext", _c_name)),
48 for (
unsigned int i = 0; i <
_op_num; ++i)
50 _vals[i] = &coupledValue(
"etas", i);
53 &declarePropertyDerivative<std::vector<RealGradient>>(
"force_density_ext",
_vals_name[i]);
63 for (
unsigned int i = 0; i <
_op_num; ++i)
74 for (
unsigned int i = 0; i <
_op_num; ++i)
77 for (
unsigned int j = 0; j <
_op_num; ++j)