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

图1 PaddleScience v1.0 Beta产品全景

场景案例详解

前言

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

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

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

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

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

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

图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轴上的流场速度变化如下:

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

  • 案例链接:

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

API功能及使用示例

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

图7 PaddleScience科学计算问题定义

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

偏微分方程(PDE)

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

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

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

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

计算域(Geometry)

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

深度学习方法求解模块

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

络(Network)

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

优化器(Optimizer)

赛桨支持Adam优化器。

启动自动并行模式

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

下一期我们将对支持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=9

获取更多技术内容~

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212705 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月13日
下一篇 2022年7月13日

相关推荐