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)");
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)
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];
std::vector< const MaterialProperty< Real > * > _third_derivatives_ca
Derivatives of with respect to all coupled variables.
std::vector< const MaterialProperty< Real > * > _second_derivatives
Derivatives of with respect to all coupled variables.
const VariableName _ca_name
void mooseError(Args &&... args)
This is the Cahn-Hilliard equation base class that implements the bulk or local energy term of the eq...
const FieldVariableGradient & gradSln() const override
const MaterialProperty< Real > & _second_derivative_Fa
Second derivative .
const std::string & name() const override
static InputParameters validParams()
std::vector< const VariableGradient * > _grad_args
Gradients for all coupled variables.
virtual RealGradient computeGradDFDCons(PFFunctionType type)
Note that per product and chain rules: which is: .
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
KKSCHBulk(const InputParameters ¶meters)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static InputParameters validParams()
registerMooseObject("PhaseFieldApp", KKSCHBulk)
std::vector< std::vector< const MaterialProperty< Real > * > > _third_derivatives
Second derivatives of dFa/dca with respect to all coupled variables.
CHBulk child class that takes all the necessary data from a KKSBaseMaterial.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)