19 params.
addParam<MaterialPropertyName>(
"mob_name",
"L",
"The mobility used with the kernel");
20 params.
addParam<MaterialPropertyName>(
"kappa_name",
"kappa_op",
"The kappa used with the kernel");
23 "The mobility is a function of any MOOSE variable (if "
24 "this is set to false L must be constant over the "
31 _L(getMaterialProperty<Real>(
"mob_name")),
32 _kappa(getMaterialProperty<Real>(
"kappa_name")),
33 _variable_L(getParam<bool>(
"variable_L")),
34 _dLdop(getMaterialPropertyDerivative<Real>(
"mob_name", _var.
name())),
35 _d2Ldop2(getMaterialPropertyDerivative<Real>(
"mob_name", _var.
name(), _var.
name())),
36 _dkappadop(getMaterialPropertyDerivative<Real>(
"kappa_name", _var.
name())),
44 for (
unsigned int i = 0; i < _n_args; ++i)
47 const VariableName iname = ivar->
name();
48 if (iname == _var.name())
49 paramError(
"coupled_variables",
50 "The kernel variable should not be specified in the coupled `coupled_variables` "
53 _dLdarg[i] = &getMaterialPropertyDerivative<Real>(
"mob_name", i);
54 _dkappadarg[i] = &getMaterialPropertyDerivative<Real>(
"kappa_name", i);
55 _d2Ldargdop[i] = &getMaterialPropertyDerivative<Real>(
"mob_name", iname, _var.name());
60 for (
unsigned int j = 0; j < _n_args; ++j)
61 _d2Ldarg2[i][j] = &getMaterialPropertyDerivative<Real>(
"mob_name", i, j);
68 validateCoupling<Real>(
"mob_name");
69 validateCoupling<Real>(
"kappa_name");
75 RealGradient g = _grad_u[_qp] *
_dLdop[_qp];
76 for (
unsigned int i = 0; i < _n_args; ++i)
85 RealGradient sum =
_L[_qp] * _grad_test[_i][_qp];
88 sum +=
gradL() * _test[_i][_qp];
115 RealGradient dgradL =
116 _grad_phi[_j][_qp] *
_dLdop[_qp] + _grad_u[_qp] * _phi[_j][_qp] *
_d2Ldop2[_qp];
118 for (
unsigned int i = 0; i < _n_args; ++i)
124 return _grad_phi[_j][_qp] *
kappaNablaLPsi() + _grad_u[_qp] * dsum;
131 const unsigned int cvar = mapJvarToCvar(jvar);
135 _phi[_j][_qp] * _grad_test[_i][_qp];
140 RealGradient dgradL = _grad_phi[_j][_qp] * (*
_dLdarg[cvar])[_qp] +
141 _grad_u[_qp] * _phi[_j][_qp] * (*
_d2Ldargdop[cvar])[_qp];
143 for (
unsigned int i = 0; i < _n_args; ++i)
149 return _grad_u[_qp] * dsum;
registerMooseObject("PhaseFieldApp", ACInterface)
Compute the Allen-Cahn interface term with the weak form residual .
const bool _variable_L
flag set if L is a function of non-linear variables in args
RealGradient kappaNablaLPsi()
the term
ACInterface(const InputParameters ¶meters)
std::vector< const VariableGradient * > _gradarg
Gradients for all coupled variables.
const MaterialProperty< Real > & _dLdop
Mobility derivatives w.r.t. order parameter.
const MaterialProperty< Real > & _d2Ldop2
std::vector< const MaterialProperty< Real > * > _dkappadarg
kappa derivative w.r.t. other coupled variables
std::vector< const MaterialProperty< Real > * > _dLdarg
Mobility derivative w.r.t. other coupled variables.
virtual Real computeQpResidual()
virtual Real computeQpJacobian()
static InputParameters validParams()
const MaterialProperty< Real > & _L
Mobility.
virtual void initialSetup()
std::vector< const MaterialProperty< Real > * > _d2Ldargdop
RealGradient nablaLPsi()
the term
std::vector< std::vector< const MaterialProperty< Real > * > > _d2Ldarg2
const MaterialProperty< Real > & _dkappadop
kappa derivative w.r.t. order parameter
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
const MaterialProperty< Real > & _kappa
Interfacial parameter.
static InputParameters validParams()
const std::string & name() const
const FieldVariableGradient & gradSln() const override