Bauer M, Rüde U (2018)
Publication Language: English
Publication Type: Conference contribution, Abstract of lecture
Publication year: 2018
Event location: University of Delaware, Newark, Delaware, USA
There are many different lattice Boltzmann methods (LBM), starting from the wellknown singlerelaxationtime scheme with its multirelaxationtime (MRT) generalization, up to recently proposed entropic orcumulant methods.We present a symbolic toolkit that enables the user to formulate, analyse and run all these different LBschemes using a Pythonbased interface. For example, one can define a custom MRT LB method bychoosing a set of moments with corresponding equilibrium descriptions, analyse it by running anautomated ChapmanEnskog expansion, improve the scheme, and finally execute it efficiently on theGPU, all inside a user friendly, interactive Python environment. Our toolkit allows the definition andmodification of a LB method on different levels of complexity. For example, relaxation times can bedefined as a function of local flow properties. With this mechanism, extensions like nonNewtonian effectsor LES models can be easily incorporated into LB schemes by choosing relaxation times as functions oflocal shear stresses.Having the LB method available in symbolic representation allows us to use a set of transformations thatsimplify and optimize the formulation of the method. Depending on the scenario at hand and the targetarchitecture, different optimization steps are automatically applied. Transformations propagate constants,eliminate common subexpressions, improve cache characteristics by utilizing nontemporal stores, orautomatically determine optimal CUDA block sizes for GPU kernels. This optimized formulation is thencompiled to a highly efficient compute kernel, that can be called directly from the Python environment. Inaddition, the generated LB kernels can also be integrated into the waLBerla C++ framework [1] to runmassively parallel MPI simulations on blockstructured grids.
APA:
Bauer, M., & Rüde, U. (2018). lbmpy: A Flexible Symbolic Toolkit for Lattice Boltzmann Methods with CodeGeneration for CPUs and GPUs. Paper presentation, University of Delaware, Newark, Delaware, USA, US.
MLA:
Bauer, Martin, and Ulrich Rüde. "lbmpy: A Flexible Symbolic Toolkit for Lattice Boltzmann Methods with CodeGeneration for CPUs and GPUs." University of Delaware, Newark, Delaware, USA 2018.
BibTeX: Download