19 params.addClassDescription(
20 "Total free energy in KKS system, including chemical, barrier and gradient terms");
21 params.addRequiredParam<MaterialPropertyName>(
"fa_name",
22 "Base name of the free energy function "
23 "F (f_name in the corresponding "
24 "derivative function material)");
25 params.addRequiredParam<MaterialPropertyName>(
"fb_name",
26 "Base name of the free energy function "
27 "F (f_name in the corresponding "
28 "derivative function material)");
29 params.addParam<MaterialPropertyName>(
30 "h_name",
"h",
"Base name for the switching function h(eta)");
31 params.addParam<MaterialPropertyName>(
32 "g_name",
"g",
"Base name for the double well function g(eta)");
33 params.addRequiredParam<Real>(
"w",
"Double well height parameter");
34 params.addParam<std::vector<MaterialPropertyName>>(
"kappa_names",
35 std::vector<MaterialPropertyName>(),
36 "Vector of kappa names corresponding to "
37 "each variable name in interfacial_vars "
38 "in the same order. For basic KKS, there "
39 "is 1 kappa, 1 interfacial_var.");
45 _prop_fa(getMaterialProperty<Real>(
"fa_name")),
46 _prop_fb(getMaterialProperty<Real>(
"fb_name")),
47 _prop_h(getMaterialProperty<Real>(
"h_name")),
48 _prop_g(getMaterialProperty<Real>(
"g_name")),
49 _w(getParam<Real>(
"w")),
55 "Size of interfacial_vars is not equal to the size of kappa_names in KKSGlobalFreeEnergy");
58 for (
unsigned int i = 0; i <
_nkappas; ++i)
72 for (
unsigned int i = 0; i <
_nvars; ++i)