18 params.
addClassDescription(
"KKS model kernel for the Bulk Cahn-Hilliard term. This operates on "
19 "the concentration 'c' as the non-linear variable");
21 "Base name of the free energy function "
22 "F (f_name in the corresponding "
23 "derivative function material)");
25 "Base name of the free energy function "
26 "F (f_name in the corresponding "
27 "derivative function material)");
29 "ca",
"phase concentration corresponding to the non-linear variable of this kernel");
31 "cb",
"phase concentration corresponding to the non-linear variable of this kernel");
32 params.
addCoupledVar(
"args_a",
"Vector of additional arguments to Fa");
33 params.
addParam<MaterialPropertyName>(
34 "h_name",
"h",
"Base name for the switching function h(eta)");
40 :
CHBulk<Real>(parameters),
41 _ca_var(coupled(
"ca")),
42 _ca_name(coupledName(
"ca", 0)),
43 _cb_var(coupled(
"cb")),
44 _cb_name(coupledName(
"cb", 0)),
45 _prop_h(getMaterialProperty<Real>(
"h_name")),
46 _second_derivative_Fa(getMaterialPropertyDerivative<Real>(
"fa_name", _ca_name, _ca_name)),
47 _second_derivative_Fb(getMaterialPropertyDerivative<Real>(
"fb_name", _cb_name, _cb_name))
56 for (
unsigned int i = 0; i < _n_args; ++i)
64 for (
unsigned int j = 0; j < _n_args; ++j)
88 RealGradient res = 0.0;
93 for (
unsigned int i = 0; i < _n_args; ++i)
109 for (
unsigned int i = 0; i < _n_args; ++i)
123 const unsigned int cvar = mapJvarToCvar(jvar);
127 for (
unsigned int i = 0; i < _n_args; ++i)
131 return res * _grad_test[_i][_qp];
registerMooseObject("PhaseFieldApp", KKSCHBulk)
void mooseError(Args &&... args)
This is the Cahn-Hilliard equation base class that implements the bulk or local energy term of the eq...
static InputParameters validParams()
CHBulk child class that takes all the necessary data from a KKSBaseMaterial.
virtual RealGradient computeGradDFDCons(PFFunctionType type)
Note that per product and chain rules: which is: .
std::vector< const MaterialProperty< Real > * > _second_derivatives
Derivatives of with respect to all coupled variables.
const MaterialProperty< Real > & _second_derivative_Fa
Second derivative .
std::vector< const VariableGradient * > _grad_args
Gradients for all coupled variables.
const VariableName _ca_name
std::vector< const MaterialProperty< Real > * > _third_derivatives_ca
Derivatives of with respect to all coupled variables.
std::vector< std::vector< const MaterialProperty< Real > * > > _third_derivatives
Second derivatives of dFa/dca with respect to all coupled variables.
static InputParameters validParams()
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
KKSCHBulk(const InputParameters ¶meters)
const std::string & name() const
const FieldVariableGradient & gradSln() const override