6533b7d6fe1ef96bd12667a3

RESEARCH PRODUCT

Comparison of implementations of the lattice-Boltzmann method

Jussi TimonenTuomo RossiKeijo MattilaJari Hyväluoma

subject

Computational fluid mechanicsMemory addressing schemesComputer scienceLattice Boltzmann methodsParallel computingSupercomputerAddressing modeHigh memoryMemory addressComputational MathematicsComputational Theory and MathematicsModeling and SimulationBundleModelling and SimulationLattice-Boltzmann methodImplementationHigh-performance computingCoding (social sciences)

description

AbstractSimplicity of coding is usually an appealing feature of the lattice-Boltzmann method (LBM). Conventional implementations of LBM are often based on the two-lattice or the two-step algorithm, which however suffer from high memory consumption and poor computational performance, respectively. The aim of this work was to identify implementations of LBM that would achieve high computational performance with low memory consumption. Effects of memory addressing schemes were investigated in particular. Data layouts for velocity distribution values were also considered, and they were found to be related to computational performance. A novel bundle data layout was therefore introduced. Addressing schemes and data layouts were implemented for the Lagrangian, compressed-grid (shift), swap, two-lattice, and two-step algorithms. Implementations were compared for a wide range of fluid volume fractions. Simulation results indicated that indirect addressing implementations yield high computational performance. However, they achieved low memory consumption only for very low fluid volume fractions. Semi-direct addressing implementations could also provide high computational performance. The bundle data layout was found to be competitive, sometimes by a wide margin, in all the cases considered.

10.1016/j.camwa.2007.08.001http://dx.doi.org/10.1016/j.camwa.2007.08.001