天天看點

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

本節書摘來自異步社群《fluent 14.0超級學習手冊》一書中的第1章,第1.2節,作者: 唐家鵬 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

fluent 14.0超級學習手冊

計算流體動力學(computational fluid dynamics,cfd)是近代流體力學、數值數學和計算機科學結合的産物,是一門具有強大生命力的邊緣科學。

1.2.1 cfd概述

cfd以電子計算機為工具,應用各種離散化的數學方法,對流體力學的各類問題進行數值實驗、計算機模拟和分析研究,以解決各種實際問題。

計算流體力學和相關的計算傳熱學、計算燃燒學的原理是用數值方法求解非線性聯立的品質、能量、組分、動量和自定義的标量的微分方程組,求解結果能預報流動、傳熱、傳質、燃燒等過程的細節,并成為過程裝置優化和放大定量設計的有力工具。計算流體力學的基本特征是數值模拟和計算機實驗,它從基本實體定理出發,在很大程度上替代了耗資巨大的流體動力學實驗裝置,在科學研究和工程技術中産生巨大的影響。

計算流體力學是目前國際上一個強有力的研究領域,是進行傳熱、傳質、動量傳遞及燃燒、多相流和化學反應研究的核心和重要技術,廣泛應用于航天設計、汽車設計、生物醫學工業、化工處理工業、渦輪機設計、半導體設計、havc&r 等諸多工程領域,闆翅式換熱器 設計是cfd技術應用的重要領域之一。

cfd在最近20 年中得到飛速的發展,除了計算機硬體工業的發展給它提供了堅實的物質基礎外,還主要因為無論分析的方法或實驗的方法都有較大的限制。例如,由于問題的複雜性,既無法作分析解,也因費用昂貴而無力進行實驗确定,而cfd 的方法正具有成本低和能模拟較複雜或較理想的過程等優點。

經過一定考核的cfd軟體可以拓寬實驗研究的範圍,減少成本昂貴的實驗工作量。在給定的參數下用計算機對現象進行一次數值模拟相當于進行一次數值實驗,曆史上也曾有過首先由cfd數值模拟發現新現象而後由實驗予以證明的例子。

cfd軟體一般都能推出多種優化的實體模型,如定常和非定常流動、層流、紊流、不可壓縮和可壓縮流動、傳熱、化學反應等。對每一種實體問題的流動特點,都有适合它的數值解法,使用者可選擇顯式或隐式差分格式,以期在計算速度、穩定性和精度等方面達到最佳。

cfd 軟體之間可以友善地進行數值交換,并采用統一的前、後處理工具,這就省去了科研工作者在計算機方法、程式設計、前後處理等方面投入的重複、低效的勞動,而可以将主要精力和智慧用于實體問題本身的探索上。

1.2.2 cfd求解力學問題的過程

所有cfd問題的求解過程都可用圖1-4表示。如果所求解的問題是瞬态問題,則可将圖1-4的過程了解為一個時間步的計算過程,循環這一過程求解下個時間步的解。下面對各求解步驟進行簡單介紹。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

1.建立控制方程

建立控制方程是求解任何問題前都必須首先進行的。一般來講,這一步是比較簡單的。因為對于一般的流體流動而言,可直接寫出其控制方程。假定沒有熱交換發生,則可直接将連續方程與動量方程作為控制方程使用。一般情況下,需要增加湍流方程。

2.确定邊界條件和初始條件

初始條件與邊界條件是控制方程有确定解的前提,控制方程與相應的初始條件、邊界條件的組合構成對一個實體過程完整的數學描述。

初始條件是所研究對象在過程開始時刻各個求解變量的空間分布情況。對于瞬态問題,必須給定初始條件。對于穩态問題,不需要初始條件。

邊界條件是在求解區域的邊界上所求解的變量或其導數随地點和時間的變化規律。對于任何問題,都需要給定邊界條件。

3.劃分計算網格

采用數值方法求解控制方程時,都是想辦法将控制方程在空間區域上進行離散,然後求解得到離散方程組。要想在空間域上離散控制方程,必須使用網格。現已發展出多種對各種區域進行離散以生成網格的方法,這些方法統稱為網格生成技術。

不同的問題采用不同數值解法時,所需要的網格形式是有一定差別的,但生成網格的方法基本是一緻的。目前網格分結構網格和非結構網格兩大類。

簡單地講,結構網格在空間上比較規範,如對一個四邊形區域,網格往往是成行成列分布的,行線和列線比較明顯。而非結構網格在空間分布上沒有明顯的行線和列線。

對于二維問題,常用的網格單元有三角形和四邊形等形式;對于三維問題,常用的網格單元有四面體、六面體、三菱體等形式。在整個計算域上,網格通過節點聯系在一起。

目前各種cfd軟體都配有專用的網格生成工具,如fluent 使用gambit作為前處理軟體。多數cfd軟體可接收采用其他cad或cfd/fem軟體産生的網格模型。例如,fluent可以接收ansys所生成的網格。

4.建立離散方程

對于在求解域内所建立的偏微分方程,理論上是有真解(或稱精确解或解析解)的。但由于所處理問題自身的複雜性,一般很難獲得方程的真解。是以就需要通過數值方法把計算域内有限數量位置(網格節點或網格中心點)上的因變量值當做基本未知量來處理,進而建立一組關于這些未知量的代數方程組,然後通過求解代數方程組來得到這些節點值,而計算域内其他位置上的值則根據節點位置上的值來确定。

由于所引入的應變量在節點之間的分數假設及推導離散化方程的方法不同,是以形成了有限差分法、有限元法、有限元體積法等不同類型的離散化方法。

對于瞬态問題,除了在空間域上的離散外,還要涉及在時間域上的離散。離散後,将要涉及使用何種時間積分方案的問題。

5.離散初始條件和邊界條件

前面所給定的初始條件和邊界條件是連續性的,如在靜止壁面上速度為0,現在需要針對所生成的網格,将連續型的初始條件和邊界條件轉化為特定節點上的值,如靜止壁面上共有90個節點,則這些節點上的速度值應均設為0。

商用cfd軟體往往在前處理階段完成網格劃分後,直接在邊界上指定初始條件和邊界條件,然後由前處理軟體自動将這些初始條件和邊界條件按離散的方式配置設定到相應的節點上。

6.給定求解控制參數

在離散空間上建立了離散化的代數方程組,并施加離散化的初始條件和邊界條件後,還需要給定流體的實體參數和湍流模型的經驗系數等。此外,還要給定疊代計算的控制精度、瞬态問題的時間步長和輸出頻率等。

7.求解離散方程

進行上述設定後,生成了具有定解條件的代數方程組。對于這些方程組,數學上已有相應的解法,如線性方程組可采用gauss消去法或gauss-seidel疊代法求解,而對于非線性方程組,可采用newton-raphson方法。

商用cfd軟體往往提供多種不同的解法,以适應不同類型的問題。這部分内容屬于求解器設定的範疇。

8.顯示計算結果

通過上述求解過程得出了各計算節點上的解後,需要通過适當的手段将整個計算域上的結果表示出來,這時,可采用線值圖、矢量圖、等值線圖、流線圖、雲圖等方式來表示計算結果。

線值圖是指在二維或三維空間上,将橫坐标取為空間長度或時間曆程,将縱坐标取為某一實體量,然後用光滑曲線或曲面在坐标系内繪制出某一實體量沿空間或時間的變化情況。

矢量圖是直接給出二維或三維空間裡矢量(如速度)的方向及大小,一般用不同顔色和長度的箭頭表示速度矢量。矢量圖可以比較容易地讓使用者發現其中存在的漩渦區。

等值線圖是用不同顔色的線條表示相等實體量(如溫度)的一條線。

流線圖是用不同顔色的線條表示質點運動軌迹。

雲圖是使用渲染的方式,将流場某個截面上的實體量(如壓力或溫度)用連續變化的顔色塊表示其分布。

1.2.3 cfd數值模拟方法和分類

cfd的數值解法有很多分支,這些方法之間的差別主要在于對控制方程的離散方式。根據離散原理的不同,cfd大體上可以分為有限差分法(fdm)、有限元法(fem)和有限體積法(fvm)。

1.有限差分法

有限差分法(fdm)是計算機數值模拟最早采用的方法,至今仍被廣泛運用。該方法将求解域劃分為差分網格,用有限個網格節點代替連續的求解域。

有限差分法以taylor級數展開的方法,把控制方程中的導數用網格節點上的函數值的差商代替,進而建立以網格節點上的值為未知數的代數方程組。

該方法是一種直接将微分問題變為代數問題,進而可以用近似數值解法求解,數學概念直覺,表達簡單,是發展較早且比較成熟的數值方法。

從有限差分格式的精度來劃分,有一階格式、二階格式和高階格式;從差分的空間形式來考慮,可分為中心格式和逆風格式;考慮時間因子的影響,差分格式還可分為顯格式、隐格式、顯隐交替格式等。

目前常見的差分格式主要是上訴幾種格式的組合,不同的組合構成不同的差分格式。差分方法主要适用于有結構網格,網格的步長一般根據實際情況和柯郎穩定條件決定。

2.有限元法

有限元法(fem)的基礎是變分原理和權重餘量法,其基本求解思想是把計算域劃分為有限個互不重疊的單元,在每個單元内,選擇一些合适的節點作為求解函數的插值點,将微分方程中的變量改寫成由各變量或其導數的節點值與所選用的插值函數組成的線性表達式,借助于變分原理或權重餘量法,将微分方程離散求解。

采用不同的權函數和插值函數形式,便于構成不同的有限元方法。有限元法最早應用于結構力學,後來随着計算機的發展逐漸用于流體力學的數值模拟。

在有限元法中,把計算域離散剖分為有限個互不重疊且互相連接配接的單元,在每個單元内選擇基函數,用單元基函數的線性組合來逼近單元中的真解,整個計算域上總體的基函數可以看做由每個單元基函數組成,而整個計算域内的解可以看做由所有單元上的近似解構成。

有限元方法的基本思路和解題步驟可歸納如下。

(1)建立積分方程。根據變分原理或方程餘量與權函數正交化原理,建立與微分方程初邊值問題等價的積分表達式,這是有限元法的出發點。

(2)區域單元剖分。根據求解區域的形狀及實際問題的實體特點,将區域剖分為若幹互相連接配接、不重疊的單元。區域單元劃分是采用有限元方法的前期準備工作,這部分工作量比較大,除了給計算單元和節點進行編号和确定互相之間的關系之外,還要表示節點的位置坐标,并列出自然邊界和本質邊界的節點序号和相應的邊界值。

(3)确定單元基函數。根據單元中節點數目及對近似解精度的要求,選擇滿足一定插值條件的插值函數作為單元基函數。有限元方法中的基函數是在單元中選取的,由于各單元具有規則的幾何形狀。是以在選取基函數時可遵循一定的法則。

(4)單元分析。将各個單元中的求解函數用單元基函數的線性組合表達式進行逼近;再将近似函數代入積分方程,并對單元區域進行積分,可獲得含有待定系數(即單元中各節點的參數值)的代數方程組(稱為單元有限元方程)。

(5)總體合成。在得出單元有限元方程之後,将區域中所有單元有限元方程按一定法則進行累加,形成總體有限元方程。

(6)邊界條件的處理。一般邊界條件有3種形式,分别為本質邊界條件(狄裡克雷邊界條件)、自然邊界條件(黎曼邊界條件)、混合邊界條件(柯西邊界條件)。對于自然邊界條件,一般在積分表達式中可自動得到滿足。對于本質邊界條件和混合邊界條件,需按一定法則對總體有限元方程進行修正滿足。

(7)解有限元方程。根據邊界條件修正的總體有限元方程組,是含所有待定未知量的封閉方程組,采用适當的數值計算方法求解,可求得各節點的函數值。

3.有限體積法

有限體積法(finite volume method,fvm)又稱為控制體積法。其基本思路是:将計算區域劃分為一系列不重複的控制體積,并使每個網格點周圍有一個控制體積;将待解的微分方程對每一個控制體積積分,便得出一組離散方程。

其中的未知數是網格點上的因變量的數值。為了求出控制體積的積分,必須假定值在網格點之間的變化規律,即假設值分段分布的剖面。

從積分區域的選取方法看來,有限體積法屬于權重剩餘法中的子區域法;從未知解的近似方法看來,有限體積法屬于采用局部近似的離散方法。簡言之,子區域法屬于有限體積法的基本方法。

有限體積法的基本思路易于了解,并能得出直接的實體解釋。離散方程的實體意義就是因變量在有限大小的控制體積中的守恒原理,如同微分方程表示因變量在無限小的控制體積都得到滿足,在整個計算區域,自然也就得到滿足一樣,這是有限體積法吸引人的優點。

某些離散方法,如有限差分法,僅當網格極其細密時,離散方程才滿足積分守恒;而有限體積法即使在粗網格情況下,也顯示出準确的積分守恒。

就離散方法而言,有限體積法可視為有限單元法和有限差分法的中間物,有限單元法必須假定值符号網格點之間的變化規律(即插值函數),并将其作為近似解;有限差分法隻考慮網格點上的數值而不考慮其在網格點之間如何變化;有限體積法隻尋求節點值,這與有限差分法相類似,但有限體積法在尋求控制體積的積分時,必須假定值在網格點之間的分布,這又與有限單元法相類似。

在有限體積法中,插值函數隻用于計算控制體積的積分,得出離散方程後,便可忘掉插值函數;如果需要的話,可以對微分方程中不同的項采取不同的插值函數。

1.2.4 有限體積法計算區域的離散

從前面的介紹中可以看出,有限體積法是一種分塊近似的計算方法,是以其中比較重要的步驟是計算區域的離散和控制方程的離散。

所謂區域的離散化,實際上就是用一組有限個離散的點來代替原來的連續空間。一般的實施過程是:把所計算的區域劃分成許多個互不重疊的子區域(sub-domain),确定每個子區域中的節點位置及該節點所代表的控制體積。區域離散後,得到以下4種幾何要素。

節點:需要求解的未知實體量的幾何位置。

控制體積:應用控制方程或守恒定律的最小幾何機關。

界面:定義了與各節點相對應的控制體積的界面位置。

網格線:連接配接相鄰兩節點面形成的曲線簇。

一般把節點看成是控制體積的代表。在離散過程中,将一個控制體積上的實體量定義并存儲在該節點處。一維問題的有限體積法計算網格如圖1-5所示,二維問題的有限體積法計算網格如圖1-6所示。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

計算區域離散的網格有兩類:結構化網格和非結構化網格。

結構化網格(structured grid)的節點排列有序,即給出了一個節點的編号後,立即可以得出其相鄰節點的編号,所有内部節點周圍的網格數目相同。

結構化網格具有實作容易、生成速度快、網格品質好、資料結構簡單化的優點,但不能實作複雜邊界區域的離散。

非結構化網格的内部節點以一種不規則的方式布置在流場中,各節點周圍的網格數目不盡相同。這種網格雖然生成過程比較複雜,但卻有極大的适應性,對複雜邊界的流場計算問題特别有效。

1.2.5 有限體積法控制方程的離散

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

從式1-208可以看到,對流項和擴散項均已轉化為控制體積界面上的值。有限體積法最顯著的特點之一就是離散方程中具有明确的實體插值,即界面的實體量要通過插值的方式由節點的實體量來表示。

為了建立所需形式的離散方程,需要找出如何表示式1-208中界面e和w處的ρ、μ、Γ、phi和frac{{dphi }}{{dx}}。在有限體積法中規定,ρ、μ、Γ、phi和frac{{dphi }}{{dx}}等實體量均是在節點處定義和計算的。是以,為了計算界面上的這些實體參數(包括其導數),需要一個實體參數在節點間的近似分布。

可以想象,線性近似是可以用來計算界面物性值的最直接,也是最簡單的方式。這種分布叫做中心差分。如果網格是均勻的,則單個實體參數(以擴散系數Γ為例)的線性插值結果是

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

1.2.6 cfd常用算法

流場計算的基本過程是在空間上用有限體積法(或其他類似方法)将計算區域離散成許多小的體積單元,在每個體積單元上對離散後的控制方程組進行求解。

其本質是對離散方程進行求解,一般可以分為分離解法(segregated method)和耦合解法(coupled method)兩大類,各自又根據實際情況擴充成具體的計算方法。

分離解法不直接求解聯立方程組,而是順序地、逐個地求解各變量代數方程組。分離解法中應用廣泛的是壓力修正法,其求解基本過程如下。

(1)假定初始壓力場。

(2)利用壓力場求解動量方程,得到速度場。

(3)利用速度場求解連續方程,使壓力場得到修正。

(4)根據需要,求解湍流方程及其他标量方程。

(5)判斷目前時間步上的計算是否收斂。若不收斂,傳回第二步,疊代計算;若收斂,重複上述步驟,計算下一時間步的實體量。

壓力修正法有很多實作方式,其中,壓力耦合方程組的半隐式方法(simple算法)應用最為廣泛,也是各種商用cfd軟體普遍采納的算法。

耦合解法同時求解離散方程組,聯立求解出各變量(等),其求解過程如下。

(1)假定初始壓力和速度等變量,确定離散方程的系數及常數項等。

(2)聯立求解連續方程、動量方程、能量方程。

(3)求解湍流方程及其他标量方程。

(4)判斷目前時間步上的計算是否收斂。若不收斂,傳回第二步,疊代計算;若收斂,重複上述步驟,計算下一時間步的實體量。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

simple算法的基本思想可描述為:對于給定的壓力場(它可以是假定的值,或是上一次疊代計算所得到的結果),求解離散形式的動量方程,得出速度場。因為壓力場是假定的或不精确的,這樣,由此得到的速度場一般不滿足連續方程,是以,必須對給定的壓力場加以修正。

修正的原則是:與修正後的壓力場相對應的速度場能滿足這一疊代層次上的連續方程。據此原則,把由動量方程離散形式所規定的壓力與速度的關系代入連續方程的離散形式,進而得到壓力修正方程,由壓力修正方程得出壓力修正值,接着根據修正後的壓力場,求得新的速度場,然後檢查速度場是否收斂,若不收斂,用修正後的壓力值作為給定的壓力場,開始下一層次的計算;如此反複,直到獲得收斂的解。

在上述求解過程中,如何獲得壓力修正值(即如何構造壓力修正方程),以及如何根據壓力修正值确定“正确”的速度(即如何構造速度修正方程),是simple算法的兩個關鍵問題。為此,下面先解決這兩個問題,然後給出simple算法的求解步驟。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

ρ是标量控制體積界面上的密度值,同樣需要通過插值得到,這是因為密度ρ是在标量控制體積中的節點(即控制體積的中心)定義和存儲的,在标量控制體積界面上不存在可直接引用的值。無論采用何種插值方法,對于交界面所屬的兩個控制體積,必須采用同樣的ρ值。

為了求解方程1-261,還必須對壓力修正值的邊界條件作出說明。實際上,壓力修正方程是動量方程和連續方程的派生物,不是基本方程,故其邊界條件也與動量方程的邊界條件相聯系。

在一般的流場計算中,動量方程的邊界條件通常有兩類。

第一,已知邊界上的壓力(速度未知)。

第二,已知沿邊界法向的速度分量。

若已知邊界壓力bar p,可在該段邊界上令{p^*} = bar p,則該段邊界上的壓力修正值pprime應為零。這類邊界條件類似于熱傳導問題中已知溫度的邊界條件。

若已知邊界上的法向速度,在設計網格時,最好令控制體積的界面與邊界相一緻,這樣,控制體積界面上的速度為已知。

(3)simple算法的計算步驟。

至此,已經得出了求解速度分量和壓力所需要的所有方程。根據前面介紹的simple算法的基本思想,可給出simple算法的計算流程,如圖1-12所示。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

2.其他算法

simple算法自問世以來,在被廣泛應用的同時,也以不同方式不斷地得到改善和發展,其中最著名的改進算法包括simplec、simpler和piso。下面介紹這些改進算法,并對各算法進行對比。

(1)simpler算法。

simpler是英文simple revised的縮寫,顧名思義是simple算法的改進版本。它是由simpler算法的創始人之一patanker完成的。

我們知道,在simpler算法中,為了确定動量離散方程的系數,一開始就假定了一個速度分布,同時又獨立地假定了一個壓力分布,兩者之間一般是不協調的,進而影響了疊代計算的收斂速度。

實際上,不必在初始時刻單獨假定一個壓力場,因為與假定的速度場相協調的壓力場是可以通過動量方程求出的。

另外,在simpler算法中對壓力修正值pprime采用了欠松弛處理,而松弛因子是比較難确定的,是以,速度場的改進與壓力場的改進不能同步進行,最終影響收斂速度。于是,patanker便提出了這樣的想法:pprime隻用修正速度,壓力場的改進則另謀更合适的方法。将上述兩方面的思想結合起來,就構成了simpler算法。

在simpler算法中,經過離散後的連續方程1-258用于建立一個壓力的離散方程,而不用來建立壓力修正方程。進而可直接得到壓力,而不需要修正。但是,速度仍需要通過simple算法中的方程1-252~方程1-256來修正。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

(3)piso算法

piso是pressure implicit with splitting of operators的縮寫,意為壓力的隐式算子分割算法。piso算法是issa于1986年提出的,起初是針對非穩态可壓流動的無疊代計算所建立的一種壓力速度計算程式,後來在穩态問題的疊代計算中也較廣泛地使用了該算法。

piso算法與simple、simplec算法的不同之處在于:simple和simplec算法是兩步算法,即一步預測(圖1-12中的步驟1)和一步修正(圖1-12中的步驟2和步驟3);而piso算法增加了一個修正步,包含一個預測步和兩個修正步,在完成了第一步修正得到後尋求二次改進值,目的是使它們更好地同時滿足動量方程和連續方程。piso算法由于使用了預測—修正—再修正3步,進而可加快單個疊代步中的收斂速度。下面介紹這3個步驟。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

就像在simple算法中一樣,将式1-280和式1-281代入連續方程1-258,得到壓力修正方程。求解該方程,産生第一個壓力修正值pprime。一旦壓力修正值已知,可通過式1-280和式1-281獲得速度分量u^{}與v^{}。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎
《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

在瞬态問題的非疊代計算中,壓力場p^{}與速度場(u^{},v^{*})被認為是準确的。對于穩态流動的疊代計算,piso算法的實施過程如圖1-14所示。

《FLUENT 14.0超級學習手冊》——1.2 計算流體力學(CFD)基礎

piso算法要兩次求解壓力修正方程,是以,它需要額外的存儲空間來計算二次壓力修正方程中的源項。盡管該方法涉及較多的計算,但對比發現,它的計算速度很快,總體效率比較高。fluent的使用者手冊推薦,對于瞬态問題,piso算法有明顯的優勢;而對于穩态問題,可能選擇simple或simplec算法更合适。

3.simple系列算法的比較

simple算法是simple系列算法的基礎,目前在各種cfd軟體中均提供這種算法。simple的各種改進算法主要是提高了計算的收斂性,進而可縮短計算時間。

在simple算法中,壓力修正值pprime能夠很好地滿足速度修正的要求,但壓力修正不是十分理想。改進後的simpler算法隻用壓力修正值pprime來修正速度,另外建構一個更加有效的壓力方程來産生“正确”的壓力場。

由于在推導simpler算法的離散化壓力方程時,沒有任何項被忽略,是以所得到的壓力場與速度場相适應。

在simpler算法中,正确的速度場将導緻正确的壓力場,而在simple算法中則不是這樣。是以simpler算法是在很高的效率下正确計算壓力場的,這一點在求解動量方程時有明顯優勢。

雖然simpler算法的計算量比simple算法高出30%左右,但其較快的收斂速度使得計算時間減少30%~50%。

simplec算法和piso算法總體上與simpler算法具有同樣的計算效率,互相之間很難區分誰高誰低,對于不同類型的問題每種算法都有自己的優勢。

一般來講,動量方程與标量方程(如溫度方程)如果不是耦合在一起的,則piso算法在收斂性方面顯得很好,且效率較高。而在動量方程與标量方程耦合非常密切時,simplec和simpler算法的效果可能更好些。

1.2.7 計算域網格生成技術

網格分布是流動控制方程數值離散的基礎,是以,網格生成技術是cfd成功實作數值模拟的關鍵前提之一,網格品質的好壞直接影響到計算的斂散性及結果的精度。

網格生成的難度和耗費在整個模拟計算程式中占有較大的比重,“從某種角度看,自動生成繞複雜外形的理想網格甚至比編制一個三維的流場解程式更困難,即使在cfd高度發達的國家,網格生成仍占一個計算任務全部人力與時間的60%”,由此可見網格生成在實作流場解算功能過程中的重要性。

網格生成的實質是實體求解域與計算求解域的轉換。一般而言,實體域與計算域間的轉換應滿足下述基本條件。

(1)生成的網格使實體求解域上的計算節點與計算求解域上的計算節點一一對應,不緻于出現實體對應關系不确定的多重映射節點。

(2)生成的網格能夠準确反映求解域的複雜幾何邊界形狀變化,能夠便于邊界條件的處理。

(3)實體求解域上的網格應連續光滑求導,保證控制方程離散過程中一階甚至多階偏導數的存在性、連續性。網格中出現的尖點、突躍點都将導緻算法發散。

(4)網格的疏密易于控制,能夠在氣動參數變化劇烈的位置,如擊波面、壁面等處加密網格,而在氣動參數變化平緩的位置拉疏網格。

計算機技術的發展為計算流體力學步入工程實用階段提供了可能,如何有效地處理複雜的物面邊界,生成高品質的計算網格,是目前計算流體力學一個重要的研究課題。

結構化網格在拓撲結構上相當于矩形域内的均勻網格,其節點定義在每一層的網格線上,是以對于複雜外形物體要生成貼體的結構網格是比較困難的。而非結構化網格節點的空間分布完全是随意的,沒有任何結構特性,适應性強,因而适合于處理複雜幾何外形,并且由于非結構化網格在其生成過程中都要采用一定的準則進行優化判定,因而生成的網格品質較高。

wimslow最早在20世紀60年代利用有限面積法用三角形網格對poisson方程進行了數值求解;而20世紀90年代以後,國外學者dawes、hah、prekwas等采用了非結構化網格進行流場的數值求解,國外的著名商業cfd軟體,如fluent、star-cd等在20世紀90年代後都将結構化網格計算方法推廣到非結構化網格上。

近年來,國内學者也開始對非結構化網格進行深入的研究與探讨,由此可見非結構化網格已成為目前計算流體力學學科中的一個重要方向。

非結構化網格的生成方法有很多,較常用到的有兩種:delaunay三角化方法和推進陣面法(advancing front method)。

(1)delaunay三角化方法

delaunay三角化方法是按一定的方式在控制體内布置節點。定義一個凸多邊形外殼,将所有的點都包含進去,并在外殼上進行三角化的初始化。

将節點逐個加入已有的三角化結構中,根據優化準則破壞原有的三角化結構,并建立新的三角化結構,對有關資料結構進行更新後,繼續加點,直到所有的節點都加入其中,三角化過程結束。所生成的三角形網格,可以通過光順技術進一步提高品質。

常用的一種網格光順方法稱為laplacian 光順方法,這種光順方法是通過将節點向這個節點周圍的三角形所構成的多邊形的形心的移動來實作的。

(2)推進陣面法。

推進陣面法是網格和節點同時生成的一種生成方法,它的基本方法為:根據網格密度控制的需要,在平面上布置一些控制點,給每一個控制點定義一個尺度。根據這些控制點将平面劃分成大塊的三角形背景網格。

每一個背景網格中的所有點的尺度都可以根據其3個頂點的尺度插值得到。是以相當于布置了一個遍布整個平面的網格尺度函數。根據内邊界定義初始陣面,按順時針方向進行陣面初始化。初始化陣面上的每一條都稱為活動邊。

由初始陣面上的一條活動邊開始推進,根據該活動邊的中點所落入的背景網格插值确定該點的尺度,根據該點的尺度及有關的規則确定将要生成的節點位置。

判定該節點是否應被接納,并根據情況生成新的三角形單元,更新陣面,并沿陣面的方向繼續推進生成三角形,直至遇到外邊界,網格生成結束。

繼續閱讀