查看原文
其他

DeepFlame: 共建AI for Science时代的燃烧反应流体计算平台

陈帜 深度势能 2022-09-11


燃烧,特别是多相与湍流中的燃烧,涉及一系列复杂多尺度问题的交叉融合,是长期以来宏观尺度科学计算的痛点领域。近期DeepModeling开源社区发起了「机器学习+物理建模+高性能计算」的全新研究范式,为此领域带来了寻求系统性解决方案的机会。


DeepFlame项目基于OpenFOAM、Cantera、Torch等开源平台,结合异构并行与AI加速器等新一代算力基础设施,旨在建设高精度、高效率、简单易用、覆盖面广的燃烧反应流的数值模拟程序,尝试解决闭源代码权威化、算力资源垄断化、祖传代码老化僵化等问题。同时希望结合开源社区的力量,为广大燃烧模拟用户搭建共享代码、算力平台和算例库,尝试改变研究者无代码可用、论文结果难以复现等诸多困局。


点击下方视频观看DeepFlame官方介绍👇

也可以去B站观看,视频链接:https://www.bilibili.com/video/BV1Vf4y1f7wB?share_source=copy_web


为什么发起DeepFlame



基于宏观连续介质Navier-Stokes方程数值求解的计算流体力学(Computational Fluid Dynamics,简称CFD)已经在航空航天、气象预测等领域发挥着不可替代的作用。计算机求解连续偏微分方程需要进行数值离散,基于空间网格化的有限体积方法作为应用最为广泛的方法之一,已经在各类国外商业CFD软件中实现并工程化,例如ANSYS Fluent、StarCCM+等。


另一方面,宏观层面的化学反应动力学计算普遍使用Arrhenius公式求解基元反应速率。燃烧系统通常包含成百上千的组分以及更多的基元反应个数,因此需要在时间维度上求解一个大型的常微分方程组。对于此类方程组的求解,国外也已经有类似的商业软件如ChemkinPro、CosiLab等。


然而,带有燃烧反应的流体力学计算需要对以上两个方面进行交叉耦合,面临更大挑战。虽然各类商业软件进行了不少功能上的开发与尝试,目前的计算精度和效率都比较低,还难以达到工业应用场景的要求。从科学研究的角度来看,我们亟需一套广泛普及的开源代码来支撑燃烧反应流体力学科学计算的发展。


近年来,随着计算机技术逐渐深入科学研究领域,程序代码的开源与协同开发大大推动了各行业的发展。这正在成为共识。在众多的开源程序中,OpenFOAM[1]和Cantera[2]分别在CFD和反应动力学计算领域脱颖而出,拥有全球范围内最为广泛的使用者和开发者群体。近期国内外研究团队开展了将两者结合的尝试,但未能形成有效的开源协同开发机制,研究局限于课题组内而缺乏外部生态,并没有得到普及。在深度学习方面,大家对Torch、TensorFlow等开源库的使用仍然比较独立,尚未做到与燃烧CFD的融合,高度串行的工作流也存在效率低下、可迁移性差、易出错等问题。


瞄准这些问题,我们发起DeepFlame项目初衷是立足于DeepModeling社区已经形成的开源协同文化,并借鉴社区内其他领域项目的发展经验,建设一个服务于燃烧反应流体科学计算社区的开源平台,吸引更多的开发者加入我们的行列,进而反哺到更广泛的用户群体当中,乃至推动燃烧计算在工业场景中的应用落地。


DeepFlame解决的痛点



首先需要明确的是,DeepFlame的目标不是做一套通用的CFD软件。我们只针对燃烧反应流体力学这块「难啃的骨头」。


  • 有了这个出发点,显然第一件要做的事情就是将几百万行代码的OpenFOAM进行「瘦身」,尽可能地减少对于不相关功能库的依赖,同时保证源码结构的完整性(便于将来版本迁移)。这听起来似乎有点trivial,但熟悉OpenFOAM「套娃」结构的都知道,这很不容易。

  • 我们尝试解决的另一个痛点是,如何用Cantera完全替代冗长的OpenFOAM燃烧反应热物理库、以及与反应机理相关的庞大字符串和参数的读取和计算,从而变得更为高效(精简前后代码和逻辑框架见下图)。

  • 在融合AI功能方面,我们也完成了一个示范性的验证。对于限制计算速度的化学反应速率刚性问题,DeepFlame既可以调用Cantera集成的SUNDIALS CVODE求解器[3],也能够兼容pyTorch原生格式的神经网络替代模型(相关算法可参考[4])。


虽然目前DeepFlame的功能还比较有限,但它已经初步实现了高效率、可移植、跨平台的OpenFOAM-Cantera-Torch三方耦合,为后续的物理建模、高性能计算和机器学习三管齐下、融合并进打下了基础。


DeepFlame热物理化学库精简过程示意图


DeepFlame现在能做什么



基于以上代码框架和热物理化学库,DeepFlame目前的功能包括:


  • df0DFoam、dfLowMachFoam、dfHighSpeedFoam和dfSprayFoam四个核心求解器

  • 每个求解器均在examples中提供了相应的算例以及配套的Allrun和Allclean脚本

  • 可计算的体系包括:开放/受限空间强湍流火焰、复杂反应动力学层流火焰、喷雾/颗粒燃烧、超声速燃烧、缓燃转爆轰、连续旋转爆轰波等

  • 可读入任意大小的化学反应机理(支持cti、xml、yaml格式)

  • 可调用UnityLewis、Mix、Multi等Cantera原生详细输运模型

  • 包含cvode与torch两种化学反应速率求解器

  • 适配国产ARM异构芯片(鲲鹏、飞腾)


A "deep flame" (DNN-generated) trapped in Taylor-Green Vortex
 – 泰勒-格林涡中“深陷的火焰”


DeepFlame将来要做什么




物理建模 + AI

当我们谈论连续介质区间内的燃烧反应流体力学,主要的物理建模对象可分为:


  1. 未解尺度湍流模型(雷诺平均或亚格子应力)

  2. 化学反应动力学模型(含详细机理、机理简化、ODE积分)

  3. 未解尺度湍流与化学反应相互作用模型(雷诺平均或亚格子反应速率)


其中,我们已开展的工作集中在模型2。因此,DeepFlame当前可用于尺度全解析的模拟。对于模型2中的详细机理,我们计划与DeepModeling社区中第一性原理分子动力学模拟[5]项目相结合,获得更优的反应路径和速率常数。对于模型1和3,因为涉及空间尺度和边界条件等效应,获取训练数据维度上限都还不明确,模型的泛化性是非常大的挑战。另一方面,受限于OpenFOAM的时空二阶精度,我们正在发展用于生成小尺度效应训练数据的高阶精度程序。Beyond 理想气体,还有超临界状态下的真实气体效应、连续相液体的雾化过程的建模也需要我们在DeepFlame框架下进行探索。


高性能计算

当你登陆到世界上任意一台国家级超算,输入qstat或squeue的显示任务列表命令,出现在屏幕上的大概率是VSAP、LAMMPS、还有形形色色的CFD代码名字。燃烧相关的CFD可能占据了宏观尺度科学计算一半以上的算力需求。目前DeepFlame的并行框架来自原生的OpenFOAM,其并行加速能力并不突出,亟需改进。同时,化学反应速率计算和AI推理运算放到GPU等加速器上会有更好的效果。这些都是我们接下来工作的方向。另外在Exascale Computing的背景下,DeepFlame将来也需要在新一代的国产异构超算平台上进行适配和优化,支撑更大规模和更快速度的计算。


如何参与DeepFlame的开发




如果你感兴趣DeepFlame的燃烧CFD和机器学习代码开发或者高性能优化,推荐直接通过GitHub与我们取得联系。你的任何想法都将得到重视!由于项目尚处在相对早期的阶段,我们也将在近期逐渐从需求出发,组建沟通群组、搭建更多渠道。


如果你想使用DeepFlame开展科研工作、请在GitHub关注DeepFlame、关注本公众号,随时了解相关动态。此外,欢迎你联系加入「DeepFlame用户交流群」一起探讨DeepFlame的使用技巧!


DeepFlame项目github地址:

https://github.com/deepmodeling/deepflame-dev


DeepFlame团队和开发历程




DeepFlame由北京大学陈帜发起和主导开发,南方科技大学张天汉和上海交通大学许志钦提供AI建模支持,依托北京科学智能研究院(AISI)的科研合作平台,由DeepModeling社区提供代码托管及相关技术支持。


  • 2022年1月16日,在中国工程热物理学会-燃烧学学术年会-湍流燃烧专题特邀报告上,陈帜研究员对燃烧学界的同行们疾呼:“没有广泛普及的开源计算程序平台,湍流燃烧模拟基础研究很难进一步得到有效的发展。”  – 立下Flag

  • 2022年2月底,团队初步组建完成,DeepFlame项目正式启动。

  • 2022年3月中,实现了基于最简热物理库的OpenFOAM-Cantera耦合。

  • 2022年4月底,完成了df0DFoam 、dfLowMachFoam、dfHighSpeedFoam气相求解器的开发。

  • 2022年5月底,完成了基于拉格朗日点源方法的喷雾燃烧求解器dfSprayFoam开发,并实现了Torch API的接入,以及国产ARM架构芯片(鲲鹏、飞腾)的适配。

  • 2022年6月13日,DeepFlame代码仓库正式入驻DeepModeling社区,并开源发布v0.1.0版本。


Next,期待你成为DeepFlame的天使用户,更期待你加入我们成为DeepFlame的开发者!


参考文献

[1] H. G. Weller, G. Tabor, H. Jasak, C. Fureby. A tensorial approach to computational continuum mechanics using object-oriented techniques. Computers in Physics, 12(6):620, 1998.

[2] D. G. Goodwin, H. K. Moffat, I. Schoegl, R. L. Speth, B. W. Weber. Cantera: An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes. https://www.cantera.org, 2022.

[3] A. C. Hindmarsh, P. N. Brown, K. E. Grant, S. L. Lee, R. Serban, D. E. Shumaker, C. S. Woodward. SUNDIALS: Suite of nonlinear and differential/algebraic equation solvers. ACM Transactions on Mathematical Software (TOMS), 31(3):363-396, 2005.

[4] T. Zhang, Y. Yi, Y. Xu, Z. X. Chen, Y. Zhang, W. E, Z.-Q. J. Xu. A multi-scale sampling method for accurate and robust deep neural network to predict combustion chemical kinetics. arXiv:2201.03549, 2022.

[5] J. Zeng, L. Cao, M. Xu, T. Zhu, J. Z. H. Zhang. Complex reaction processes in combustion unraveled by neural network-based molecular dynamics simulation. Nature Communications. Nature Communications, 11(1):1-9, 2020.

参与贡献DeepFlame v0.1.0人员名单 

陈帜 ·韩宇昂 ·杭良慨 ·李晗 ·李晓龙 ·林闽淇 ·毛润泽 ·王栋 ·王海骁 ·王霆浩 ·王志伟 ·徐逸凡 ·许志钦 ·弋钰枭 ·张敏 ·张天汉 ·张耀宇 (按姓氏首字母排序)


- End -

(如需转载图文请与公众号后台联系)

-------------------------------

推荐阅读

DeepModeling社区宣言

dflow:共同构建AI for Science和云原生时代的科学计算工作流 

DeePMD-kit v2.0.0:AI+分子模拟的新起点


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存