16 InputParameters params = validParams<Material>();
17 params.addParam<std::string>(
"function_name",
"g",
"actual name for g(eta_i)");
18 MooseEnum g_order(
"SIMPLE=0 LOW",
"SIMPLE");
19 params.addParam<MooseEnum>(
"g_order", g_order,
"Polynomial order of the barrier function g(eta)");
20 params.addRequiredCoupledVar(
"etas",
"eta_i order parameters, one for each h");
21 params.addRequiredParam<std::vector<Real>>(
"W_ij",
22 "Terms controlling barrier height set W=1 in "
23 "DerivativeMultiPhaseMaterial for these to "
29 : DerivativeMaterialInterface<Material>(parameters),
30 _function_name(getParam<std::string>(
"function_name")),
31 _g_order(getParam<MooseEnum>(
"g_order")),
32 _W_ij(getParam<std::vector<Real>>(
"W_ij")),
33 _num_eta(coupledComponents(
"etas")),
36 _prop_g(declareProperty<Real>(_function_name)),
43 "Size of W_ij does not match (number of etas)^2. Supply W_ij of correct size.");
46 for (
unsigned int i = 0; i <
_num_eta; ++i)
48 paramError(
"W_ij",
"Set on-diagonal values of W_ij to zero.");
51 for (
unsigned int i = 0; i <
_num_eta; ++i)
57 for (
unsigned int i = 0; i <
_num_eta; ++i)
60 _eta[i] = &coupledValue(
"etas", i);
61 for (
unsigned int j = i; j <
_num_eta; ++j)
74 for (
unsigned int i = 0; i <
_num_eta; ++i)