16 params.
addClassDescription(
"Multi-order parameter KKS model kernel for the Bulk Allen-Cahn. This "
17 "operates on one of the order parameters 'eta_i' as the non-linear "
20 "Fj_names",
"List of free energies for each phase. Place in same order as hj_names!");
22 "hj_names",
"Switching Function Materials that provide h. Place in same order as Fj_names!");
24 "Order parameter that derivatives are taken with respect to");
29 :
ACBulk<Real>(parameters),
30 _etai_name(coupledName(
"eta_i", 0)),
31 _etai_var(coupled(
"eta_i", 0)),
32 _Fj_names(getParam<
std::vector<MaterialPropertyName>>(
"Fj_names")),
33 _num_j(_Fj_names.size()),
35 _prop_dFjdarg(_num_j),
36 _hj_names(getParam<
std::vector<MaterialPropertyName>>(
"hj_names")),
38 _prop_dhjdetai(_num_j),
39 _prop_d2hjdetai2(_num_j),
40 _prop_d2hjdetaidarg(_num_j)
44 paramError(
"hj_names",
"Need to pass in as many hj_names as Fj_names");
47 for (
unsigned int n = 0; n <
_num_j; ++n)
60 for (
unsigned int i = 0; i < _n_args; ++i)
76 for (
unsigned int n = 0; n <
_num_j; ++n)
78 validateNonlinearCoupling<Real>(
_Fj_names[n]);
79 validateNonlinearCoupling<Real>(
_hj_names[n]);
This is the Allen-Cahn equation base class that implements the bulk or local energy term of the equat...
virtual void initialSetup()
static InputParameters validParams()
KKSMultiACBulkBase(const InputParameters ¶meters)
virtual void initialSetup()
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dFjdarg
Derivatives of the free energy functions (needed for off-diagonal Jacobians)
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
std::vector< const MaterialProperty< Real > * > _prop_hj
Values of the switching functions for each phase .
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
static InputParameters validParams()
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2hjdetaidarg
Second derivatives of the switching functions (needed for off-diagonal Jacobians)
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the free energy functions for each phase .
VariableName _etai_name
name of order parameter that derivatives are taken wrt (needed to retrieve the derivative material pr...
std::vector< MaterialPropertyName > _hj_names
switching function names
std::vector< const MaterialProperty< Real > * > _prop_d2hjdetai2
Second derivatives of the switching functions wrt the order parameter for this kernel.