OpenLB—Open source lattice Boltzmann code. (1st January 2021) - Krause, Mathias J.; Kummerländer, Adrian; Avis, Samuel J.; Kusumaatmaja, Halim; Dapelo, Davide; Klemens, Fabian; Gaedtke, Maximilian; Hafen, Nicolas; Mink, Albert; Trunk, Robin; Marquardt, Jan E.; Maier, Marie-Luise; et al.
Abstract: We present the OpenLB package, a C++ library providing a flexible framework for lattice Boltzmann simulations. The code is publicly available and published under GNU GPLv2, which allows for adaption and implementation of additional models. The extensibility benefits from a modular code structure achieved e.g. by utilizing template meta-programming. The package covers various methodical approaches and is applicable to a wide range of transport problems (e.g. fluid, particulate and thermal flows). The built-in processing of the STL file format furthermore allows for the simple setup of simulations in complex geometries. The utilization of MPI as well as OpenMP parallelism enables the user to perform those simulations on large-scale computing clusters. It requires a minimal amount of dependencies and includes several benchmark cases and examples. The package presented here aims at providing an open access platform for both, applicants and developers, from academia as well as industry, which facilitates the extension of previous implementations and results to novel fields of application for lattice Boltzmann methods. OpenLB was tested and validated over several code reviews and publications. This paper summarizes the findings and gives a brief introduction to the underlying concepts as well as the design of the parallel data structure.