Abstract

As lattice Boltzmann simulation codes require updating several million floating point values thousands of times, optimized implementation and efficient data structure are crucial to minimize memory consumption and use all the available computational power. In this paper, a new lattice Boltzmann algorithm is proposed, suitable for the simulation of large-scale systems by avoiding storing the data of solid nodes. As a structure-of-array memory layout is used, the streaming step is performed by a simple shift operation. The advantages of this algorithm are the simplicity of the memory layout and streaming function implementation. Because the algorithm utilizes an indirect addressing scheme, particularly for low void fraction geometries the memory resources are used efficiently. As no computation is carried out for solid nodes, a good performance for irregular geometries with low void fractions is also achieved. To verify the implementation of the proposed algorithm several academic benchmarks are studied, including Poiseuille flow, Cavity flow, and Cylinder flow. A theoretical estimation of the memory consumption is carried out for different void fractions. Then the performance of the implemented code is investigated by simulating flow around two complex geometries and the memory usage and computational performance compared to the Palabos code.

Links and resources

Tags