关于算法:AIScience系列一-飞桨加速CFD计算流体力学原理与实践

3次阅读

共计 3632 个字符,预计需要花费 10 分钟才能阅读完成。

前言

AI+Science 专栏由百度飞桨科学计算团队出品,给大家带来在 AI+ 科学计算畛域中的一系列技术分享,欢送大家关注和踊跃探讨,也心愿气味相投的小伙伴退出飞桨社区,互相学习,一起摸索前沿未知。

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

行业背景与痛点

以后 AI 技术在 CV、NLP 等畛域已有了较为宽泛的利用,代替传统办法实现缺点检测、人脸检测、物体宰割、浏览了解、文本生成等工作,在产业界也造成了规模化的落地。然而放眼到更加广大的工业设计、制作等畛域,仍有诸多迷信和工程问题亟待解决。比方对于高层建筑构造、大跨桥梁、海上石油平台、航空飞机等,流体和构造的简单相互作用会引起能源荷载,进而导致抖振、涡振、驰振、颤振等流致振动,影响构造平安与退役年限。数值模仿是钻研工程构造流致振动的无效办法之一,然而传统数值办法须要大量的计算资源,在计算速度上有很大的局限性等等。

AI+ 科学计算畛域

前沿算法与典型利用案例

上述的问题指向了 AI+ 科学计算的倒退: 利用深度学习技术冲破维数高、工夫长、跨尺度的挑战,扭转科学研究范式,帮忙传统行业转型。提到 AI 办法,大家直观的印象是大数据、神经网络模型搭建与训练。在 CV,NLP 等畛域中也的确如此,AI 办法以数据驱动,训练出神经网络以模仿图像分类、语音辨认等理论问题中隐含的简单逻辑,整体是一个“黑盒”问题。但在解决科学计算相干问题上,应用的 AI 办法有所变动,除了应用纯数据驱动办法解决问题外,有时候还须要退出一些物理信息束缚,因而,须要更多的畛域相干常识。

具体来看,在科学计算畛域,往往须要针对陆地气象、能源资料、航空航天、生物制药等具体场景中的物理问题进行模仿。因为大多数物理法则能够表白为偏微分方程的模式,所以偏微分方程组的求解成为了解决科学计算畛域问题的要害。神经网络具备“万能迫近”的能力,即只有网络有足够多的神经元,就能够充沛地迫近任意一个连续函数。所以应用 AI 办法解决科学计算问题的一个思路是训练神经网络以模仿某个偏微分方程组的解函数。应用 AI 办法解决科学计算问题,绝对传统办法有一些潜在的劣势:

(1)高维问题解决劣势 传统办法个别是基于无限差分、有限元、无限体积等办法,求得偏微分方程组的近似解。这些办法面临着“维度劫难”,即计算量随着维度减少快速增长。在 AI 办法的神经网络中,维度减少带来的计算量减少是线性的。

(2)硬件加速劣势 传统办法因为存在串行运算,往往难以使用 GPU 等硬件进行减速。AI 办法中的训练和推理过程都比拟容易施展 GPU 等硬件劣势。

(3)泛化劣势AI 办法解决问题分为训练和推理两个过程,一次训练,屡次推理。借助神经网络的泛化能力,在某些物理参数条件下训练出的网络,在其余物理参数下也能够取得很好的模仿成果。

AI+ 科学计算畛域中最驰名的办法是 PINNs(Physics-informed neural networks)办法,该办法提出一种新的复合型的损失函数,由偏微分方程组局部,边界条件局部,初始条件局部三局部组成。

Lu, L., Meng, X., Mao, Z., & Karniadakis, G. E.(2021). DeepXDE: A deep learning library for solving differential equations.SIAM Review, 63(1), 208–228.  https://doi.org/10.1137/19m1274067

因为退出了物理信息束缚,该办法在没有任何输出数据的状况下,只指定边界条件和初始条件,就能够训练出神经网络拟合指标 PDE 的解。也有一些学者在原始 PINNs 办法的根底上进行改良,退出一些数据,造成偏微分方程局部、边界条件局部、初始条件局部、数据局部 4 局部组成的损失函数,进一步提高神经网络的模仿精度,在 3D 不可压的流体问题上获得了不错的后果。如下图所示,别离对三种不同 case 应用 PINNs 算法基于二维二元察看速度进行了 3D 流场重建,并计算了三种 case 中不同方向速度及压力的 L2 范数相对误差。能够发现 PINNs 办法能够精准捕获漩涡脱落的不稳定性。

Cai, S., Mao, Z., Wang, Z., Yin, M., &Karniadakis, G. E. (2022). Physics-informed neural networks (PINNs) for fluidmechanics: a review. Acta Mechanica Sinica.  https://doi.org/10.1007/s10409-021-01148-1

总体而言,AI 为科学计算问题的解决提供了新的钻研范式,无论是 AI 齐全取代传统办法,还是 AI 与传统办法交融的相干工作都在疾速倒退,将来会更大程度地影响整个科学计算畛域,成为新一代革命性的方向。

基于飞桨的

AI+ 科学计算产品计划

飞桨科学计算开发套件以开源深度学习框架飞桨为外围,联合科学计算畛域专有常识,搭配高性能的基础设施异构平台,提供给科研开发者简略易用的 AI+ 科学计算产品计划。

百度飞桨在 2021 年 12 月正式公布飞桨科学计算套件 0.1 版本,依靠底层外围框架在高阶主动微分性能上的技术革新,疾速高质量推动飞桨在 AI+ 科学计算畛域的能力建设。

飞桨科学计算套件提供泛化的微分、积分方程等接口以及两种求解器 PINNs(物理信息神经网络)和 FNO(傅立叶神经算子),撑持下层利用各种微分、积分方程的求解。并且咱们正在发展生态共建,联结打造多个跨畛域的仿真模块,并针对各个模块开发典型利用案例。飞桨科学计算套件目前已提供达西流(Darcy Flow)、顶盖方腔流(Lid-driven Cavity Flow)等计算流体力学畛域的经典算例。

撑持科学计算的

框架关键技术

飞桨科学计算开发套件整体依靠于飞桨外围框架,为了反对科学计算类工作,飞桨外围框架新增了函数式主动微分接口和局部算子高阶主动微分的性能。

主动微分机制是广泛应用于深度学习框架之中微分技术。区别于符号微分和数值微分,主动微分依靠深度学习框架中的计算图,在每个计算图节点内进行符号微分,并把节点间的微分后果用数值存储,进而实现比数值微分更准确,比符号微分更高效的微分机制。

相比传统 AI 工作,科学计算工作对框架提出了新的需要:(1)因为损失函数中存在方程局部,性能上要求反对更高阶的微分;(2)在用户接口上,须要提供更加贴近数学公式的函数式主动微分接口。

为了反对高阶微分,咱们一方面在框架中减少高阶导数算子,另一方面也在设计根底算子体系,反对不限阶数的主动微分。

在主动微分接口方面,咱们提供 jacobian,hessian,jvp,vjp 等函数式主动微分接口,让用户能够用更加天然的形式实现方程构建。

案例介绍:

PINNs 办法求解计算流体力学

顶盖驱动方腔流

Lid-driven Cavity Flow(顶盖驱动方腔流)是 CFD(计算流体力学)畛域中一个经典 benchmark 问题,罕用于验证计算方法,咱们抉择了这个问题作为 CFD 畛域中第一个典型利用案例。顶盖驱动方腔流中蕴含一个充斥液体的方形腔体。这个腔体三面关闭,顶部凋谢,顶部有程度方向的速度用来驱动方腔内的流体流动,其余三个腔壁为无滑动边界,速度为零。在这个问题下,咱们须要求解稳态不可压缩的 Navier-Stokes 方程。

其中 u 为顶盖速度,为流体密度,p 为压力。首先咱们在二维区域内选定计算域,形成正方形,并在 x、y 两个方向上进行离散选点。对四个壁面的边界条件定义如下:

咱们拟定顶盖初始速度为 1,雷诺数为 10 的状况下,应用 PINNs 办法对方腔内流场进行模仿。咱们求解定常 NS 方程,设定自变量空间坐标(x, y)作为 PINNs 网络的输出,网络的输入为流场中在 x,y 两个方向的速度(u, v)。损失函数定义为管制方程的损失函数与边界条件的损失函数乘以各自权重并相加。神经网络通过梯度降落反向流传等机制,将损失函数数值收敛到最小,因而将 NS 方程求解问题转化为优化问题。

神经网络 loss 定义:

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

预测流场速度(u, v)并转化为 vtk 文件进行可视化:

后果展现:

在低雷诺数下,流体粘性起到很大作用,在方腔的左右下方两个边角还未造成显著的涡,速度梯度平均。在 PINNs 办法下,和传统办法(OpenFOAM)后果比照程度方向最大均方误差为 7.38R-04,垂直方向最大均方误差为 5.99E-04。推理计算量和网格呈线性关系,推理速度大传统办法的 12~626 倍。

飞桨科学计算套件 Github:

https://github.com/PaddlePaddle/PaddleScience

下期预报

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

正文完
 0