- boundaryEdges/Faces where boundary condition is applied.
C++ Type:MooseEnum
Controllable:No
Description:Edges/Faces where boundary condition is applied.
- bufferThe buffer this compute is writing to
C++ Type:std::string
Controllable:No
Description:The buffer this compute is writing to
- f_oldOld timestep distribution function
C++ Type:std::string
Controllable:No
Description:Old timestep distribution function
- local_Knudsen_numberLocal Knudsen number
C++ Type:std::string
Controllable:No
Description:Local Knudsen number
LBMSpecularReflectionBoundary
LBM combination of bounce-back and specular reflection boundary condition. Uses a precomputed lookup table to determine specular reflection directions for each boundary node type in complex geometries (D2Q9 only).
This compute object implements a combination of bounce-back and specular reflection boundary conditions for rarefied gas flows in Lattice Boltzmann simulations. It is designed for use with complex solid geometries defined through binary_media and is currently limited to D2Q9 stencils.
Overview
At each boundary node (fluid cell adjacent to a solid), the incoming distribution is split into two parts:
f_{\mathrm{opposite}} \mathrel{+}= r \cdot f_{\mathrm{old,in}} \quad \text{(bounce-back)}
f_{\mathrm{specular}} \mathrel{+}= (1 - r) \cdot f_{\mathrm{old,in}} \quad \text{(specular reflection)}
where is a per-node combination coefficient computed from the local Knudsen number:
\sigma = 1 - \log_{10}(1 + \text{Kn}^{0.7}) \sigma_v = \frac{2 - \sigma}{\sigma} A_1 = 1 - 0.1817 \, \sigma_v r = \frac{1}{1 + \sqrt{\pi / 6} \, A_1 \, \sigma_v}
When the scheme reduces to pure bounce-back; when it is pure specular reflection.
Boundary Type Classification
Each boundary node is classified by encoding the connectivity of its 9 D2Q9 neighbors (fluid vs. solid) into a 9-bit binary number. A precomputed lookup table of 52 known boundary types maps this code to the specular reflection direction for each lattice velocity. Directions where streaming is not allowed (solid neighbor) receive the combined bounce-back / specular treatment.
Requirements
A
binary_mediabuffer must be defined inLatticeBoltzmannProblemto identify solid and fluid regions.Only
boundary = wallis supported (domain-edge boundaries such asleft,right, etc. are not handled by this object).Only D2Q9 stencils are currently supported.
Example Input File Syntax
[TensorComputes<<<{"href": "../../syntax/TensorComputes/index.html"}>>>]
[Boundary<<<{"href": "../../syntax/TensorComputes/Boundary/index.html"}>>>]
[wall]
type = LBMSpecularReflectionBoundary<<<{"description": "LBM combination of bounce-back and specular reflection boundary condition. Uses a precomputed lookup table to determine specular reflection directions for each boundary node type in complex geometries (D2Q9 only).", "href": "LBMSpecularReflectionBoundary.html"}>>>
buffer<<<{"description": "The buffer this compute is writing to"}>>> = f
f_old<<<{"description": "Old timestep distribution function"}>>> = fpc
local_Knudsen_number<<<{"description": "Local Knudsen number"}>>> = Kn
boundary<<<{"description": "Edges/Faces where boundary condition is applied."}>>> = wall
[]
[]
[](examples/lbm/rarefied_gas/channel.i)Input 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:No
Description:Set the enabled status of the MooseObject.