CFD与机器学习基本概念入门
-
相关资料:
- 综述《Brunton S L, Noack B R, Koumoutsakos P. Machine learning for fluid mechanics[J]. Annual review of fluid mechanics, 2020,52:477-508.》,Steven L. Brunton 的youtube对应视频:Machine Learning for Fluid Mechanics,B站有人搬运:https://space.bilibili.com/426717813
- Steven L. Brunton 的开源书籍《Machine Learning, Dynamical Systems and Control》,网站是 https://databookuw.com/ ,有对应翻译中文版《数据驱动的科学和工程》出版
-
贡献点我们非常初级的尝试,主要还是希望这个帖子别沉了。机器学习挺重要,真的很有用,就当抛砖引玉吧。
1、我们是做的这种,但这应该是比较低级的应用场景,不解决太多实质问题。
为什么这么说?我们放了几个风流模拟出来的结果进行训练,然后给一个新的地形可以出一个结果。但这个结果用一个新的CFD也可以算出来,更重要的是:用于训练的CFD结果不一定是对的,这个不对的程度不清楚是否会被机器学习的过程放大;训练所消耗的算力相比于单个CFD来说是量级的放大,工程应用上真说不好谁更有性价比。
我看过不少其他人做的CFD+机器学习,更多的是效率提升(也可能我更关注这部分)。比如涉及到非牛顿流体的,可以加速粘性和切变在求解中需要的迭代;涉及燃烧的,因为化学反应只在很薄的物理空间上进行,传统的并行方式会导致大部分CPU总是在等待少部分CPU的结果,机器学习可以优化。
当然了还有基于CFD结果进行优化设计的,这部分有很多和机器学习相关的工作,应用也很广泛。还有间接相关的,比如采用机器学习做风速的垂直外推,然后送到CFD里面再做风流模拟。
2、没做过,但这个应该也可以。
3、我觉得这个不是哦,其实机器学习怎么和CFD结合还不清楚呢,看需求和应用场景。
4、是的,要跑很多次CFD,所以算力消耗很大。
-
还有一类机器学习模型叫做PINNS(Physics-informed neural networks ), 模型把PDE嵌入了模型求解,所以要求的基本数据库也就变的更小了,最近有的用来做湍流这些,感觉还是比较有意思的。列了一些最近遇到的参考文献,抛砖引玉:
Raissi, M., Perdikaris, P., & Karniadakis, G. (2017). Physics Informed Deep Learning (Part I): Data-driven Solutions of Nonlinear Partial Differential Equations.
Eivazi, H., Tahani, M., Schlatter, P., & Vinuesa, R. (2022). Physics-informed neural networks for solving Reynolds-averaged Navier-Stokes equations. Physics of Fluids, 34. https://doi.org/10.1063/5.0095270
He, Q., & Tartakovsky, A. (2021). Physics‐Informed Neural Network Method for Forward and Backward Advection‐Dispersion Equations. Water Resources Research, 57. https://doi.org/10.1029/2020WR029479
-
最近在网上看到这一份Philippe Spalart的讲座ppt,大致体会下来感觉是表达对AI的不信任。
https://turbmodels.larc.nasa.gov/Turb-prs2022/Slide_presentations/Day_1/03_Spalart_invitedtalk_1.pdf
李老师有空的话可以带大家总结一下这份ppt -
@allanZhong 材料非常好,我看看
-
@allanZhong 马上推!Spalart大佬确实霸气。硬怼机器学习!
针对我的问题:
CFD+机器学习大体的思路是不是这样:
是的。是一种监督学习。
CFD+机器学习能否出瞬态的结果?
可以,监督学习出瞬态结果很难。但是可以建立代理模型。
PINN也可以出瞬态结果。我看他们有人用OpenFOAM+pytorch,这两个都是开源软件并且源代码已经提供,那做CFD+机器学习还需要研究别的东西么?还是说直接把OpenFOAM+pytorch搞起来就完成90%的工作了?
需要定义输入层以及输出层。主要是替代模型的关系。
PINN需要自己植入方程。如果说需要通过CFD设置10个边界条件,得到10个最终稳定的流场结果然后把这个当做训练数据的话,那岂不是需要CFD算很多次?
是的。监督学习是这样。强化学习也是这样。数据驱动类模型大多都这样。
PINN不需要。