AI for Science被广泛认为是下一代科研范式,可以有效处理多维度、多模态、多场景下的模拟和真实数据,解决复杂推演计算问题,加速新科学问题发现[1] 。百度飞桨科学计算工具组件赛桨PaddleScience是国内首个公开且可应用于CFD(Computational Fluid Dynamics,计算流体力学)领域的工具,提供端到端应用API,致力于解决科学计算类任务。赛桨综合数学计算与物理数据相结合的处理方法,提供物理机理约束的PINNs(Physics Informed Neural Networks 物理信息神经网络)加速求解偏微分方程,解决计算流体力学中的仿真分析。本篇文章将重点介绍赛桨PaddleScience v1.0 Beta的典型案例及API使用示例。

赛桨提供的典型案例包含使用AI方法进行顶盖驱动方腔流(LDC)、达西流、2D&3D圆柱绕流的流场预测及涡激振动(VIV)。所有案例都基于泛化的微分方程、PINNs求解器、控制体、网络定义以及可视化等多种接口。下面我们将详细讲解赛桨PaddleScience v1.0 Beta中提供的计算流体力学案例及科学计算API的功能及使用。

图1 PaddleScience v1.0 Beta产品全景

场景案例详解

前言

在流体领域,流体力学作为比较传统的物理学科,广泛应用于航空航天、船舶工业以及建筑、水利、能源等工程领域。

  • 在航空工程和造船工业中,如飞行器和船舶的外形设计、操控性、稳定性等问题成为流体力学中广泛的研究课题,并促使流体力学得到了很大的发展。

  • 在水利工程中,如大型水利枢纽和水力发电站的设计与建造、洪峰的预报工作、河流泥沙等问题都与流体力学紧密关联。

  • 在动力机械制造工业中,如何提高水力及蒸汽涡轮、喷气发动机、压缩机和水泵等动力机械的性能,与叶片、导流片及其他零件设计形状的正确性有关。

随着工程问题的深入,流体力学已经逐渐与其他学科互相交叉渗透,形成新的交叉学科或边缘科学,如磁流体力学、物理-化学流体力学、生物流变学等等。

围绕不同的流体问题,当前流体力学分析主要基于数值计算。典型的方法有直接数值模拟 (DNS) 、雷诺平均方法 (RANS)、大涡模拟方法 (LES)、分离涡模拟 (DES) 以及格子玻尔兹曼法(LBM)等求解流体本构N-S (Navier-Stokes) 方程。由于物理问题的复杂度,数值方法往往有很多局限性,如计算效率等。PaddleScience的PINNs科学计算求解器,将物理信息融入神经网络,针对流体力学问题提供新的解决思路。本章节中,我们将介绍2D&3D圆柱绕流及涡激振动的案例,展示PaddleScience的基础科研能力。

图2 不可压缩N-S(Navier-Stokes)方程

2D非定常圆柱绕流

圆柱绕流作为经典的CFD问题,在不同的雷诺数下,涡脱落产生的卡门涡街类型不同,是能够综合体现层流、湍流过渡的典型问题。针对该问题,采用PINNs方法,并基于连续时间的2D不可压、非定常NS方程作为约束深度学习神经网络的物理规则,将传统的CFD求解转换为神经网络参数的优化问题。同时,为了加速训练的收敛时间,提高预测精度,采用半监督方式,从开源CFD工具OpenFOAM的结果中记录边界位置处约200个测点在不同时刻的流场信息,与N-S方程、初边值条件等共同形成了网络优化的损失函数。对雷诺数Re=100工况,定义约110W个时空训练点(t, x, y),并采用NVIDIA V100-32G单卡训练约8小时,结果如下图所示。基于PINNs方法构建的网络能够完整的模拟卡门涡的周期性脱落,且预测的流场结果与OpenFOAM相对误差小于5%(除边界层中个别点外),可满足工程需求。

图3 Re=100的2D圆柱绕流结果

(左:OpenFOAM结果,右:PINNs方法结果)

同时,基于训练完成的模型,利用推理功能,8ms内即可完成百万级空间位置在30个时间步的结果预测,相比于同样网格数量且固定求解配置的OpenFOAM计算过程,速度提升近12000倍,非常利于后期在线评估、优化等工程应用。

  • 案例链接:

https://github.com/PaddlePaddle/PaddleScience/tree/develop/examples/cylinder/2d_unsteady_continuous

3D非定常圆柱绕流

除2D圆柱绕流外,赛桨PaddleScience同时提供3D圆柱绕流案例,基于PINNs方法,求解3D非定常不可压缩Navier-Stokes方程,完成了无模化Re=100的圆柱绕流问题求解。在该问题中,采用OpenFOAM的结果作为基准,选择流场稳定的相对0时刻,并记录有限时间内特定测点的数据。采用离散时间的PINNs神经网络进行训练,其模型数量与所选取的时间步长相关,在t_start至t_end内,定义离散时间步长dt,采用(t_end-t_start)/(T*dt)个模型进行训练,其中T为涡脱周期。对比OpenFOAM的理论值,相对误差在5%以内。x轴上的流场速度变化如下:

图4 3D圆柱绕流x轴流场速度

  • 案例链接:

https://github.com/PaddlePaddle/PaddleScience/tree/develop/examples/cylinder/3d_unsteady_discrete

涡激振动

涡激振动(VIV)是一种典型的流致振动,是流体经过结构后稳定涡脱频率与结构固有频率综合的流固耦合问题。是海洋工程中立管、输油管路等大跨度结构的主要损伤源,但由于结构复杂,无法有效测量刚度、阻尼等本构特征,导致损伤探测及预防难度较大。相比基于PINNs方法实现2D圆柱绕流正问题分析,解决“反问题”是PINNs方法的一个亮点,可通过部分实验数据“逆向”预测流场中结构的刚度、阻尼等本构特征,从而对实际工程中的复杂结构的疲劳损伤及破坏的预测及预防提出指导。

从工程落地的角度,赛桨 PaddleScience 从“半实物仿真”的技术路线出发,构建了涡激振动试验台架以及模型驱动试验装备的电控闭环,创新性地探索并论证深度学习模型与物理装备的虚实结合的技术可行性。

通过对涡激振动开展分阶段分析,首先基于加速度计及激光设备等传感器采集结构振动振幅与结构升力,对系统进行弹簧-振子单自由度等效。基于实测的160组位移及受力数据,训练过程中最小化“振幅”、“升力”、“方程”等共同组成的损失函数。采用V100-16G单卡训练约0.5h,预测结果如下图(右上)。基于PINNs预测的结构振动振幅、结构升力结果与试验数据的相对误差均在2%以内。同时基于“反问题”方式分析得到的结构刚度、阻尼分别为1.092964与4.1e-6,相比真实值1.09与0,相对误差均小于2%。

涡激振动主要基于试验与深度学习模型结合的方式进行,通过构建风洞试验装备,在第一阶段完成结构刚度、阻尼的预测,在第二阶段则基于得到的结构刚度、阻尼等属性,进行流场重构以及升阻力的预测。过程中基于赛桨提供的泛化PDE接口,对涡激振动中流固耦合方程也重新进行了整合,定义新的网络与求解过程,具体流程如下图所示。

图5 VIV试验及深度学习模型联合验

  • 案例链接:

https://github.com/PaddlePaddle/PaddleScience/tree/develop/examples/fsi

API功能及使用示例

上述案例充分利用了赛桨PaddleScience v1.0 Beta提供的API。本部分将着重介绍涉及的主要API接口及使用示例方法。

图6 PaddleScience科学计算工具组件设计架构

科学计算问题定义

科学计算问题定义包含三部分:方程定义(PDE)、计算域定义(Geometry)、初边值条件定义(IC/BC)。下图展示了如何定义在一个方形区域内求解二维非定常Navier-Stokes方程问题。具体而言,该问题数学上由(图b) 定义,包含方程、初边值条件及计算域信息,代码上每一条信息由相应接口描述(图a及图c)。图中展示了一部分数学信息和接口的对应关系,该对应关系由同样的颜色方框表示。

图7 PaddleScience科学计算问题定义

本章节将介绍关于科学计算问题定义相关的API。

偏微分方程(PDE)

赛桨支持调用预置方程接口及自定义方程接口。

  • 预置方程接口:方程定义内置在赛桨中,用户直接调用即可,仅需配置相关参数(如维度、物理属性等)。

  • 自定义方程接口:用户使用 Python SymPy 定义自变量、因变量及方程,通过“add_equation”接口将方程加入PDE模块。

对于高维偏微分方程,连续时间方法将时间和空间均视为网络的输入;离散时间方法首先使用数值(隐式)方法对时间离散,得到仅包含空间变量的方程,进而使用PINNs方法求解该方程,3D N-S方程及使用隐式离散方法得到的方程如下,其中 n 时刻的状态(3个方向的速度)已知,求解n+1时刻的状态(3个方向的速度)。

图8 使用隐式方法对时间离散后得到的方程

如下代码展示如何定义一个非定常N-S方程,以及如何使用连续时间方法和离散时间方法,进行方程离散。仅需通过改变参数 “time_method” 的取值即可选取对应的方法。

计算域(Geometry)

赛桨提供了常用的计算域形状,如立方体、立方体除去圆柱等几何外形,及VTK 可视化支持,同时提供 " add_boundary " 接口定义边界。

初边值条件(IC/BC)

边值条件模块预置了Dirichlet/Neumann/Robin边值条件,仅需定义边值条件,并通过 “set_bc” 接口将其指定到对应边界即可。对于PDE,以类似方式增加了初值条件模块。

深度学习方法求解模块

上一章节介绍了如何使用赛桨定义科学计算问题,本章节继续介绍深度学习方法求解上述科学计算问题所需使用到的模块。

网络(Network)

赛桨支持全连接网络(FC)以及初始化网络权重的接口initialize,支持从文件读取权重进行初始化,以及使用飞桨预置的初始化函数(paddle.nn.initializer)进行初始化。

损失函数(Loss)

赛桨提供了灵活的Loss设置方式,允许通过设置独立的权重系数配置多任务Loss (Loss = w_1 * Loss_equation + w_2 * Loss_ic+ w_3 * loss_bc +w_4 * Loss_data)。

优化器(Optimizer)

赛桨支持Adam优化器。

求解器(Solver)及求解模式

求解器提供了控制功能,在训练和推理阶段可以分别使用。

启动自动并行模式

使用自动并行技术实现分布式计算内嵌在赛桨中,无需特别设置,使用如下代码运行程序即可实现数据自动并行。

启动动态图/静态图/自动微分模式

赛桨后端支持动态图和静态图模式,可以通过简单的接口进行切换。另外,在单机静态图模式下,赛桨提供接口启用高阶自动微分。

下一期我们将对支持PaddleScience的底层框架技术,如自动微分机制、编译器等功能进行详细介绍,敬请期待~

  • 引用:

[1]《IDC perspective:AI for Science市场研究》报告正式启动.

https://mp.weixin.qq.com/s/gtEbuSULI5fzCIvbDKhkfA

  • 拓展阅读:

1.《AI+Science系列(一):飞桨加速CFD(计算流体力学)原理与实践》

2.赛桨PaddleScience v1.0 Beta:基于飞桨核心框架的科学计算通用求解器

  • 相关地址:

1.飞桨AI for Science共创计划:

https://www.paddlepaddle.org.cn/science

2.飞桨PPISG-Science小组:

https://www.paddlepaddle.org.cn/specialgroupdetail?id=9

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

AI+Science系列(二):国内首个基于AI框架的CFD工具组件!赛桨v1.0 Beta API介绍以及典型案例分享!相关推荐

  1. 【干货】百度联合清华大学发布国内首个基于AI实践的《产业智能化白皮书》(附报告全文)...

    来源:百度AI 在4月9日举行的"百度大学 Alpha 学院首期学员毕业典礼"上,百度联合清华大学发布国内首个基于 AI 实践的行业重磅报告,<产业智能化白皮书--人工智能产 ...

  2. 赛桨PaddleScience v1.0 Beta:基于飞桨核心框架的科学计算通用求解器

    近年来,关于AI for Science的主题被广泛讨论,重点领域包含使用AI方法加速设计并发现新材料,助力高能物理及天文领域的新问题探索,以及加速智慧工业实时设备数据与模型的"数字孪生&q ...

  3. AI开发者福音!阿里云推出国内首个基于英伟达NGC的GPU优化容器

    摘要: 3月28日,在2018云栖大会·深圳峰会上,阿里云宣布与英伟达GPU 云 合作 (NGC),开发者可以在云市场下载NVIDIA GPU 云镜像和运行NGC 容器,来使用阿里云上的NVIDIA ...

  4. 英特尔linux手机,英特尔发布国内首款基于Linux系统深度定制的智能教育电脑

    IT之家 4 月 23 日消息 根据英特尔官方的消息,日前,英特尔与来自腾讯教育.惠普.麒麟的代表们,联合发布了国内首款基于 Linux 系统深度定制的智能教育电脑. IT之家了解到,为了填充搭载国产 ...

  5. nubia ui 5.0 android,国内首家基于5.0开发 nubia UI 2.8体验

    MWC2015展会上,努比亚在中兴展台展出了自己旗下众多旗舰产品,还在展会上亮相了新机nubia Z9 Max.而在接下来德媒曝出的首测视频中,我们不仅看到了nubia Z9 Max各个外观设计细节, ...

  6. python aiompq集群_国内首款基于AIO(异步IO)支持集群的高性能开源WebSocket服务器 宝贝鱼 CshBBrain V4.0 发布...

    国内首款基于AIO的开源WebSocket服务器 宝贝鱼 (CshBBrainAIO)正式发布.基于AIO的开源WebSocket服务器 宝贝鱼 依然采用分层的体系结构,协议层和业务层 与 基于NIO ...

  7. 【每日新闻】国内首款3D AI/MR芯片即将量产

    点击蓝字关注我们更多精彩,请点击上方蓝字关注我们! 每日新闻播报 第04-22期 1趋势洞察 谭鸿鑫:科技企业估值的三大标准 清华大学谭鸿鑫表示:很多对科技企业的估值,停留在对技术的评价,其实就是无形 ...

  8. 国内首个基于Windows操作系统的GPU高性能计算集群研制成功

    国内首个基于Windows操作系统的GPU高性能计算集群研制成功 一个普通的实验室里,在一台普通的台式机上发出一条集群工作的指令,通过一个小小的交换机,三台计算机同时进行演算,一个蒙特卡洛的计算问题在 ...

  9. nubia ui 5.0 android,国内首家 基于安卓5.0开发nubia UI公测

    [PConline 资讯]3月9日最新消息,受安卓5.0的吸引和Moto在国内使用Android 5.0原生系统的影响,国内手机厂商也纷纷推出基于Android 5.0的系统升级,其中nubia手机的 ...

最新文章

  1. 面向对象编程的思想(2)
  2. 【视频课】图像分割重磅上新-人像抠图(Matting)实战
  3. java拷贝函数_Java的深拷贝与浅拷贝的几种实现方式
  4. hadoop-hdfs-存储模型-架构模型-角色介绍
  5. zlib库compress和uncompress函数的使用方法
  6. python完全支持面向对象编程思想_面向对象的编程思想和Python的继承和多态,特殊方法,引用计数...
  7. Python发邮件的小脚本
  8. hdu1247 Hat’s Words 字符串模拟
  9. python大数据之数据分割(含k折交叉验证)
  10. MSP430X1XX系列ADC12和DMA详解(附带程序)(上)--ADC12详解与源码
  11. GCN - Semi-Supervised Classification with Graph Convolutional Networks 用图卷积进行半监督节点分类 ICLR 2017
  12. 数字练习_为什么要练习数字简约
  13. Mars3D开发基础学习:glTF小模型
  14. 北航计算机九推经验,前辈种树 | 工科九推经验贴
  15. 这个“安装 OS X Yosemite”应用程序副本不能验证
  16. PostgreSQL 多维空间几何对象 相交、包含 高效率检索实践 - cube
  17. 我只管向前奔跑,其他的交给时间
  18. 一条有意思的SQL语句分析
  19. Linux中rmp和yum命令配置
  20. {渡一教育}成哥HTML课程干货笔记整--6

热门文章

  1. WDCDN联盟团队招募公告
  2. python上海有哪些培训机构
  3. PO、VO...各对象的区别
  4. 查询IOS各系统占比
  5. QQ-个人中心思维导图
  6. c语言 谓词,C++ 谓词(predicate) 与 仿函数 ( functor (function object))
  7. 乙醇的selenium java_揭秘webdriver实现原理 | 乙醇的开源自动化工具研究Blog
  8. 多测师肖sir_高级金牌讲师_性能测试之nmon(007)
  9. Cglib和jdk动态代理的区别
  10. 各司年终奖大爆料...