GPU accelerated lattice Boltzmann model for shallow water flow and mass transport

A lattice Boltzmann method for solving the shallow water equations and the advection-dispersion equation is developed and implemented on graphics processing unit (GPU)-based architectures. A generalized lattice Boltzmann equation with a multiple-relaxation-time (MRT) collision method is used to simulate shallow water flow. A two-relaxation-time (TRT) method with two speed-of-sound techniques is used to solve the advection-dispersion equation. The proposed LBM is implemented to an NVIDIA Computing Processor in a single GPU workstation. GPU computing is performed using the Jacket GPU engine for MATLAB. In the numerical examples, the MRT-LBM model and the TRT-LBM model are verified and show excellent agreement to exact solutions. The MRT outperforms the single-relaxation-time (SRT) collision operator in terms of stability and accuracy when the SRT parameter is close to the stability limit of 0.5. Mass transport with velocity-dependent dispersion in shallow water flow is simulated by combining the MRT-LBM model and the TRT-LBM model. The GPU parallel performance increases as the grid size increases. The results indicate the promise of the GPU-accelerated LBM for modeling mass transport phenomena in shallow water flows.

Authors: Kevin R. Tubbs and Frank T-C. Tsai at Louisiana State University
Speedup: >20X
System Specs: A single workstation with a 3.0 GHz Inte Core Extreme quad core and an NVIDIA Tesla C1060 GPU, with Jacket v1.2 and MATLAB R2008b.

Jacket Implementation Details

To implement the Lattice Boltzmann algorithm efficiently in Jacket, the code was first vectorized. The sub-domain size (i.e. the number of blocks), and thread block management and synchronization are facilitated automatically in Jacket. This study demonstrates the advantage of the Lattice Boltmann Model's inherent parallelism and the easy implementation to GPU's massively parallel computing capability using the MATLAB code and the Jacket GPU engine. Very little recoding was needed to promote the LBM code to run on the GPU.

Dambreak Simulation

Speedup Results

« Back to Case Studies