19 "includes all terms NOT dependent on chemical potential.");
24 "Phase concentrations. They must have the same order as Fj_names and global_cs, for " 25 "example, c1, c2, b1, b2.");
28 "gi_name",
"Base name for the double well function g_i(eta_i).");
34 _c_names(coupledNames(
"global_cs")),
35 _c_map(getParameterJvarMap(
"global_cs")),
36 _num_c(coupledComponents(
"global_cs")),
37 _eta_names(coupledNames(
"all_etas")),
38 _eta_map(getParameterJvarMap(
"all_etas")),
40 _ci_names(getParam<
std::vector<MaterialPropertyName>>(
"ci_names")),
43 _wi(getParam<
Real>(
"wi")),
44 _gi_name(getParam<MaterialPropertyName>(
"gi_name")),
45 _dgi(getMaterialPropertyDerivative<
Real>(
"gi_name", _etai_name)),
46 _d2gi(getMaterialPropertyDerivative<
Real>(
"gi_name", _etai_name, _etai_name)),
47 _d2hjdetaidetap(_num_j),
57 if (coupled(
"all_etas", i) == _var.number())
136 return _phi[_j][_qp] * (sum +
_wi *
_d2gi[_qp]);
151 auto compvar = mapJvarToCvar(jvar,
_c_map);
164 res +=
_L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
170 auto etavar = mapJvarToCvar(jvar,
_eta_map);
184 res +=
_L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
195 res +=
_L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
199 const unsigned int cvar = mapJvarToCvar(jvar);
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
Derivative of the free energy function .
const MaterialProperty< Real > & _L
Mobility.
registerMooseObject("PhaseFieldApp", NestedKKSMultiACBulkF)
std::vector< MaterialPropertyName > _ci_names
Phase concentrations`.
const MaterialProperty< Real > & _d2gi
Second derivative of barrier function.
ACBulk child class that sets up necessary variables and materials for calculation of residual contrib...
KKSMultiACBulkBase child class for the free energy term in the the Allen-Cahn bulk residual...
std::vector< const MaterialProperty< Real > * > _dF1dc1
Derivative of the free energy function .
void mooseError(Args &&... args)
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
std::vector< VariableName > _eta_names
Phase parameters.
NestedKKSMultiACBulkF(const InputParameters ¶meters)
int _k
Position of the nonlinear variable in the list of cj's.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidetaj
Derivative of phase concentrations wrt etaj .
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidb
Derivative of phase concentrations wrt global concentrations .
std::vector< MaterialPropertyName > _hj_names
switching function names
std::vector< VariableName > _c_names
Global concentrations.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the free energy functions for each phase .
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
static InputParameters validParams()
IntRange< T > make_range(T beg, T end)
std::vector< std::vector< const MaterialProperty< Real > * > > _d2hjdetaidetap
Second derivative of switching function .
const MaterialProperty< Real > & _dgi
Derivatives of barrier function.
unsigned int _num_c
Number of global concentrations.
virtual Real computeDFDOP(PFFunctionType type)
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
unsigned int _etai_var
index of order parameter that derivatives are taken wrt
Real _wi
double well height parameter