談談常見的幾種CFD演算法-FVM FDM FEM MPS SPH LBM究竟有什麼區別
1. FVM-有限體積法
這是目前CFD領域最成熟的演算法。該演算法是將流體的Euler控制方程在單元控制體內進行積分後離散求解。目前大家常用的CFD軟體,例如Fluent,CFX,Starccm+和OpenFoam等都是主要基於這種方法。
FVM的基本思路:1、將計算區域劃分為一系列不重複的控制體積,每一個控制體積都有一個節點作代表,將待求的守恆型微分方程在任一控制體積及一定時間間隔內對空間與時間作積分;2、對待求函數及其導數對時間及空間的變化型線或插值方式作出假設;3、對步驟 1 中各項按選定的型線作出積分並整理成一組關於節點上未知量的離散方程。
就離散方法而言,有限體積法可視作有限單元法和有限差分法的中間物。有限單元法必須假定值在網格點之間的變化規律(既插值函數),並將其作為近似解。有限差分法只考慮網格點上的數值而不考慮值在網格點之間如何變化。有限體積法只尋求的結點值,這與有限差分法相類似;但有限體積法在尋求控制體積的積分時,必須假定值在網格點之間的分布,這又與有限單元法相類似。在有限體積法中,插值函數只用於計算控制體積的積分,得出離散方程之後,便可忘掉插值函數;如果需要的話,可以對微分方程中不同的項採取不同的插值函數。
FVM的優點:1、具有很好的守恆性。2、更加靈活的假設,可以克服泰勒展開離散的缺點。3、可以很好的解決複雜的工程問題。對網格的適應性很好。4、在進行流固耦合分析時,能夠完美的和有限元法進行融合。
2. FDM-有限差分法
有限差分方法(FDM)是計算機數值模擬最早採用的方法,至今仍被廣泛運用。該方法將求解域劃分為差分網格,用有限個網格節點代替連續的求解域。有限差分法以Taylor級數展開等方法,把控制方程中的導數用網格節點上的函數值的差商代替進行離散,從而建立以網格節點上的值為未知數的代數方程組。該方法是一種直接將微分問題變為代數問題的近似數值解法,數學概念直觀,表達簡單,是發展較早且比較成熟的數值方法。
對於有限差分格式,從格式的精度來劃分,有一階格式、二階格式和高階格式。從差分的空間形式來考慮,可分為中心格式和逆風格式。考慮時間因子的影響,差分格式還可以分為顯格式、隱格式、顯隱交替格式等。目前常見的差分格式,主要是上述幾種形式的組合,不同的組合構成不同的差分格式。差分方法主要適用於有結構網格,網格的步長一般根據實際地形的情況和柯朗穩定條件來決定。
FDM的基本思路:按時間步長和空間步長將時間和空間區域剖分成若干網格,用未知函數在網格結(節)點上的值所構成的差分近似代替所用偏微分方程中出現的各階導數,從而把表示變數連續變化關係的偏微分方程離散為有限個代數方程,然後解此線性代數方程組,以求出溶質在各網格結(節)點上不同時刻的濃度。
3. FEM-有限元法
有限元方法的基礎是變分原理和加權餘量法,廣泛地應用於以拉普拉斯方程和泊松方程所描述的各類物理場中(這類場與泛函的極值問題有著緊密的聯繫)。有限元方法最早應用於結構力學,後來隨著計算機的發展慢慢用於流體力學的數值模擬。在有限元方法中,把計算域離散剖分為有限個互不重疊且相互連接的單元,在每個單元內選擇基函數,用單元基函數的線形組合來逼近單元中的真解,整個計算域上總體的基函數可以看為由每個單元基函數組成的,則整個計算域內的解可以看作是由所有單元上的近似解構成。
FEM的基本思路:把計算域劃分為有限個互不重疊的單元,在每個單元內,選擇一些合適的節點作為求解函數的插值點,將微分方程中的變數改寫成由各變數或其導數的節點值與所選用的插值函數組成的線性表達式,藉助於變分原理或加權餘量法,將微分方程離散求解。採用不同的權函數和插值函數形式,便構成不同的有限元方法。
有限元法常應用於流體力學、電磁力學、結構力學計算,使用有限元軟體ANSYS、COMSOL等進行有限元模擬,在預研設計階段代替實驗測試,節省成本。
4.粒子法
粒子法是近20多年來逐步發展起來的一種無網格方法。它利用核函數對物理問題進行近似處理,用離散的粒子來描述宏觀連續分布微觀仍為粒子的流體,而每個粒子則攜帶了其所在位置的流體的各種性質,如質量、密度、速度、能量等。
基本思路:將視作連續的流體(或固體)用相互作用的質點組來描述,各個物質點上承載各種物理量,包括質量、速度等,通過求解質點組的動力學方程和跟蹤每個質點的運動軌道,求得整個系統的力學行為。從原理上說,只要質點的數目足夠多,就能精確地描述力學過程。
粒子法可以分為光滑粒子法(SPH)、半隱式運動粒子法(MPS)和有限體積粒子法(FVP)三類。
第一種SPH光滑粒子法,該演算法最早由Gingold and Monaghan (1977) 和Lucy (1977)提出,該方法對流體壓力採用顯示求解,特點是計算快速,弱點壓力場計算不準確。
第二種MPS半隱式運動粒子法是由Koshizuka教授於1995年提出,該演算法通過求解壓力泊松方程獲得流體的壓力場,並通過壓力梯度修正預測的流體速度。MPS方法在提出後的很長時間內都存在很多底層的數值穩定性問題,主要體現在壓力場不符合物理實際的波動。後來很多學者對該方法提出了修正和改進。
最後一種FVP粒子法,相對比MPS的區別將控制方程在假想的粒子體積空間內進行積分,獲得新的梯度和Laplacian運算元,該演算法與MPS無太大本質區別。
SPH方法雖然快,但是有失準確度,適合於追求視覺效果的場景,例如某些電影里的海嘯場景,就採用該演算法。MPS和FVP方法雖然計算速度較慢,但物理量計算更加準確,適合於工程場景。
5. LBM-離散格子玻爾茲曼法
Lattice Boltzmann Method(LBM),即離散格子玻爾茲曼方法,主要用來模擬處於Maxwell或近Maxwell平衡態的連續流區或近連續滑移區低速槽道流。
近年,國際上許多學者提出發展將宏觀流體力學與微觀分子動力學連接起來的介觀理論,通過發展基於分子運動論(氣體動理學理論)Boltzmann方程的介觀數值模型來再現特徵尺度達微、納米量級的氣體流動問題。LBM就是其一。
該方法並沒有像前其他CFD方法那樣求解流體的Navier–Stokes方程,而是通過計算微觀粒子間的streaming和collision兩個過程,從而模擬整體流體的運動行為。該演算法最大的特點是並行計算效率非常高,主要是因為演算法過程相對簡單容易並行。
目前,除了在一般的流體力學問題中得到了成功的應用外,格子BoftZmann方法在多相(元)流、化學反應擴散、滲流、粒子懸浮流、磁流體力學等相關領域也得到了比較成功的應用。LBM正處於不斷的發展之中,近年來在基本理論、基本模型和應用等各方面都有所發展。
TAG:流體與熱控大本營 |