LinearFVAdvectionDiffusionOutflowBC

Description

LinearFVAdvectionDiffusionOutflowBC will contribute to the system matrix and right hand side of a linear finite volume system. The contributions can be derived using the integral of the advective flux over a boundary face () of a boundary element:

where , and are the outlet face velocity, outward pointing surface vector and the surface area,

The value of can be computed two different ways depending on the setting of the "use_two_term_expansion" parameter. When the two-term expansion is enabled the face value is approximated as:

where and are the solution value and gradient in the boundary cell, while is the vector pointing to the face center from the boundary cell centroid. When "use_two_term_expansion" is disabled the following first-order approximation is used:

This boundary condition assumes zero normal gradient contribution to the diffusion terms.

commentnote

This boundary condition should only be used for problems which involve advection and/or diffusion problems.

Example Syntax

[LinearFVBCs<<<{"href": "../../syntax/LinearFVBCs/index.html"}>>>]
  [inflow]
    type = LinearFVAdvectionDiffusionFunctorDirichletBC<<<{"description": "Adds a dirichlet BC which can be used for the assembly of linear finite volume system and whose face values are determined using a functor. This kernel is only designed to work with advection-diffusion problems.", "href": "LinearFVAdvectionDiffusionFunctorDirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = u
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = "left top bottom"
    functor<<<{"description": "The functor for this boundary condition. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number."}>>> = analytic_solution
  []
  [outflow]
    type = LinearFVAdvectionDiffusionOutflowBC<<<{"description": "Adds a boundary condition which represents a surface with outflowing material with a constant velocity. This kernel is only compatible with advection-diffusion problems.", "href": "LinearFVAdvectionDiffusionOutflowBC.html"}>>>
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = u
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = "right"
    use_two_term_expansion<<<{"description": "If an approximate linear expansion should be used to compute the face value."}>>> = false
  []
[]
(moose/test/tests/linearfvkernels/advection/advection-2d.i)

Input Parameters

  • boundaryThe list of boundary IDs from the mesh where this object applies

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

    Controllable:No

    Description:The list of boundary IDs from the mesh where this object applies

  • variableThe name of the variable that this boundary condition applies to

    C++ Type:LinearVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this boundary condition applies to

Required Parameters

  • use_two_term_expansionFalseIf an approximate linear expansion should be used to compute the face value.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:If an approximate linear expansion should be used to compute the face value.

Optional Parameters

  • absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution

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

    Controllable:No

    Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

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

    Controllable:No

    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>

    Controllable:No

    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

    Controllable:No

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsrhsThe tag for the vectors this Kernel should fill

    Default:rhs

    C++ Type:MultiMooseEnum

    Options:rhs, time

    Controllable:No

    Description:The tag for the vectors this Kernel should fill

Contribution To Tagged Field Data Parameters

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

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

    Controllable:No

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

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    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

    Controllable:No

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

Advanced Parameters