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]
  [inflow]
    type = LinearFVAdvectionDiffusionFunctorDirichletBC
    variable = u
    boundary = "left top bottom"
    functor = analytic_solution
  []
  [outflow]
    type = LinearFVAdvectionDiffusionOutflowBC
    variable = u
    boundary = "right"
    use_two_term_expansion = 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>

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    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>

    Unit:(no unit assumed)

    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>

    Unit:(no unit assumed)

    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>

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    Options:rhs, time

    Controllable:No

    Description:The tag for the vectors this Kernel should fill

Tagging Parameters

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

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

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    Controllable:No

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

Advanced Parameters