Skip to main content

格子玻尔兹曼方法的代码生成

项目描述

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: 引入额外的依赖项以简化循环,例如 libisl
  • interactive:安装依赖项以在 Jupyter 中工作,包括图像 I/O、绘图等。

选项可以组合,例如

pip install lbmpy[interactive,gpu,doc]

文档

阅读此处的文档并查看doc/notebooks.

贡献

要查看如何打开问题、提交错误报告、创建功能请求或提交对 lbmpy 的添加,请参阅 pystencils 的 贡献文档,因为 lbmpy 大量构建在 pystencils 上。

非常感谢 lbmpy 的贡献者。

请引用我们

如果您在出版物中使用 lbmpy,请引用以下文章:

概述:

多相:

  • M. Holzer 等人,通过代码生成在 CPU 和 GPU 上以高密度比对不混溶流体进行高效晶格玻尔兹曼多相模拟。国际高性能计算应用杂志,2021 年。https ://doi.org/10.1177/10943420211016525

延伸阅读

  • F. Hennig 等人,累积格子玻尔兹曼方法的自动代码生成。ICMMES,2021 年。海报链接

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

lbmpy-1.0.1.tar.gz (16.1 MB 查看哈希)

已上传 source