关于paddle:AI-for-Science系列二基于AI框架的CFD工具组件赛桨v10-Beta-API介绍以及典型案例分享

33次阅读

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

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/PaddlePadd…

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/PaddlePadd…

涡激振动

涡激振动(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/PaddlePadd…

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/gt…

  • 拓展浏览:

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

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

  • 相干地址:

1. 飞桨 AI for Science 共创打算:

https://www.paddlepaddle.org….

2. 飞桨 PPISG-Science 小组:

https://www.paddlepaddle.org….

正文完
 0