淺談常見的幾種CFD算法-FVM MPS SPH LBM究竟什么區別?

最近收到了很多提問,shonDy所采用的粒子法與LBM方法有什么區別?粒子法的優勢在哪里?等等。為了弄清楚這些問題,本篇隨筆從CFDer常見的幾種算法講起。

圖1.jpg

上圖是我重點圍繞粒子法對常用CFD方法的一個簡單分類,并非以偏概全。如果詳細地整理CFD算法,可以有上百種之多。為了有的放矢,上圖作為一個不完全分類展示給大家。


1.有限體積法

這是目前CFD領域最成熟的算法。該算法是將流體的Euler控制方程在單元控制體內進行積分后離散求解。目前大家常用的CFD軟件,例如Fluent,CFX,Starccm+和OpenFoam等都是主要基于這種方法。小編這里推薦一本入門的讀物“H. Versteeg, W. - An Introduction to Computational Fluid Dynamics: The Finite Volume Method”,國內網上可以買到英文原版的影印版。采用這種方法模擬流體,首先需要對流體區域進行網格劃分。個人常用的畫網格工具是OpenFOAM的snappyHexMesh,無論多么復雜的幾何體,進行適當處理之后存儲為STL或Obj格式,然后配置控制參數,便可以自動生成Hex-dominated的網格,也就是大部分網格都是六面體的。snappyHexMesh網格生成分為三步:(1)對正六面體的背景網格進行局部加密,然后刪除掉位于幾何模型以外(或以內)的網格;(2)將所有靠近幾何體壁面的網格節點移動到幾何面上;(3)對指定的壁面添加邊界層。從核反應堆到航天飛行器,都可以用snappyHexMesh生成理想的網格。


2.粒子法

這是一種基于拉格朗日近似方法,無需網格,對流體和固體的物質本身進行離散,并非離散空間。相對于LBM,該方法和有限體積法(DNS除外)的尺度較宏觀,更適合于實際工程問題。第一種SPH光滑粒子法,該算法最早由Gingold and Monaghan (1977) 和Lucy (1977)提出,該方法對流體壓力采用顯示求解,特點是計算快速,弱點壓力場計算不準確。第二種MPS半隱式運動粒子法是由Koshizuka教授于1995年提出,該算法通過求解壓力泊松方程獲得流體的壓力場,并通過壓力梯度修正預測的流體速度。MPS方法在提出后的很長時間內都存在很多底層的數值穩定性問題,主要體現在壓力場不符合物理實際的波動。后來很多學者對該方法提出了修正和改進。小編所開發的shonDy軟件就是基于MPS的改進算法。最后一種FVP粒子法,相對比MPS的區別將控制方程在假想的粒子體積空間內進行積分,獲得新的梯度和Laplacian算子,該算法與MPS無太大本質區別。 前兩周,小編在KIT有幸見再次到了后兩種粒子法的鼻祖,一位是日本東京大學的Koshizuka教授,另一位是日本九州大學的Morita教授。個人觀點是,SPH方法雖然快,但是有失準確度,適合于追求視覺效果的場景,例如某些電影里的海嘯場景,就采用該算法。MPS和FVP方法雖然計算速度較慢,但物理量計算更加準確,適合于工程場景。

圖2.jpg

上圖是應用shonDy軟件快速建模的兩個轉動齒輪對流體作用的算例,創建算例時間只需20分鐘。同樣的問題,如果采用網格方法,劃分動態網格會占用大量時間。


3.LBM方法

該方法屬于介觀尺度的方法,相對前兩種方法離散尺度上微觀,但沒有微觀到分子的尺度。該方法并沒有像前其他CFD方法那樣求解流體的Navier–Stokes方程,而是通過計算微觀粒子間的streaming和collision兩個過程,從而模擬整體流體的運動行為。該算法最大的特點是并行計算效率非常高,主要是因為算法過程相對簡單容易并行。其缺點在于目前離廣泛的實際工程應用還有段距離,目前主要應用于基礎科研領域。原因是該算法模擬一個幾何模型需要創建的格子數非常大,對于large scale的工程問題,計算量和計算時間無法接受。 這里向大家推薦一款KIT開發的開源軟件OpenLB,適合于學習和科研。


轉載自微信公眾號,大家想知道詳細情況,可以移步的呀~公眾號見上圖水印

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1