PINSFVMomentumFriction

This kernel adds the friction term to the porous media Navier Stokes momentum equations. This kernel should be used with a superficial velocity variable unless momentum_name is provided. A variety of models are supported for the friction force:

Linear friction, for laminar flow Quadratic friction, for turbulent flow Darcy drag model Forchheimer drag model where is the i-th component of the friction force, f the friction factor, which may be anisotropic, the porosity and the fluid density and the fluid superficial velocity. The Darcy and Forchheimer drags may also be expressed with a momentum material property using the momentum_name parameter.

Input Parameters

  • momentum_componentThe component of the momentum equation that this kernel applies to.

    C++ Type:MooseEnum

    Options:x, y, z

    Description:The component of the momentum equation that this kernel applies to.

  • variableThe name of the finite volume variable this kernel applies to

    C++ Type:NonlinearVariableName

    Options:

    Description:The name of the finite volume variable this kernel applies to

Required Parameters

  • Darcy_nameName of the Darcy coefficients material property.

    C++ Type:MaterialPropertyName

    Options:

    Description:Name of the Darcy coefficients material property.

  • Forchheimer_nameName of the Forchheimer coefficients material property.

    C++ Type:MaterialPropertyName

    Options:

    Description:Name of the Forchheimer coefficients material property.

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Options:

    Description:The list of blocks (ids or names) that this object will be applied

  • ghost_layers1The number of layers of elements to ghost.

    Default:1

    C++ Type:unsigned short

    Options:

    Description:The number of layers of elements to ghost.

  • momentum_nameName of the superficial momentum material property for the Darcy and Forchheimer friction terms.

    C++ Type:MaterialPropertyName

    Options:

    Description:Name of the superficial momentum material property for the Darcy and Forchheimer friction terms.

  • porosityPorosity variable.

    C++ Type:std::vector<VariableName>

    Options:

    Description:Porosity variable.

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Options:

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • rhoConstant density to use with incompressible flow.

    C++ Type:double

    Options:

    Description:Constant density to use with incompressible flow.

  • use_point_neighborsFalseWhether to use point neighbors, which introduces additional ghosting to that used for simple face neighbors.

    Default:False

    C++ Type:bool

    Options:

    Description:Whether to use point neighbors, which introduces additional ghosting to that used for simple face neighbors.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Options:

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Options:

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Options:

    Description:Determines whether this object is calculated using an implicit or explicit form

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Options:

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

    C++ Type:std::vector<TagName>

    Options:

    Description:The extra tags for the matrices this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

    C++ Type:std::vector<TagName>

    Options:

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Options:nontime, system

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsnontimeThe tag for the vectors this Kernel should fill

    Default:nontime

    C++ Type:MultiMooseEnum

    Options:nontime, time

    Description:The tag for the vectors this Kernel should fill

Tagging Parameters