Go to the documentation of this file.
19 params.addClassDescription(
"Multi-phase KKS model kernel (part 2 of 2) for the Bulk Allen-Cahn. "
20 "This includes all terms dependent on chemical potential.");
21 params.addRequiredCoupledVar(
22 "cj_names",
"Array of phase concentrations cj. Place in same order as Fj_names!");
28 _c1_name(getVar(
"cj_names", 0)
32 _prop_dF1dc1(getMaterialPropertyDerivative<Real>(_Fj_names[0],
34 _prop_d2F1dc12(getMaterialPropertyDerivative<Real>(_Fj_names[0], _c1_name, _c1_name))
36 if (
_num_j != coupledComponents(
"cj_names"))
37 paramError(
"cj_names",
"Need to pass in as many cj_names as Fj_names");
40 for (
unsigned int i = 0; i <
_num_j; ++i)
42 _cjs[i] = &coupledValue(
"cj_names", i);
43 _cjs_var[i] = coupled(
"cj_names", i);
50 for (
unsigned int i = 0; i <
_nvar; ++i)
52 MooseVariableFEBase * cvar = _coupled_moose_vars[i];
68 for (
unsigned int n = 0; n <
_num_j; ++n)
80 for (
unsigned int n = 0; n <
_num_j; ++n)
86 mooseError(
"Invalid type passed in");
101 for (
unsigned int n = 0; n <
_num_j; ++n)
105 _phi[_j][_qp] * _test[_i][_qp];
109 for (
unsigned int i = 1; i <
_num_j; ++i)
120 const unsigned int cvar = mapJvarToCvar(jvar);
122 for (
unsigned int n = 0; n <
_num_j; ++n)
126 res -=
_L[_qp] * sum * _phi[_j][_qp] * _test[_i][_qp];
KKSACBulkBase child class for the phase concentration term in the the Allen-Cahn bulk residual.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
std::vector< unsigned int > _cjs_var
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
std::vector< MaterialPropertyName > _Fj_names
Names of free energy functions for each phase .
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2hjdetaidarg
Second derivatives of the switching functions (needed for off-diagonal Jacobians)
const MaterialProperty< Real > & _prop_d2F1dc12
Second derivative of the free energy function .
std::vector< const MaterialProperty< Real > * > _prop_d2F1dc1darg
Mixed partial derivatives of the free energy function wrt c1 and any other coupled variables .
std::vector< const VariableValue * > _cjs
const MaterialProperty< Real > & _prop_dF1dc1
Derivative of the free energy function .
virtual Real computeDFDOP(PFFunctionType type)
registerMooseObject("PhaseFieldApp", KKSMultiACBulkC)
KKSMultiACBulkC(const InputParameters ¶meters)
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
std::vector< const MaterialProperty< Real > * > _prop_d2hjdetai2
Second derivatives of the switching functions wrt the order parameter for this kernel.
unsigned int _nvar
Number of coupled variables.
InputParameters validParams< KKSMultiACBulkBase >()
const MaterialProperty< Real > & _L
Mobility.
InputParameters validParams< KKSMultiACBulkC >()
unsigned int _etai_var
index of order parameter that derivatives are taken wrt
ACBulk child class that sets up necessary variables and materials for calculation of residual contrib...
MaterialPropertyName _c1_name
Names of phase concentration variables.