15 template <
bool is_ad,
class Parent>
20 params.
addClassDescription(
"Kernel that defines a body force modified by a material property");
22 "Material property defining the body force");
26 template <
bool is_ad,
class Parent>
29 _property(this->template getGenericMaterialProperty<
Real, is_ad>(
"material_property"))
33 template <
bool is_ad,
class Parent>
37 return Parent::computeQpResidual() * _property[_qp];
42 _dpropertydv(getMaterialPropertyDerivative<
Real>(
"material_property", _var.
name())),
43 _dpropertydarg(_n_args)
46 for (
unsigned int i = 0; i < _n_args; ++i)
47 _dpropertydarg[i] = &getMaterialPropertyDerivative<Real>(
"material_property", i);
53 validateNonlinearCoupling<Real>(
"material_property");
65 const unsigned int cvar = mapJvarToCvar(jvar);
std::string name(const ElemQuality q)
Moose::GenericType< Real, is_ad > GenericReal
virtual GenericReal< is_ad > computeQpResidual() override
virtual GenericReal< is_ad > computeQpResidual() override
Compute this Kernel's contribution to the residual at the current quadrature point.
MatBodyForceTempl(const InputParameters ¶meters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const MaterialProperty< Real > & _dpropertydv
derivative of the property wrt the kernel's nonlinear variable
InputParameters validParams()
virtual void initialSetup() override
registerMooseObject("MooseApp", MatBodyForce)
This kernel creates a body force that is modified by a mask defined as a material.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Interface class ("Veneer") to provide generator methods for derivative material property names...
static InputParameters validParams()
MatBodyForce(const InputParameters ¶meters)
std::vector< const MaterialProperty< Real > * > _dpropertydarg
Reaction rate derivatives w.r.t. other coupled variables.
virtual Real computeQpJacobian() override