4. Boundary Conditions
In LBM simulations, boundary conditions must be defined within the boundary_conditions
operator block. This block allows the specification of different types of boundary conditions applied to the simulation domain. It is possible to include multiple boundary conditions within the same boundary_conditions block. Each condition will be processed accordingly, ensuring accurate enforcement of flow properties at the domain boundaries.
4.1. Neumann conditions
4.1.1. Neumann Z 0
Operator Name:
neumann_z_0
Description: This operator enforces a Neumann boundary condition at z = lz in an LBM simulation. The Neumann boundary condition ensures that the gradient of the distribution function follows a prescribed value (
U{ux,uy,uz}
).Formula:
Parameters:
U
: Prescribed velocity at the boundary (z = 0), enforcing the Neumann condition.
Yaml example:
boundary_conditions:
- neumann_z_0:
U: [0.001,0,0]
4.1.2. Neumann Z l
Operator Name:
neumann_z_l
Description: This operator enforces a Neumann boundary condition at z = lz in an LBM simulation. The Neumann boundary condition ensures that the gradient of the distribution function follows a prescribed value (
U{ux,uy,uz}
).Formula:
Parameters:
U
: Prescribed velocity at the boundary (z = lz), enforcing the Neumann condition.
Yaml example:
boundary_conditions:
- neumann_z_l:
U: [0.001,0,0]
4.2. Bounce Back
4.2.1. Wall / Surface conditions
The standard bounce-back boundary condition is used to enforce the no-slip condition at solid walls in Lattice Boltzmann Methods (LBM). It is implemented by reflecting the distribution functions at wall nodes back in the opposite direction.
Let:
\(\mathbf{x}\) be the position of a lattice node,
\(\mathbf{c}_i = (e_{x,i}, e_{y,i}, e_{z,i})\) be the discrete velocity in direction \(i\),
\(\bar{i}\) be the index of the opposite direction of \(i\),
\(f_i(\mathbf{x}, t)\) be the distribution function in direction \(i\) at node \(\mathbf{x}\) and time \(t\).
Then, for a node \(\mathbf{x}\) marked as a wall, and for each direction \(i = 1, \dots, Q - 1\), the bounce-back condition is applied as:
Operator Name:
wall_bounce_back
Description:The WallBounceBack class is described as part of the Lattice Boltzmann Method (LBM) implementation, specifically the wall bounce back steps.
Yaml example:
pre_stream_bcs:
- wall_bounce_back
4.3. Cavity
This boundary condition models a moving wall, such as the lid in a lid-driven cavity flow. It is implemented through momentum injection at fluid nodes adjacent to the boundary.
FORMULA: TODO
Operator Name:
cavity_z_0
orcavity_z_l
Description: This operator enforces a Cavity boundary condition at z = lz in an LBM simulation. The Cavity boundary condition ensures that the gradient of the distribution function follows a prescribed value.
- Parameters:
U
: Prescribed velocity at the boundary (z = lz or z = 0), enforcing the Cavity condition.
Yaml example:
pre_stream_bcs:
- cavity_z_l:
U: [0.0, 0.1, 0]