General Remarks on Boundary Conditions in Lattice Boltzmann MethodOne of the most important pieces of creating the correct flow with the Lattice Boltzmann method is to accurately impose the desired boundary conditions. Although specifying boundary conditions on the NavierStokes equation is straightforward, imposing boundary conditions within a Lattice Boltzmann simulation can be quite challenging, especially on the GPU. In this section, we will discuss the different boundary conditions implemented in our Lattice Boltzmann code. Specifically we will cover the implementation of the following boundary conditions:
Implementation of Boundary ConditionsIn this section we will describe how we implemented a variety of boundary conditions. Future work will develop our boundary condition code further. Bounce Back Boundary ConditionIn order to obtain a noslip boundary condition for a specified boundary, we use the "Bounce Back Method." This method has been discussed extensively in the literature and a few versions have been developed. The most simple scheme is to place a wall halfway between a wall grid point and a fluid grid point and then "bounceback" particles that stream into the wall. For instance, f_{4}, f_{7}, and f_{8} stream into the wall, and are bounced back by setting f_{5}=f_{7}, f_{2}=f_{4}, and f_{6}=f_{8}. Figure 1: Scheme describing the Bounce Back Method (Mohamad, 2011). Boundary Conditions with Known VelocityImposing a constant velocity at an inlet and outlet is commonly used in simulations. Let us focus on the west inlet in the picture below. Particles f_{6}, f_{3}, f_{7}, f_{2}, and f_{4} will stream onto a point on the wall; we must now solve for f_{5}, f_{1}, and f_{8} based on the constant velocity assumption. In general, one should apply bounceback to the nonequilibrium part of f on the boundaries, i.e. f_{5 } f_{5,eq}= f_{7 } f_{7,eq}_{ }(as discussed in_{ } Zou, Q., & He, X. (1997). On pressure and velocity boundary conditions for the lattice Boltzmann BGK model). feq depends on the hydrodynamic variables, so the constantvelocity boundary condition will enter through feq. In general this is a painful but necessary procedure. Figure 2: Schematic showing the known and unknown distribution functions at respective boundaries of the domain (Mohamad, 2011). Periodic Boundary ConditionsThe periodic boundary conditions is the simplest boundary condition because one can directly relate the knowns of one boundary to the unknowns of the other boundary. Namely, along boundary (a) of Fig. 3 the unknowns are, after streaming, f_{6}, f_{2}, and f_{5}. However, along boundary (b) these three distributions are known! We thus solve all of the unknowns by relating f_{6,a}=f_{6,b }, f_{2,a}=f_{2,b}, and f_{5,a}=f_{5,b}, and likewise for the other boundaries and for the unknowns of (b) relating them to the knowns of (a). Figure 3: Schematic illustrating the periodic boundary conditions and how they relate to each other and the flow (Mohamad, 2011). Imposed Pressure Difference Boundary ConditionThe pressure boundary condition is particularly confusing as pressure enters Lattice Boltzmann simulations in a subtle way. In our Lattice Boltzmann simulation, pressure is related to density by ΔP ∝ Δρc_{s}^{2}; the constant in front of Δρ relates to how we scaled our simulation. To set f at each boundary, we follow a procedure similar to the "Boundary Conditions with Known Velocity" above but now set ρ to a constant. Note that Lattice Boltzmann simulations become unstable when Δρ is large, so in practice we had to adjust the resolution of our simulation until Δρ~0.01. For this method it is also important to make sure that the initial velocity and density matches that of the imposed flow; if you do not do this, confusing shocks will propagate through the domain.References

Home >