18 params.
addClassDescription(
"Total free energy in multi-phase KKS system, including chemical, " 19 "barrier and gradient terms");
22 "List of free energies for each phase. Place in same order as hj_names and gj_names!");
25 "Switching Function Materials that provide h. Place in same order as Fj_names and gj_names!");
28 "Barrier Function Materials that provide g. Place in same order as Fj_names and hj_names!");
30 params.
addParam<std::vector<MaterialPropertyName>>(
"kappa_names",
31 std::vector<MaterialPropertyName>(),
32 "Vector of kappa names corresponding to " 33 "each variable name in interfacial_vars " 34 "in the same order.");
40 _Fj_names(getParam<
std::vector<MaterialPropertyName>>(
"Fj_names")),
41 _num_j(_Fj_names.size()),
43 _hj_names(getParam<
std::vector<MaterialPropertyName>>(
"hj_names")),
45 _gj_names(getParam<
std::vector<MaterialPropertyName>>(
"gj_names")),
47 _w(getParam<
Real>(
"w")),
52 mooseError(
"Size of hj_names is not equal to size of Fj_names in KKSMultiFreeEnergy AuxKernel ",
55 mooseError(
"Size of gj_names is not equal to size of Fj_names in KKSMultiFreeEnergy AuxKernel ",
59 for (
unsigned int i = 0; i <
_num_j; ++i)
68 mooseError(
"Size of interfacial_vars is not equal to the size of kappa_names in " 69 "KKSMultiFreeEnergy AuxKernel ",
73 for (
unsigned int i = 0; i <
_nkappas; ++i)
83 for (
unsigned int i = 0; i <
_num_j; ++i)
87 for (
unsigned int i = 0; i <
_nvars; ++i)
const unsigned int _num_j
Total free energy (both the bulk and gradient parts), where the bulk free energy has been defined in ...
unsigned int _nvars
Coupled interface variables.
Compute the free energy in the multi-phase KKS Model .
const VariableValue & _additional_free_energy
Additional free energy contribution.
registerMooseObject("PhaseFieldApp", KKSMultiFreeEnergy)
virtual const std::string & name() const
std::vector< const MaterialProperty< Real > * > _prop_hj
Values of the switching functions for each phase .
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
static InputParameters validParams()
const Real _w
Barrier term height.
std::vector< const MaterialProperty< Real > * > _prop_gj
Values of the barrier functions for each phase .
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the free energy functions for each phase .
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< const MaterialProperty< Real > * > _kappas
Gradient interface free energy coefficients.
static InputParameters validParams()
virtual Real computeValue()
void mooseError(Args &&... args) const
const std::vector< const VariableGradient * > _grad_vars
std::vector< MaterialPropertyName > _gj_names
Barrier function names.
KKSMultiFreeEnergy(const InputParameters ¶meters)
std::vector< MaterialPropertyName > _kappa_names
Gradient free energy prefactor kappa.
std::vector< MaterialPropertyName > _hj_names
Switching function names.