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),
51 for (
const auto i : make_range(
_num_j))
57 if (coupled(
"all_etas", i) == _var.number())
62 for (
const auto m : make_range(
_num_c))
67 for (
const auto n : make_range(
_num_j))
72 for (
const auto l : make_range(
_num_j))
76 for (
const auto l : make_range(
_num_c))
83 for (
const auto m : make_range(
_num_c))
86 for (
const auto m : make_range(
_num_j))
90 for (
const auto n : make_range(
_num_j))
96 for (
const auto m : make_range(
_num_j))
100 for (
const auto n : make_range(_n_args))
113 for (
const auto m : make_range(
_num_j))
125 for (
const auto m : make_range(
_num_j))
129 for (
const auto n : make_range(
_num_c))
136 return _phi[_j][_qp] * (sum +
_wi *
_d2gi[_qp]);
151 auto compvar = mapJvarToCvar(jvar,
_c_map);
154 for (
const auto m : make_range(
_num_j))
158 for (
const auto n : make_range(
_num_c))
164 res +=
_L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
170 auto etavar = mapJvarToCvar(jvar,
_eta_map);
173 for (
const auto m : make_range(
_num_j))
177 for (
const auto n : make_range(
_num_c))
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);
200 for (
const auto m : make_range(
_num_j))
void mooseError(Args &&... args)
registerMooseObject("PhaseFieldApp", NestedKKSMultiACBulkF)
const MaterialProperty< Real > & _L
Mobility.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
ACBulk child class that sets up necessary variables and materials for calculation of residual contrib...
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
unsigned int _etai_var
index of order parameter that derivatives are taken wrt
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
static InputParameters validParams()
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the free energy functions for each phase .
std::vector< MaterialPropertyName > _hj_names
switching function names
KKSMultiACBulkBase child class for the free energy term in the the Allen-Cahn bulk residual.
static InputParameters validParams()
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
int _k
Position of the nonlinear variable in the list of cj's.
std::vector< MaterialPropertyName > _ci_names
Phase concentrations`.
std::vector< VariableName > _eta_names
Phase parameters.
const MaterialProperty< Real > & _d2gi
Second derivative of barrier function.
std::vector< VariableName > _c_names
Global concentrations.
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
Derivative of the free energy function .
NestedKKSMultiACBulkF(const InputParameters ¶meters)
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidb
Derivative of phase concentrations wrt global concentrations .
virtual Real computeDFDOP(PFFunctionType type)
Real _wi
double well height parameter
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _dcidetaj
Derivative of phase concentrations wrt etaj .
std::vector< const MaterialProperty< Real > * > _dF1dc1
Derivative of the free energy function .
unsigned int _num_c
Number of global concentrations.
const MaterialProperty< Real > & _dgi
Derivatives of barrier function.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2hjdetaidetap
Second derivative of switching function .