目录
摘要
在本周中,通过阅读文献,对PINN在流体力学中的研究进行了解,在本次总结中选取其中一篇,低雷诺数情况下,PINN对圆柱绕流的预测和CFD的对比进行描述。Fluent中,选用催化转换器模型的内流场仿真,了解多孔介质流动在fluent中如何实现。理论学习方面,对层流和紊流相关知识进行了学习。
Abstract
In this week, I read the literature to understand the research of PIN in fluid mechanics, and in this summary,and chose one of the articles to describe the prediction of cylindrical flow and CFD in the case of low Reynolds number. In Fluent, the internal flow field simulation of the catalytic converter model was used to understand how the flow of porous media is implemented in Fluent. In terms of theoretical learning, the knowledge related to laminar flow and turbulence flow was studied.
文献阅读:
Physics-Informed Neural Networks for Low Reynolds Number Flows over Cylinder
低雷诺数圆柱流动的物理信息神经网络(PINN)
文献摘要
PINN可以用于流体动力学的代替模型,以降低计算成本,本次阅读的文献以使用PINN来验证流体力学中的公式,并以经典的低雷诺数圆柱绕流的案例呈现。在PINN架构中,层数的增加对结果精度的提高最大,其次是点云中点数的增加。增加每个隐藏层的节点数量带来的性能提升最小;且所需的计算内存比CFD更少,但所需的时间更长。文中也演示了不需要数据的PINN的直接公式,以及超参数设计和计算需求的比较。
现有问题
- CFD的预处理步骤需要生成计算网格,特别是对于具有运动边界的复杂区域,网格生成不好可能导致结果不准确。
- 所需时间过长,尽管最近计算能力有所提高,但使用CFD进行流体模拟仍然对计算量要求很高,特别是对于必须执行多次迭代的设计过程。
- 若使用其余替代模型,例如CNN、LTSM等,所需的训练数据庞大,使用CFD或实验数据训练网络也限制了模型在非常具体问题上的应用。
研究目的及方法
目的:
- 证明使用PINN来解决低雷诺数流动,并研究影响PINN架构设计的关键因素;包括改变神经网络层、节点的数量和点云的大小。
方法:
将把NavierStokes方程纳入到训练过程中,在不使用任何模拟或实验数据的情况下预测圆柱体的流场,为计算域的边界规定了自由流条件,并将用于训练PINN。
PINN的设置
NS方程介绍
在不可压缩流体中,NS方程表示为:
(其中t、x分别为时间坐标和空间坐标,u为速度矢量,p为压力,r、n分别为流体密度和运动粘度,Wf∧R3表示流体域)
初始和边界条件表示如下:
(Wf表示计算域的边界。控制方程、初始条件和边界条件必须在区域内完全满足)
若方程中出现不平衡的情况,即表明流场计算中存在误差,故需将不可压缩流体的NS方程积分后,加入PINN的损失函数中。
损失函数
如上式所示,损失函数中包括速度和压力的预测值,LI表示在初始条件下的损失情况,LB为边界处的损失函数,它们由PINN预测值与规定值之差的大小给出。Lphy表示物理中的损失,其中第一项和第二项分别是Navier-Stokes方程的连续性方程和动量方程的误差。为了满足Navier-Stokes方程,必须消除两个方程的误差。因此,任何非零误差值都可以视为对PINN的损失。Navier-Stokes方程的空间导数是使用自动微分计算的。在这种情况下,自动微分比数值微分更可取,因为后者会因选择有限差分格式而导致截断误差,而自动微分则提供基于PINN作为连续函数的解析导数。由于PINN的目标是通过最小化流体域的误差来求解控制方程,因此训练和求解步骤不需要实验或模拟数据。
训练过程以迭代或epoch的方式进行,从输入特征的前向传播开始,以计算每个点的速度和压力的预测输出值。输出值用于计算Navier-Stokes方程所需的空间导数。导数是使用自动微分计算,利用这些导数,计算自定义物理的损失函数。在每个历元中,优化器旨在减小损失函数,从而减小Navier-Stokes方程的残差和误差,以解决给定边界条件下的流动问题。
使用点云作为输入数据的流场预测PINN框架如下图:
训练方法
使用PyTorch建立一个完全连接的神经网络。在神经网络的建立中定义了隐藏层数、节点数和激活函数。其次,采用拉丁超立方体采样(LHS)生成流体域和边界的点云。
如下图所示,该案例为在二维稳定情况下,流体域点云中的每个点都包含x和y坐标,它们作为全连接网络训练的输入特征。输入特征的前向传播开始,以计算每个点的速度和压力的预测输出值。输出值用于计算Navier-Sto