A modular lattice Boltzmann solver for GPU computing processors
Monday 18th July 2011
Astorino, M.; Becerra Sagredo, J.; Quarteroni, A.
During the last decade, the lattice Boltzmann method (LBM) has been increasingly acknowledged as a valuable alternative to classical numerical techniques (e.g. finite elements,finite volumes, etc.) in fluid dynamics. A distinguishing feature of LBM is undoubtedly its highly parallelizable data structure. In this work we present a general parallel LBM framework for graphic processing units (GPUs). After recalling the essential programming principles of the CUDA C language for GPUs, the details of the implementation will be provided. The modular and generic framework here devised guarantees a flexible use of the code both in two- and three-dimensional problems. In addition, a careful implementation of a memory efficient formulation of the LBM algorithm has allowed to limit the high memory consumption that typically affects this computational method. Numerical examples in two and three dimensions illustrate the reliability and the performance of the code.