目录2: 数据驱动CFD理论编程
机器学习这是一个很大的类。最近几年跟各类学习都能交叉到一起。机器学习跟CFD结合就变成了数据驱动CFD。单独看这个影响力,简直可以用收割来形容。机器学习来收割各类学科,形成了学科交叉。所以这时候要注意,比如说是深度学习+CFD的交叉,可能搞到做实验去了,又时候可能都跑到python编程去了(跟OpenFOAM啥关系没有)。
我这面定位明确:紧密贴合OpenFOAM原生C++环境,枪打数据驱动CFD,先学理论,然后现场写代码。 python咱也不用。咱这个纯粹基于OpenFOAM就能搞起来。因此以下内容咱没有:没有机器学习+实验流体力学;没有机器学习+图像识别; 没有python、jupyterbook、conda;
请大家一准要看准定位。你要搞python (PyTorch),咱这也没有。本课程所有机器学习的代码通过OpenFOAM与libtorch直挂,不需要学python,直接用OpenFOAM就能搞。
本次课程新增 数据驱动CFD里面独树一帜的是PINN。本次课程将介绍PINN来求解病态问题,同时介绍全连接网络、残差神经网络植入、新的激活函数植入等。24年9月的课堂,计划介绍PINN求解常规的顶盖驱动流,但是由于太复杂没有介绍。课后将代码开源。不得不承认的是,PINN作为一个新兴的计算方法,用来计算流场训练实在是太慢了。因此使用PINN来计算流场,不像是走正常的套路。在本次课堂,将使用PINN来处理病态问题,用其处理经典CFD方法不能处理的问题,这个应该才是PINN真正的用处。这种应用也即之前刊发在Science正刊上的隐藏流体力学。否则用PINN来硬钢经典FVM,PINN必输无疑,太慢了。
24年9月新增 数据驱动CFD前沿热点:CFD经历了60多年的发展后,同位网格SIMPLE类算法在不可压缩领域统一江湖,可压缩领域通通都是密度基。数据驱动CFD目前的发展状况类似CFD在1970年代的情况,群魔乱舞百家齐放。目前还没有一个大统一的寡头算法出现。目前的态势是每家都有自己的特色,那么在10年后20年后数据驱动CFD,哪个算法会统一江湖目前还不确定。目前这一块研究的特色是杂!尤其在结合各种机器学习的网络后,更杂!但可以简单的进行归类。在《无痛苦NS方程笔记》里面,机器学习与CFD相应的结合点主要分为
流场重组(卷积网络、Unet、解码器、超分辨率、扩散模型与GAN)
求解加速(全连接网络、卷积网络、残差网络等)
数据驱动湍流模型(全连接网络、卷积网络、极限学习机等)
数据驱动多相流
循环神经网络与瞬态流场(循环神经网络、LSTM)
正向逆向PINN、隐藏流体力学
POD、DMD、流场降阶预测方法(不需要神经网络)
强化学习与过程控制
上述内容全部在《无痛苦NS方程笔记》里面有介绍,课堂上也会进一步的进行介绍。下面放两个《无痛苦NS方程笔记》里面的截图 难度等级✰
Warning
在这里要注意什么是研究热点。研究热点就是国际上某些方向研究的比较多,小众方向就是算法发出来之后没啥人关注也没人用。岳子结合自己的经验,主要介绍数据驱动CFD的研究热点。小众方向不会讲。
24年9月新增 本算例植入的算法不需要参考任何sci。我们要干的事,就是实现这个融资2个亿的算法。并且还非常简单,是个纯编程的玩意,啥算法都没有,预测的结果如下。岳子用8000块把技术普及,从0到1,剩下的从1到2搞出来,希望你们也可以融资2个亿,后续需要外协的时候继续找我难度等级✰✰
25年3月新增 本算例植入的算法不需要参考任何sci。PINN要比FVM简单太多。首先要从libtorch下手,试一下简单的线性回归。然后通过PINN来求解两个ODE,在植入的过程中会发现,PINN算法一些特性如:全连接网络、残差神经网络植入、新的激活函数植入、网络层数、方程的无量纲化等。PINN也可以求解槽道流,在课堂上不会介绍。PINN求解顶盖驱动流也没问题,但由于导数太多,具体能不能写完,看课堂进度。然后只要把网格改一个新几何,就可以用来计算其他流动,比如后向台阶流之类 难度等级✰✰✰
24年9月新增 本算例植入的算法请参考[MSP+19]。该模型可以通过数据驱动的方法来更新湍流粘度场,跟融资2个亿的算法类似。这一类算法是构建数驱湍流粘度的更新,然后继续通过经典CFD的方法进行流场求解 难度等级✰✰✰
24年9月新增 本算例植入的算法是岳子自创的。但是很多类似的文章都是使用类似的思想。在做数据驱动LES模型的时候,可以调整各种输入层的参数进行训练。岳子随便找了8个参数当做输入层,还真训练出来一个数据驱动LES模型。基本可以理解为把一坨屎塞进去,也能学个模型出来。这个没什么算法,重在思想,举一反三。回去换一套参数,一套新模型就出来了,一篇sci就完成来90%。这部分工作可以参考这个视频 难度等级✰✰✰
24年9月新增 本算例植入自编码器算法来进行流场快速预测。主要涉及到编码器、解码器、Unet、跳跃连接、OpenFOAM计算+libtorch训练一体化。算例首先通过OpenFOAM进行CFD计算,然后无缝连接libtorch机器学习,不需要跨平台、不需要重开python程序,直接进行训练 难度等级✰✰✰✰✰
24年9月新增 这个不做主要介绍,太简单了,在课堂上介绍一下思想完事了。 一个数据驱动的多相流模型:Drag coefficient prediction for non-spherical particles in dense gas–solid two-phase flow using artificial neural network
Romit Maulik, Himanshu Sharma, Saumil Patel, Bethany Lusch, and Elise Jennings. Accelerating RANS turbulence modeling using potential flow and machine learning. arXiv preprint arXiv:1910.10878, 2019.