arrow
Return

Simple lattice Boltzmann method algorithm with low memory usage

delete2022-07-01
delete2
PRE
AI
M
Morteza Namvar
S
Sébastien Leclaire *
DOI:10.1016/j.jocs.2022.101723delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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.
Keywords:
Lattice Boltzmann method
Memory ordering
Memory addressing
Memory layout
Algorithm
Performance

Journal

Nature Computational Science cover
Nature Computational Science
IF:
18.3
Papers:
3.1K
Citations:
4.0K

Organization

U
universite de montreal
Scholars:
4.6W
Papers: 3.8W
Citations: 46