PINSFVMomentumDiffusion

This kernel implements the diffusion term of the porous media Navier Stokes momentum equation. This diffusion term represents a Brinkman-type viscous stress.

The incompressible approximation simplifies the expression of the stress tensor and the diffusion term is expressed in terms of the superficial velocity: \begin{equation} -\nabla \cdot \left( \mu \nabla \dfrac{\vec{u_d}}{\epsilon} \right) = -\nabla \cdot \left( \dfrac{\mu}{\epsilon} \nabla \vec{u_d} \right) -\nabla \cdot \left( \mu u_d \nabla \dfrac{1}{\epsilon} \right)

The divergence theorem is used to compute this term by examining its flux through the element's faces. The second term is challenging to compute near discontinuities in porosity and is not included by default. For continuous porosity variations, the smooth_porosity parameter may be used to include it.

Input Parameters

  • muviscosity

    C++ Type:MaterialPropertyName

    Options:

    Description:viscosity

  • porosityPorosity auxiliary variable

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

    Options:

    Description:Porosity auxiliary variable

  • 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

  • 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

  • boundaries_to_forceThe set of boundaries to force execution of this FVFluxKernel on.

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

    Options:

    Description:The set of boundaries to force execution of this FVFluxKernel on.

  • boundaries_to_not_forceThe set of boundaries to not force execution of this FVFluxKernel on.

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

    Options:

    Description:The set of boundaries to not force execution of this FVFluxKernel on.

  • force_boundary_executionFalseWhether to force execution of this object on the boundary.

    Default:False

    C++ Type:bool

    Options:

    Description:Whether to force execution of this object on the boundary.

  • ghost_layers2The number of layers of elements to ghost.

    Default:2

    C++ Type:unsigned short

    Options:

    Description:The number of layers of elements to ghost.

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

    Default:x

    C++ Type:MooseEnum

    Options:x, y, z

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

  • 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.

  • smooth_porosityFalseWhether to include the diffusion porosity gradient term

    Default:False

    C++ Type:bool

    Options:

    Description:Whether to include the diffusion porosity gradient term

  • 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.

  • velThe superficial velocity as a material property

    C++ Type:MaterialPropertyName

    Options:

    Description:The superficial velocity as a material property

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

Input Files