18 params.
addClassDescription(
"KKS model kernel to enforce the decomposition of concentration into " 19 "phase concentration $(1-h(\\eta))c_a + h(\\eta)c_b - c = 0$. The " 20 "non-linear variable of this kernel is $c_b$.");
24 params.
addParam<MaterialPropertyName>(
25 "h_name",
"h",
"Base name for the switching function h(eta)");
32 _ca(coupledValue(
"ca")),
33 _ca_var(coupled(
"ca")),
34 _c(coupledValue(
"c")),
36 _eta(coupledValue(
"eta")),
37 _eta_var(coupled(
"eta")),
38 _prop_h(getMaterialProperty<
Real>(
"h_name")),
39 _prop_dh(getMaterialPropertyDerivative<
Real>(
"h_name", coupledName(
"eta", 0)))
47 return _test[_i][_qp] * ((1.0 -
_prop_h[_qp]) *
_ca[_qp] +
_prop_h[_qp] * _u[_qp] -
_c[_qp]);
53 return _test[_i][_qp] *
_prop_h[_qp] * _phi[_j][_qp];
60 return _test[_i][_qp] * (1.0 -
_prop_h[_qp]) * _phi[_j][_qp];
63 return -_test[_i][_qp] * _phi[_j][_qp];
66 return _test[_i][_qp] * (_u[_qp] -
_ca[_qp]) *
_prop_dh[_qp] * _phi[_j][_qp];
static InputParameters validParams()
static InputParameters validParams()
const VariableValue & _ca
virtual Real computeQpResidual()
virtual Real computeQpJacobian()
const MaterialProperty< Real > & _prop_dh
Derivative of the switching function .
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< Real > & _prop_h
Switching function .
registerMooseObject("PhaseFieldApp", KKSPhaseConcentration)
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
KKSPhaseConcentration(const InputParameters ¶meters)
Enforce sum of phase concentrations to be the real concentration.