基於PINN的極少監督數據二維非定常圓柱繞流模擬

2022年10月16日-19日,亞洲計算流體力學會議在韓國九州舉辦。會議湧現了不少結合人工智能技術進行流體力學模擬的論文成果,這說明人工智能技術逐漸滲透流體力學模擬領域。百度與西安交通大學的研究人員一起,利用飛槳框架和科學計算工具組件PaddleScience,首次實現了基於物理信息約束神經元網絡(PINN)方法,利用極少量監督點模擬二維非定常不可壓縮圓柱繞流,將同等條件的CFD流場求解耗時降低了3個數量級。因爲會議論文在網上無法下載,因此附上該論文的詳細介紹(圖1爲論文封面),方便感興趣的研究人員瞭解論文情況以及飛槳PaddleScience的能力。

  • 會議論文代碼下載地址

https://github.com/tianshao1992/PINNs_Cylinder

圖1  ACFD2022會議收錄摘要

研究背景

計算流體力學(Computational Fluid Dynamics, CFD)是研究流體力學問題的一種有效方法。CFD模擬通過在表示流體區域的網格上求解流體力學納維-斯托克斯方程組(一種偏微分方程)來實現。在過去的幾十年中,CFD模擬在模擬不同工程領域的流體問題方面取得了巨大進展,並已成爲流體力學中的重要工具。

然而,CFD模擬存在一定的限制。當流體域和流場複雜時,網格生成可能是一項困難的任務。更細的網格可以給出更準確的結果,但它在時間和資源上的計算成本很高。通常,學者們會通過局部網格加密在精度和計算成本之間進行權\(橫^1\),。然而,這會導致另一個問題,即如果在相鄰的局部網格塊的交界處,網格尺寸變化太快,則交界處網格的質量可能會變差,因此即使進行了局部網格加密,也需要兼顧不同網格塊之間的網格尺寸過渡。此外,不同物理現象需要不同的網格尺寸。例如,在CFD-DEM模擬中,需要對網格進行特殊的處理來適合細小顆粒的模\(擬^2\)。因此,如果CFD模擬不需要網格,則能從本質上克服上述挑戰。物理信息約束的神經元網絡(PINN\()^3\)的出現,給無網格CFD模擬提供了一種可行方案。

本論文利用飛槳框架和科學計算工具組件PaddleScience,首次實現了基於物理信息約束神經元網絡(PINN)方法,利用極少量監督點模擬二維非定常不可壓縮圓柱繞流。通過與基於有限體積法(FVM)的CFD求解方法對比,證明PINN方法在求解精度上能夠達到FVM方法同等的精度。同時利用預先訓練好的網絡模型,每個時間步的結果預測只需8ms,遠遠快於FVM方法計算速度,這是因爲PINN方法可以在GPU上實現不同時間步的並行計算。但是PINN模型的訓練較爲耗時,未來需要開發更高效的算法來解決訓練耗時長的問題。

研究方法

二維非定常不可壓圓柱繞流問題描述

二維非定常不可壓縮圓柱繞流是一種典型的非定常不可壓縮流體現象,包含了流動邊界層、流動分離、逆壓梯度、粘性耗散等典型的流動現象,常常被用來驗證數值求解算法。在本論文中,我們也選用圓柱繞流作爲驗證案例,選取的圓柱繞流幾何和邊界設置如圖2所示。

整體流動爲長方形區域,左側爲速度入口,右側爲壓力出口,上下界面爲無限遠界面(即不設置邊界條件),中間放置了一個直徑爲D=1cm的圓柱。圓柱表面滿足無滑移條件,速度爲0m/s。左側入口的速度爲1m/s,右側的壓力爲0Pa。流體的運動粘性係數爲0.4c\(m^2\)/s,密度爲1kg/\(m^3\)。根據上述參數,可以確定流動的雷諾數Re=250。流動的初始時刻狀態由CFD軟件OpenFOAM進行非定常模擬結果得到,其中OpenFOAM的時間步長設置爲0.5ms。這裏說明下,OpenFOAM採用的是有限體積方法(FVM)去求解下列納維-斯托克斯方程組:

$$\mathrm{\nabla}·u=0$$ (1)

$$\frac{\partial\mathrm{u}}{\partial t}+\mathrm{u}∙∇\bullet+\frac{1}{\rho}\mathrm{\nabla}\mathrm{p}-ν\mathrm{\nabla}2u-f = 0$$ (2)

其中方程(1)爲連續性方程, \( \mathrm{u}\)代表速度矢量,\(\mathrm{\nabla}·u \)表示進出控制體的質量差,因爲本案例採用不可壓縮流動,因此進出控制體的質量差爲0;方程(2)爲動量方程,\( \nu\)表示流體運動粘性係數,\(\rho\)表示流體密度,\(p\)表示控制體上的靜壓,\(\mathrm{f}\)表示作用在控制體上的體積力(本案例裏爲0)。

圖2  二維圓柱繞流示意圖及初始和邊界條件

物理信息約束神經元網絡(PINN)

區別於OpenFOAM的有限體積法(FVM),物理信息約束神經元網絡(PINN)利用神經元網絡能逼近任意光滑函數的能力,來進行無網格求解納維-斯托克斯方程組。本文構建的PINN網絡結構示意圖如圖3所示。

神經元網絡爲一個全連接層網絡,輸入爲3個神經元節點,分別對應流動的時間(t)和座標(x,y),輸出爲3個神經元節點,分別對應流動的橫向速度(u)、縱向速度(v)和靜壓(p)。在圖3中,爲了簡便表達,採用速度矢量形式(u)來展示。

爲了求解納維-斯托克斯方程組,在神經元網絡的損失函數項引入了物理信息約束,使得神經元網絡既可以在數據層面得到訓練,也可以在物理規律層面得到訓練。具體損失函數的定義方式見下一節。

本文采用的神經元網絡參數見表1。除了輸入和輸出的神經元節點,一共有6層隱藏層,每層包含64個神經元節點,激活函數爲tanh,優化器爲Adam,初始學習率爲0.001,訓練迭代步數爲40萬。

表1 神經元網絡參數設置

圖3 物理信息約束神經元網絡結構示意

PINN的損失函數

神經元網絡的訓練過程,是通過損失函數的反向傳遞來實現網絡參數的更新。本文中,損失函數包含數據項和物理規律項:

$$J=J_d+\omega J_p$$(3)

其中, \(J\)是神經元網絡的總損失函數,\(J_d\)是數據項損失函數,\(J_p\)是物理規律項損失函數,\(\omega\)是物理規律項的權重。

當\(\omega=0\)時,該神經元網絡就是普通的神經元網絡。通過設置\(\omega\neq0\),在損失函數中引入物理規律的影響,增強神經元網絡對物理規律的擬合能力。物理規律損失函數項通過神經元網絡自身的微分傳遞鏈計算得到。

數據項損失函數(\(J_d\))定義爲預測數值與真實數值之間的均方差(MSE):

$$J_d=\frac{1}{N_d}\sum_{i=1}^{N_d}\left|Y_{pred}^i-Y_{true}^i\right|^2$$(4)

其中,\(N_d\)代表用來構造數據項損失的監督點數目,Y表示用來比較的物理量,真實數值爲OpenFOAM計算結果;監督點指已知流場物理量數值的點,值得注意的是,監督點數目可以比OpenFOAM裏的網格點數少。物理項損失函數(\(J_p\))定義爲:

$$J_p=J_{PDE}+J_{BC}+J_{IC}$$(5)

其中,\(J_{PDE}\)代表了流體偏微分方程的損失函數項,這也是PINN網絡必不可少的一項;\(J_{BC}\)代表了流體系統的邊界條件損失函數項,代表了流體系統的初始條件損失函數項。

\(J_{PDE}\),\(J_{BC}\)和\(J_{IC}\)的定義如下:

$$J_{PDE}=\frac{1}{N_f}\sum_{i=1}^{N_f}\left|G\left({u}^i,p^i\right)\right|^2$$ (6)

$$J_{BC}=\frac{1}{N_{BC}}\sum_{i=1}^{N_{BC}}\left|Y_{pred}^i-Y_{true}^i\right|^2$$ (7)

$$J_{IC}=\frac{1}{N_{IC}}\sum_{i=1}^{N_{IC}}\left|Y_{pred}^i-Y_{true}^i\right|^2$$ (8)

其中,\(N_f\)是用於計算流體偏微分方程損失函數的數據點數量,\(N_{BC}\)是用於計算流體系統邊界條件損失函數的數據點數量,\(N_{IC}\)是用於計算流體系統初始條件損失函數的數據點數量,\(G\)代表了流體系統的即納維-斯托克斯方程組的隱式格式,理想的情況下\(G=0\)。

流體系統的總損失函數定義爲:

$$J=\omega_1J_d+\omega_2J_{PDE}+\omega_3J_{BC}+\omega_4J_{IC}$$ (9)

其中\(\omega_1,\ \omega_2,\ \omega_3,\ \omega_4\)是各損失函數項的權重。區別於方程(3),方程(9)提供了一個更方便調節各損失函數項權重的定義。本文中\(\omega_1=\omega_3=\omega_4=10,\ {\ \omega}_2=1\)。

PINN的監督點分佈

結合之前我們已經實現的基於大量監督點的PINN方法準確求解二維度非定常圓柱繞\(流^4\),本文我們進一步探索了監督點數量對PINN求解的影響,因爲監督點的數目既影響模型的計算速度,也影響模型對數據的依賴性。減少監督點數量,既可以提高模型計算速度,也可以降低模型對數據的依賴性。爲此,我們設計了6種不同的監督點分佈,監督點數量從4到68,如圖4所示。

\(N_d=68\)的監督點分佈存在兩種方式,a方案在圓柱前緣也佈置一些點,b方案則所有點均在圓柱後方。 \(N_d=34\)的監督點分佈存在兩種方式,a方案集中在圓柱近後方,b方案則分散在圓柱近和遠後方。\(N_d=16\)和\(N_d=4\)的監督點分佈的區別在於\(N_d=4\)僅在圓柱表面均分分佈4個監督點。

圖4  圓柱周圍監督點佈局

研究結果

PINN的訓練過程

根據表1給的參數,在NVIDIA V100-32GB顯卡上進行了不同監督點佈局的模型訓練。在訓練40萬步後,各損失函數項均收斂,其中一個模型的訓練損失函數下降曲線如圖5所示。

圖5  PINN訓練過程損失函數曲線

PINN與FVM對比

利用訓練好的模型,我們將PINN計算的結果與OpenFOAM的FVM方法計算結果對比,如圖6和圖7所示。可以看到,在所有的監督點佈局情況下,對全流場信息(u, v, p)PINN均能取得與OpenFOAM的FVM方法接近的計算結果,兩者的絕對誤差從全流場來看也較低。對於\(N_d=4\)的監督點佈局,PINN的計算結果也能較好的捕捉到圓柱後渦的脫落現象。

進一步的,圓柱表面的升力和阻力也進行了對比,見圖8。從對比結果來看,PINN可以在只需要4個監督點的情況下,得到與OpenFOAM類似的結果。

表2對比了訓練好的PINN與OpenFOAM的FVM方法的計算耗時,可見在類似計算配置的情況下,PINN方法比OpenFOAM的FVM減少了3個數量級的計算耗時。

表2  PINN與FVM計算耗時對比

圖6  不同監督點佈局下PINN與FVM方法對比(靜壓、橫向流速、縱向流速)

圖7  不同監督點佈局下PINN與FVM方法對比誤差(靜壓、橫向流速、縱向流速)

圖8  不同監督點佈局下PINN與FVM方法對比(升力和阻力)

結果討論

通過二維非定常不可壓縮圓柱繞流這個典型案例的論證,本文的結論表明PINN方法可以應用在求解非定常不可壓縮流體力學,可以取得接近CFD方法類似的精度,同時在計算耗時上可以提升3個數量級。

但是PINN方法也有一定的侷限性,一個關鍵的限制是目前採用的PINN方法依賴於CFD模擬產生的監督數據。儘管本論文的研究表明,只多4個監督點數據就可以滿足PINN求解的需求,但是爲了生成這4個監督點的數據,需要進行全流場的CFD模擬,而CFD模擬仍然面臨網格質量、求解速度等問題。未來需要開發完全不依賴監督點的PINN方法,才能克服依賴CFD模擬數據的限制。

參考文獻

[1] Teigland, R., & Eliassen, I. K. (2001). A multiblock/multilevel mesh refinement procedure for CFD computations. International journal for numerical methods in fluids, 36(5), 519-538.
[2] Volk, A., Ghia, U., & Stoltz, C. (2017). Effect of grid type and refinement method on CFD-DEM solution trend with grid size. Powder Technology, 311, 137-146.
[3] Raissi, M., Perdikaris, P., & Karniadakis, G. E. (2017). Physics informed deep learning (part i): Data-driven solutions of nonlinear partial differential equations. arXiv preprint arXiv:1711.10561.
[4] https://aistudio.baidu.com/aistudio/projectdetail/4178470

拓展閱讀

1.【PaddlePaddle Hackathon 第四期】—飛槳科學計算 PaddleScience:
https://github.com/PaddlePaddle/Paddle/issues/50629#science

2. 飛槳AI for Science流體力學公開課第一期:
https://aistudio.baidu.com/aistudio/course/introduce/27926

3. AI+Science系列(三):賽槳PaddleScience底層核心框架技術創新詳解

4. 飛槳科學計算實訓示例:
https://aistudio.baidu.com/aistudio/projectoverview/public?topic=15

相關地址

1. 飛槳AI for Science共創計劃:

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

2. 飛槳PPISG-Science小組:

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

3. 飛槳PaddleScience工具組件:

https://github.com/PaddlePaddle/PaddleScience

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章