20 params.
addRequiredParam<MaterialPropertyName>(
"mobility_name",
"Mobility property name");
28 _component(getParam<unsigned
int>(
"component")),
29 _mu_var(coupled(
"mu")),
30 _grad_mu(coupledGradient(
"mu")),
32 _has_coupled_c(isCoupled(
"c")),
33 _c_var(_has_coupled_c ? coupled(
"c") : 0),
34 _dmobility_dc(_has_coupled_c ? &getMaterialPropertyDerivative<
RealTensorValue>(
35 "mobility_name", coupledName(
"c", 0))
49 return _test[_i][_qp] * _phi[_j][_qp];
58 return _test[_i][_qp] * (*_dmobility_dc)[_qp].row(
_component) *
_grad_mu[_qp] * _phi[_j][_qp];
static InputParameters validParams()
static InputParameters validParams()
CHSplitFlux computes flux as non-linear variable via residual = flux + mobility * gradient(chemical p...
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
TensorValue< Real > RealTensorValue
registerMooseObject("PhaseFieldApp", CHSplitFlux)
const unsigned int _component
const VariableGradient & _grad_mu
const bool _has_coupled_c
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computeQpResidual()
virtual Real computeQpJacobian()
CHSplitFlux(const InputParameters ¶meters)
const MaterialProperty< RealTensorValue > & _mobility
const unsigned int _mu_var
const unsigned int _c_var
void ErrorVector unsigned int