19 "KKS model kernel for the split Bulk Cahn-Hilliard term. This kernel operates on the "
20 "physical concentration 'c' as the non-linear variable");
23 "Base name of an arbitrary phase free energy function F (f_base in the corresponding "
26 "ca",
"phase concentration corresponding to the non-linear variable of this kernel");
27 params.
addCoupledVar(
"args_a",
"Vector of additional arguments to Fa");
29 "Chemical potential non-linear helper variable for the split solve");
35 _ca_var(coupled(
"ca")),
36 _ca_name(coupledName(
"ca", 0)),
37 _dFadca(getMaterialPropertyDerivative<Real>(
"fa_name", _ca_name)),
38 _d2Fadcadarg(_n_args),
43 for (
unsigned int i = 0; i < _n_args; ++i)
50 validateNonlinearCoupling<Real>(
"fa_name");
51 validateDerivativeMaterialPropertyBase<Real>(
"fa_name");
58 residual += -
_w[_qp] * _test[_i][_qp];
90 return -_phi[_j][_qp] * _test[_i][_qp];
93 const unsigned int cvar = mapJvarToCvar(jvar);
94 return _phi[_j][_qp] * _test[_i][_qp] * (*
_d2Fadcadarg[cvar])[_qp];
registerMooseObject("PhaseFieldApp", KKSSplitCHCRes)
void mooseError(Args &&... args)
SplitCHBulk child class that takes all the necessary data from a KKSBaseMaterial.
KKSSplitCHCRes(const InputParameters ¶meters)
virtual void initialSetup()
unsigned int _w_var
Chemical potential.
static InputParameters validParams()
const MaterialProperty< Real > & _dFadca
chemical potential
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
virtual Real computeDFDC(PFFunctionType type)
Note that per product and chain rules: which is: .
virtual Real computeQpResidual()
std::vector< const MaterialProperty< Real > * > _d2Fadcadarg
Second derivatives of fa with respect to all ca and coupled variables.
The couple, SplitCHBase and SplitCHWRes, splits the CH equation by replacing chemical potential with ...
static InputParameters validParams()
virtual Real computeQpResidual()