Lattice Boltzmann Method has been used to simulate a fluid in a porous medium which was emulated with multiple spheres.
Category: Oil Industry Applications
Technologies: Simulation of fluids, Lattice Boltzmann Method, CUDA, OpenGL.
Lattice Boltzmann Method (LBM) has the ability to model a variety of complex fluid problems with complex boundary conditions, fluid miscible and immiscible and thermal effects. This makes LBM attractive for a wide variety of applications in science and engineering.
Our LBM simulator is based on the five methods shown in the following figure. Each of these methods are wrappers for the GPU kernels written in CUDA language. It really is a classic methodology, we have not invented anything, but we have created the associated CUDA kernels.
The methods of the last figure are applied indefinitely on every cell of a two-dimensional grid. The following two real time videos show the results for 1 and 17 small spheres. A grid of 512×256 cells was selected, the same number of pixels have the images. The color represents the modulus of the speed. The algorithm was tested on a 5 core CPU and two GPU, a GeForce GT525M with 96 cores, and a GTX680 with 1536 cores.
The spheres are immersed in a fluid with constant input speed to the right, any vertical component of the velocity exists. Initially there is a transient corresponding to the effect of immersing the spheres into the fluid and then the fluid is regularized and always runs to the right.
Table I allows us to compare the performances. In both cases we used an array of 16×16 = 256 blocks and 32×16 threads / block. The relationship between the number of cores used was 256/96 = 2.7, but we got a greater acceleration of 2250/540 = 4.2, which indicates that the GTX680 has better performance than the GT525M. We conclude that it is possible to get even better performance from the GTX680.