19 params.
addClassDescription(
"Computes a friction force term on fluid in porous media in the " 20 "Navier Stokes i-th momentum equation.");
21 MooseEnum momentum_component(
"x=0 y=1 z=2");
25 "The component of the momentum equation that this kernel applies to.");
26 params.
addParam<MaterialPropertyName>(
"Darcy_name",
27 "Name of the Darcy coefficients material property.");
28 params.
addParam<MaterialPropertyName>(
"Forchheimer_name",
29 "Name of the Forchheimer coefficients material property.");
33 "Name of the superficial momentum material property for " 34 "the Darcy and Forchheimer friction terms.");
40 _component(getParam<
MooseEnum>(
"momentum_component")),
41 _cL(isParamValid(
"Darcy_name") ? &getADMaterialProperty<
RealVectorValue>(
"Darcy_name")
43 _cQ(isParamValid(
"Forchheimer_name")
46 _use_Darcy_friction_model(isParamValid(
"Darcy_name")),
47 _use_Forchheimer_friction_model(isParamValid(
"Forchheimer_name")),
50 _momentum(getADMaterialProperty<
Real>(
"momentum_name"))
53 mooseError(
"At least one friction model needs to be specified.");
Imposes a friction force on the momentum equation in porous media.
ADReal computeQpResidual() override
const bool _use_Forchheimer_friction_model
static InputParameters validParams()
const unsigned int _component
Momentum equation component (x = 0, y = 1, z = 2)
const VariableValue & _eps
Porosity to compute the intersitial velocity from the superficial velocity.
PCNSFVMomentumFriction(const InputParameters ¶ms)
DualNumber< Real, DNDerivativeType, true > ADReal
static const std::string porosity
const ADMaterialProperty< Real > & _momentum
Momentum as a material property.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("NavierStokesApp", PCNSFVMomentumFriction)
void mooseError(Args &&... args) const
const bool _use_Darcy_friction_model
Booleans to select the right models.
const Elem & get(const ElemType type_in)