12 template <
typename T,
bool is_ad>
17 params.
addParam<MaterialPropertyName>(
18 "diffusivity",
"D",
"The diffusivity value or material property");
20 "Coupled concentration variable for kernel to operate on; if this " 21 "is not specified, the kernel's nonlinear variable will be used as " 32 "Optional vector of arguments for the diffusivity. If provided and " 33 "diffusivity is a derivative parsed material, Jacobian contributions from " 34 "the diffusivity will be automatically computed");
38 template <
typename T,
bool is_ad>
41 _diffusivity(this->template getGenericMaterialProperty<T, is_ad>(
"diffusivity")),
42 _grad_v(isCoupled(
"v") ? this->template coupledGenericGradient<is_ad>(
"v") : _grad_u)
49 _ddiffusivity_dc(this->template getMaterialPropertyDerivative<T>(
"diffusivity", _var.
name())),
50 _ddiffusivity_darg(_coupled_moose_vars.size()),
51 _is_coupled(this->isCoupled(
"v")),
52 _v_var(_is_coupled ? this->coupled(
"v") : _var.number())
57 "diffusivity", _coupled_moose_vars[i]->
name());
60 template <
typename T,
bool is_ad>
64 return _diffusivity[_qp] * _grad_v[_qp];
71 this->
template validateNonlinearCoupling<T>(
"diffusivity");
78 return _diffusivity[_qp] * _grad_phi[_j][_qp];
85 auto sum = _ddiffusivity_dc[_qp] * _phi[_j][_qp] * _grad_v[_qp];
87 sum += precomputeQpCJacobian();
97 const auto cvar = this->mapJvarToCvar(jvar);
99 auto sum = (*_ddiffusivity_darg[cvar])[_qp] * _phi[_j][_qp] * _grad_v[_qp];
101 sum += precomputeQpCJacobian();
103 return sum * _grad_test[_i][_qp];
std::string name(const ElemQuality q)
virtual RealGradient precomputeQpCJacobian()
virtual RealGradient precomputeQpJacobian() override
This class template implements a diffusion kernel with a mobility that can vary spatially and can dep...
virtual GenericRealVectorValue< is_ad > precomputeQpResidual() override
Interface class ("Veneer") for Kernel to provide a mapping from 'jvar' in computeQpOffDiagJacobian in...
MatDiffusionBase(const InputParameters ¶meters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
static InputParameters validParams()
static InputParameters validParams()
virtual void initialSetup() override
Moose::GenericType< RealVectorValue, is_ad > GenericRealVectorValue
std::conditional_t< is_ad, ADKernelGrad, KernelGrad > GenericKernelGrad
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< const MaterialProperty< T > * > _ddiffusivity_darg
diffusion coefficient derivatives w.r.t. coupled variables
Interface class ("Veneer") to provide generator methods for derivative material property names...
MatDiffusionBaseTempl(const InputParameters ¶meters)
InputParameters validParams()