- alphaThe functor which is the coefficient of the normal gradient term. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:The functor which is the coefficient of the normal gradient term. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- betaThe functor which is the coefficient of the scalar term. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:The functor which is the coefficient of the scalar term. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- 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
- gammaThe functor which is the constant term on the RHS of the Robin BC expression. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:The functor which is the constant term on the RHS of the Robin BC expression. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- 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
LinearFVAdvectionDiffusionFunctorRobinBC
Description
LinearFVAdvectionDiffusionFunctorRobinBC
specifies a canonical Robin or mixed boundary condition, i.e. a linear combination of the normal gradient of a field and the field's value at a given boundary. The boundary condition is specified using three functors , , and that represent the boundary condition based on the following expression
where , , and are the field gradient, value, and the normal at the boundary .
This boundary condition should only be used for problems which involve advection and/or diffusion.
If the coefficient , certain terms in this boundary condition tend to infinity/NaN
, which will prevent simulations from converging. If you are manually setting to zero, consider using LinearFVAdvectionDiffusionFunctorDirichletBC instead. Similarly, if is zero consider using LinearFVAdvectionDiffusionFunctorNeumannBC.
Example Syntax
In this example the functors are defined using ParsedFunction.
[LinearFVBCs<<<{"href": "../../syntax/LinearFVBCs/index.html"}>>>]
[right]
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"}>>> = "right"
functor<<<{"description": "The functor for this boundary condition. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = u_exact
[]
[top]
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"}>>> = "top"
functor<<<{"description": "The functor for this boundary condition. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = u_exact
[]
[bottom]
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"}>>> = "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 postprocessor or a number."}>>> = u_exact
[]
[robin_left]
type = LinearFVAdvectionDiffusionFunctorRobinBC<<<{"description": "Adds a Robin BC of the form \\alpha * \\nabla \\phi*n + \\beta * \\phi = \\gamma, which can be used for the assembly of linear finite volume system and whose face values are determined using three functors. This kernel is only designed to work with advection-diffusion problems.", "href": "LinearFVAdvectionDiffusionFunctorRobinBC.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"
alpha<<<{"description": "The functor which is the coefficient of the normal gradient term. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${alpha}
beta<<<{"description": "The functor which is the coefficient of the scalar term. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${beta}
gamma<<<{"description": "The functor which is the constant term on the RHS of the Robin BC expression. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = gamma_fn
[]
[]
(moose/test/tests/linearfvbcs/robin/diffusion-2d-robin.i)Input Parameters
- matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)
Default:False
C++ Type:bool
Controllable:No
Description:Whether this object is only doing assembly to matrices (no vectors)
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
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
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