格子玻尔兹曼方法的代码生成
项目描述
lbmpy
在 CPU 和 GPU 上运行基于 Python 中的格子 Boltzmann 方法的快速流体模拟。lbmpy 在 C 或 CUDA 中创建高度优化的 LB 计算内核,用于各种不同的碰撞算子,包括 MRT、熵和累积方案。
所有碰撞算子都可以轻松调整,例如集成湍流模型、自定义力项或多相模型。它甚至带有基于 sympy 的集成 Chapman Enskog 分析!
可以快速设置常见的测试场景:
from pystencils import Target
from lbmpy.session import *
ch = create_channel(domain_size=(300, 100, 100), force=1e-7, method=Method.TRT,
equilibrium_order=2, compressible=True,
relaxation_rates=[1.97, 1.6], optimization={'target': Target.GPU})
要了解更多信息,请使用 binder 在线查看交互式教程笔记本。
安装
对于本地安装,请使用 pip:
pip install lbmpy[interactive]
没有[interactive]你得到一个依赖很少的最小版本。
所有选项:
gpu:如果有 NVIDIA GPU 并且安装了 CUDA,请使用此选项opencl:使用它来启用目标opencl(使用 OpenCL 执行)alltrafos: 引入额外的依赖项以简化循环,例如 libislinteractive:安装依赖项以在 Jupyter 中工作,包括图像 I/O、绘图等。
选项可以组合,例如
pip install lbmpy[interactive,gpu,doc]
文档
阅读此处的文档并查看doc/notebooks.
贡献
要查看如何打开问题、提交错误报告、创建功能请求或提交对 lbmpy 的添加,请参阅 pystencils 的 贡献文档,因为 lbmpy 大量构建在 pystencils 上。
非常感谢 lbmpy 的贡献者。
请引用我们
如果您在出版物中使用 lbmpy,请引用以下文章:
概述:
- M. Bauer 等人,lbmpy:高效并行格玻尔兹曼方法的自动代码生成。计算科学杂志,2021。https ://doi.org/10.1016/j.jocs.2020.101269(预印本)
多相:
- M. Holzer 等人,通过代码生成在 CPU 和 GPU 上以高密度比对不混溶流体进行高效晶格玻尔兹曼多相模拟。国际高性能计算应用杂志,2021 年。https ://doi.org/10.1177/10943420211016525
延伸阅读
- F. Hennig 等人,累积格子玻尔兹曼方法的自动代码生成。ICMMES,2021 年。海报链接