- 計算流體力學及其應用
- 郭棟鵬
- 2532字
- 2021-12-24 14:18:28
2.3 CFD工作原理
為了進行CFD計算,用戶可借助商用軟件來完成所需要的任務,也可自己直接編寫計算程序。兩種方法的基本工作過程是相同的。本節給出基本計算思路,至于每一步的詳細過程將在本書的后續章節逐一進行介紹。
2.3.1 計算流程
無論是流動問題、傳熱問題,還是污染物的運移問題,無論是穩態問題,還是瞬態問題,其求解過程如圖2.1所示。

圖2-1 CFD工作流程
如果所求解的問題是瞬態問題,則可將圖2.1的過程理解為一個時間步的計算過程,循環這一過程求解下個時間步的解。下面對各求解步驟做簡單介紹。
2.3.2 建立控制方程
建立控制方程是求解任何問題前都必須進行的。一般來講,這一步是比較簡單的。因為對于一般的流體流動而言,可根據2.2部分的分析直接寫出其控制方程。例如,對于水流在水輪機內的流動分析問題,若假設沒有熱交換發生,則可直接將連續方程與動量方程作為控制方程使用。當然,由于水輪機內的流動大多是處于湍流范圍,因此一般情況下需要增加湍流方程。
2.3.3 確定邊界條件與初始條件
初始條件與邊界條件是控制方程有確定解的前提,控制方程與相應的初始條件、邊界條件的組合構成對一個物理過程完整的數學描述。
初始條件是所研究對象在過程開始時刻各個求解變量的空間分布情況。對于瞬態問題,必須給定初始條件;對于穩態問題,則不需要初始條件。
邊界條件是在求解區域的邊界上所求解的變量或其導數隨地點和時間的變化規律。對于任何問題,都需要給定邊界條件。例如,在錐管內的流動,在錐管進口斷面上,可給定速度、壓力沿半徑方向的分布;而在管壁上,對速度取無滑移邊界條件。
對初始條件和邊界條件的處理會直接影響計算結果的精度,本書將在后續章節中對此進行詳細討論。
2.3.4 劃分計算網格
采用數值方法求解控制方程時,都是將控制方程在空間域上進行離散,然后求解得到離散方程組。要想在空間域上離散控制方程,必須使用網格。現已發展出多種對各種區域進行離散以生成網格的方法,統稱為網格生成技術。
不同的問題采用不同數值解法時,所需要的網格形式是有一定區別的,但生成網格的方法基本是一致的。目前,網格分結構網格和非結構網格兩大類。結構網格在空間上比較規范,如對一個四邊形區域,網格往往是成行成列分布的,行線和列線比較明顯。而對非結構網格在空間分布上沒有明顯的行線和列線。
對于二維(2D)問題,常用的網格單元有三角形和四邊形等形式;對于三維(3D)問題,常用的網格單元有四面體、六面體、三棱體等形式。在整個計算域上,網格通過節點聯系在一起。
目前,各種CFD軟件都配有專用的網格生成工具,如FLUENT使用GAMBIT作為前處理軟件。多數CFD軟件可接收采用其他CAD或CFD/FEM軟件產生的網格模型。如FLUENT可以接收ANSYS所生成的網格。
當然,若問題不是特別復雜,用戶也可自行編程生成網格。
2.3.5 建立離散方程
對于在求解域內所建立的偏微分方程,理論上是有真解(或稱精確解或解析解)的。但由于所處理的問題自身的復雜性,一般很難獲得方程的真解。因此,就需要通過數值方法把計算域內有限數量位置(網格節點或網格中心點)上的因變量值當作基本未知量來處理,從而建立一組關于這些未知量的代數方程組,然后通過求解代數方程組來得到這些節點上未知量的值,而計算域內其他位置上的值則根據節點位置上的值來確定。
根據所引入的應變量在節點之間的分布假設及推導離散化方程的方法不同,就形成了有限差分法、有限元法、有限元體積法等不同類型的離散化方法。
在同一種離散化方法中,如在有限體積法中,對式(2.21)中的對流項所采用的離散格式不同,也將導致最終有不同形式的離散方程。
對于瞬態問題,除了在空間域上的離散外,還涉及在時間域上的離散;離散后,將要涉及使用何種時間積分方案的問題。
2.3.6 離散初始條件和邊界條件
前面所給定的初始條件和邊界條件是連續性的,如在靜止壁面上速度為0,現在需要針對所生成的網格,將連續型的初始條件和邊界條件轉化為特定節點上的值,如靜止壁面上共有90個節點,則這些節點上的速度值應均設為0。這樣,連同在各節點處所建立的離散的控制方程,才能對方程組進行求解。
在商用CFD軟件中,往往在前處理階段完成了網格劃分后,直接在邊界上指定初始條件和邊界條件,然后由前處理軟件自動將這些初始條件和邊界條件按離散的方式分配到相應的節點上去。
2.3.7 給定求解控制參數
在離散空間上建立了離散化的代數方程組,并施加離散化的初始條件和邊界條件后,還需要給定流體的物理參數和湍流模型的經驗系數等。此外,還要給定迭代計算的控制精度、瞬態問題的時間步長和輸出頻率等。
在CFD的理論中,這些參數并不值得去探討和研究,但在實際計算時它們對計算的精度和效率有著重要的影響。
2.3.8 求解離散方程
在進行了上述設置后生成了具有定解條件的代數方程組。對于這些方程組,數學上已有相應的解法,如線性方程組可采用高斯消去法(Gauss)或Gauss-Seidel迭代法求解,而對非線性方程組可采用Newton-Raphson方法。
在商用CFD軟件中,往往提供多種不同的解法以適應不同類型的問題。
2.3.9 判斷解的收斂性
對于穩態問題的解,或是瞬態問題在某個特定時間步上的解,往往要通過多次迭代才能得到。有時,因網格形式或網格大小、對流項的離散插值格式等原因,可能導致解的發散。對于瞬態問題,若采用顯式格式進行時間域上的積分,當時間步長過大時也可能造成解的振蕩或發散。因此,在迭代過程中,要對解的收斂性隨時進行監視,并在系統達到指定精度后結束迭代過程。
2.3.10 顯示和輸出計算結果
通過上述求解過程得出了各計算節點上的解后,需要通過適當的方式將整個計算域上的結果表示出來。簡單來說,可采用線值圖、矢量圖、等值線圖、流線圖、云圖等方式對計算結果進行表示。
所謂線值圖,是指在二維或三維空間上,將橫坐標取為空間長度或時間歷程,將縱坐標取為某一物理量,然后用光滑曲線或曲面在坐標系內繪制出某一物理量沿空間或時間的變化情況。矢量圖是直接給出二維或三維空間里矢量(如速度)的方向及大小,一般用不同顏色和長度的箭頭表示速度矢量。矢量圖可以比較容易地讓用戶發現其中存在的旋渦區。等值線圖是用不同顏色的線條表示相等物理量(如溫度)的一條線。流線圖是用不同顏色線條表示質點運動軌跡。云圖是使用渲染的方式,將流場某個截面上的物理量(如壓力或溫度)用連續變化的顏色塊表示其分布。
商用CFD軟件均提供了上述各表示方式。用戶也可以自己編寫后處理程序進行結果顯示。