螺旋桨空气动力学

核心提示前言AI+Science专栏由飞桨科学计算团队出品,给大家带来在AI+科学计算领域中的一系列技术分享,欢迎大家关注和积极讨论,也希望志同道合的小伙伴加入飞桨社区,互相学习,一起探索前沿未知。作为系列分享的第一篇,本文内容涵盖行业背景与痛点、

AI+科学专栏由飞桨科学计算团队出品,为大家带来AI+科学计算领域的一系列技术分享。欢迎大家的关注和积极讨论,也希望志同道合的朋友可以加入飞桨社区,相互学习,共同探索未知的前沿。

作为系列分享的第一部分,本文涵盖了行业背景及痛点、AI+科学计算领域的前沿算法、基于飞桨的AI+科学计算的产品方案、飞桨框架涉及的关键技术、PINNs方法求解计算流体力学方腔流动的案例等。

行业背景和痛点

目前,AI技术已经广泛应用于CV、NLP等领域,取代传统方法完成缺陷检测、人脸检测、对象分割、阅读理解、文本生成等任务。,而且在行业内也形成了大规模的落地。然而,当我们放眼更广阔的工业设计、制造等领域时,仍然有许多科学和工程问题需要解决。例如,用于高层建筑结构、大跨度桥梁、海上石油平台、飞机等。流体与结构之间的复杂相互作用会产生动荷载,从而导致抖振、涡振、驰振和颤振等流致振动,影响结构的安全性和使用寿命。数值模拟是研究工程结构流致振动的有效方法之一,但传统的数值方法需要大量的计算资源,在计算速度上有很大的局限性。

AI+科学计算领域

前沿算法及典型应用案例

上述问题指向AI+科学计算的发展:利用深度学习技术突破高维、长时间、跨尺度的挑战,改变科研范式,助力传统行业转型。说到AI方法,大家的直观印象就是大数据、神经网络建模和训练。CV、NLP等领域也是如此。AI方法是数据驱动,训练神经网络模拟隐藏在图像分类、语音识别等实际问题中的复杂逻辑,整体上是一个“黑箱”问题。然而,当涉及到解决与科学计算相关的问题时,使用的AI方法已经发生了变化。除了使用纯数据驱动的方法解决问题,有时还需要加入一些物理信息约束。所以需要更多的领域相关知识。

具体来说,在科学计算领域,往往需要模拟海洋气象、能源材料、航空空航天、生物制药等特定场景下的物理问题。由于大多数物理规律都可以用偏微分方程的形式来表示,所以偏微分方程的求解就成为科学计算领域中解决问题的关键。神经网络具有“泛逼近”的能力,即只要网络有足够多的神经元,就可以完全逼近任何连续函数。所以用AI方法解决科学计算问题的一个思路就是训练神经网络模拟一个偏微分方程组的求解函数。使用人工智能方法解决科学计算问题比传统方法有一些潜在的优势:

高维问题求解的优势传统方法一般是基于有限差分、有限元、有限体积等方法来获得偏微分方程的近似解。这些方法面临着“维数灾难”,即计算量随着维数的增加而迅速增加。在AI方法的神经网络中,维数的增加带来的计算量的增加是线性的。

硬件优势:传统方法由于串行运算,往往难以使用GPU等硬件加速。AI方法中的训练和推理过程很容易利用GPU等硬件优势。

广义的AI方法可以分为两个过程:训练和推理,一次训练和多次推理。利用神经网络的泛化能力,在某些物理参数下训练的网络在其他物理参数下也能得到很好的仿真结果。

AI+科学计算领域最著名的方法是PINNs方法,提出了一种新的复合损失函数,由偏微分方程、边界条件和初始条件组成。

陆,孟,x,毛,z,卡尼达基斯,G. E..DeepXDE:求解微分方程的深度学习库。暹罗评论,63,208–228。https://doi.org/10.1137/19m1274067

由于物理信息的约束,该方法无需任何输入数据,只需指定边界条件和初始条件,即可训练神经网络拟合目标偏微分方程的解。有学者对原PINNs方法进行了改进,加入一些数据,形成由偏微分方程、边界条件、初始条件和数据组成的损失函数,进一步提高了神经网络的模拟精度,在三维不可压流体问题中取得了良好的效果。如下图所示,基于二维二元观测速度,采用PINNs算法对三种不同情况进行了三维流场重建,计算了三种情况下不同方向速度和压力的L2范数相对误差。可以发现,PINNs方法可以精确地捕捉旋涡脱落的不稳定性。

蔡,毛,张,王,张,尹,米,卡尼达基斯。流体力学的物理学信息神经网络:综述。机械学报。https://doi.org/10.1007/s10409-021-01148-1

总的来说,人工智能为科学计算问题的解决提供了一种新的研究范式。无论是AI完全取代传统方法,还是AI与传统方法融合的相关工作都在快速发展,未来将更大程度地影响整个科学计算领域,成为新一代的革命性方向。

基于飞桨的

AI+科学计算产品方案

Flying Paddle科学计算开发套件以开源深度学习框架Flying Paddle为核心,结合科学计算领域的专有知识,匹配高性能异构基础设施平台,为科研开发者提供简单易用的AI+科学计算产品方案。

飞桨于2021年12月正式发布了飞桨科学计算套件0.1版本。依托底层核心框架在高阶自动微分功能上的技术创新,快速优质地推动了飞桨在AI+科学计算领域的能力建设。

飞螺旋桨科学计算套件提供了微分和积分方程等通用接口,以及两个求解器PINNs和FNO,支持上层应用各种微分和积分方程进行求解。并且我们正在开展生态共建,联合打造多个跨领域的仿真模块,为每个模块开发典型应用案例。目前飞螺的科学计算工具包已经提供了一些计算流体力学中的经典算例,如达西流、顶盖中的方腔流等。

支持科学计算

框架的关键技术

飞螺科学计算开发包整体上依赖于飞螺核心框架。为了支持科学计算任务,飞桨核心框架增加了函数自动微分接口和部分算子高阶自动微分的功能。

自动分化机制是深度学习框架中广泛使用的一种分化技术。与符号微分和数值微分不同,自动微分依托深度学习框架中的计算图,在每个计算图节点中进行符号微分,用数值存储节点间的微分结果,从而实现了一种比数值微分更准确、更高效的微分机制。

与传统的AI任务相比,科学计算任务对框架提出了新的要求:由于损失函数中的方程部分,要求支持高阶微分;在用户界面上,需要提供更接近数学公式的功能性自动微分界面。

为了支持高阶微分,我们一方面在框架中加入高阶导数算子,另一方面设计了一个基本的算子系统,支持无限阶的自动微分。

在自动微分接口方面,我们提供了jacobian、hessian、jvp、vjp等功能性自动微分接口,让用户可以用更自然的方式建立方程。

案例介绍:

求解计算流体力学的PINNs方法

顶盖驱动方腔流动

盖子驱动的空腔流动是CFD领域的经典基准问题,常用于验证计算方法。我们选择这个问题作为CFD领域的第一个典型应用案例。顶盖的驱动方腔流包含一个充满液体的方腔。这个空腔三面封闭,顶部敞开。顶部具有水平速度,以驱动方形空腔中的流体流动。另外三个腔壁没有滑动边界,速度为零。在这个问题下,我们需要求解定常不可压Navier-Stokes方程。

u是顶盖速度、流体密度,p是压力。首先,我们在二维区域中选择计算区域形成一个正方形,在X和Y方向上离散地选择点。四面墙的边界条件定义如下:

当顶盖的初始速度为1,雷诺数为10时,采用PINNs方法模拟方腔内的流场。我们求解定常NS方程,将自变量空之间的坐标设为PINNs网络的输入,网络的输出为流场x、y方向的速度。损失函数定义为控制方程的损失函数和边界条件的损失函数乘以各自的权重并相加。神经网络通过梯度下降和反向传播机制将损失函数收敛到最小,从而将NS方程求解问题转化为优化问题。

神经损失的定义:

调用PINNs解算器来设置训练参数:

预测流场速度并转换成vtk文件进行可视化;

结果显示:

在低雷诺数下,流体的粘性起着重要作用,方腔的左右角没有明显的旋涡,速度梯度均匀。与传统方法的结果相比,PINNs方法的最大均方误差水平方向为7.38R-04,垂直方向为5.99E-04。推理量与网格成线性关系,推理速度比传统方法快12~626倍。

飞行螺旋桨科学计算套件Github

https://github.com/PaddlePaddle/PaddleScience

下期预测

AI+科学专栏将继续为大家带来AI+科学计算的一系列技术分享。下期分享——基于飞桨科学计算套件的二维流场典型案例分析。

 
友情链接
鄂ICP备19019357号-22