当前位置: X-MOL 学术arXiv.cs.MS › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods
arXiv - CS - Mathematical Software Pub Date : 2020-01-31 , DOI: arxiv-2001.11806
Martin Bauer, Harald K\"ostler, Ulrich R\"ude

Lattice Boltzmann methods are a popular mesoscopic alternative to macroscopic computational fluid dynamics solvers. Many variants have been developed that vary in complexity, accuracy, and computational cost. Extensions are available to simulate multi-phase, multi-component, turbulent, or non-Newtonian flows. In this work we present lbmpy, a code generation package that supports a wide variety of different methods and provides a generic development environment for new schemes as well. A high-level domain-specific language allows the user to formulate, extend and test various lattice Boltzmann schemes. The method specification is represented in a symbolic intermediate representation. Transformations that operate on this intermediate representation optimize and parallelize the method, yielding highly efficient lattice Boltzmann compute kernels not only for single- and two-relaxation-time schemes but also for multi-relaxation-time, cumulant, and entropically stabilized methods. An integration into the HPC framework waLBerla makes massively parallel, distributed simulations possible, which is demonstrated through scaling experiments on the SuperMUC-NG supercomputing system

中文翻译:

lbmpy:用于高效并行格子 Boltzmann 方法的自动代码生成

格子玻尔兹曼方法是宏观计算流体动力学求解器的一种流行的介观替代方法。已经开发了许多变体,其复杂性、准确性和计算成本各不相同。扩展可用于模拟多相、多分量、湍流或非牛顿流动。在这项工作中,我们展示了 lbmpy,这是一个代码生成包,支持多种不同的方法,并为新方案提供通用的开发环境。高级域特定语言允许用户制定、扩展和测试各种格子 Boltzmann 方案。方法规范以符号中间表示形式表示。对这个中间表示进行操作的转换优化和并行化该方法,产生高效的格子 Boltzmann 计算内核,不仅适用于单弛豫时间和双弛豫时间方案,还适用于多弛豫时间、累积量和熵稳定方法。集成到 HPC 框架 waLBerla 使大规模并行、分布式模拟成为可能,这通过 SuperMUC-NG 超级计算系统的扩展实验得到证明
更新日期:2020-04-14
down
wechat
bug