• 沒有找到結果。

網格中心的梯度計算公式為:

Ω∇ Ω= Ω Ω

d d

d φn

φ (3.75)

其中φ表示任一純量變數,Ω表示局部網格之面積,n表示積分路徑之法向 量,以三角形網格A 為例(參考圖 3-11 之標示),網格中心梯度估算與其圍 線積分之路徑有關,由上式可推得:

Ω Ω

d

A

A φnd

φ 1 (3.76)

於求解上式時,在選擇路徑及求面積法則必須能滿足下列限制條件:

(A). 當φ 為線性變數時,則∇φA 必須為解析解。

(B). 對於任意多邊形網格,∇φA 必須能夠被定義。

Barth 與 Jespersen [60]提出三種不同積分路徑之策略並證明是否滿足限 制條件,積分路徑詳如圖3-11 所示:

(1).沿著網格 A 之邊緣路徑積分,含局部網格共使用 4 個網格,並使用相鄰 網格之中點近似法則來計算積分式即邊緣e(v1,v2) 中點之φe 值採φA及φB 的算術平均數,即

2

B A e

φ

φ =φ + (3.77)

(2).沿著網格 A 之所有相鄰網格(即 B、C 及 D)之格心連線路徑積分,含局 部網格共使用4 個網格,並使用梯形法則來計算積分式,即

2

,

C B BC e

φ

φ =φ + (3.78)

(3).沿著網格 A 所有共用格點之相鄰網格之格心連線路徑積分,含局部網格 共使用4 個以上的網格,並使用梯形法則來計算積分式。

Barth 與 Jespersen 指出策略(1)除了邊緣相鄰網格中心之連線恰中分該 邊緣時,否則不滿足限制條件(A);策略(2)滿足限制條件(A),但當網格 A 為扭曲網格時,即相鄰網格B、C、D 之格心連線重疊為一直線之時,則不 滿足限制條件(B);策略(3)均滿足限制條件(A)與(B)。

本文在計算梯度採用之策略為使用策略(1)之積分路徑,並依據網格之 不同使用相鄰網格之中點近似法則(四邊形網格)或使用格點梯形法則(三邊 形網格)來計算積分式,其中局部網格之格點變數值計算,係採用共用該格 點之所有網格中心值之面積倒數平均值,故其涵括之網格數與策略(3)相同 但計算面積之效率較高,唯仍較中點近似法則需要較多的計算時間,為了 克服此問題以縮短共用該格點之網格蒐尋時間,於網格系統資料中先利用 Linked List 動態矩陣[123]之概念,於計算之初即以下列方式尋找並儲存其 關聯,後續用到時即可快速找出共點之網格編號,即Nc=NofJ(Ni)表示格點 編號Ni 之共點網格數及 Li=LofJ(Ni,i),i=1,2,…Nc,表示格點編號 Ni 之第 i 個共點網格編號。

共點之網格數目在二維時4 邊形網格或三維之 6 面體網格約為 4 或 8,

故LofJ(Ni, Nc)之矩陣大小則為格點數乘以 4 或 8,尚不算大且數目均一致。

但當使用二維3 邊形或三維之 4 面體網格時,則此矩陣空間則變得非常不 一致且共點之網格數目數量有時可達60 個以上,若使用 Ni×60 則需要非常 大的記憶體,若使用Linked list 之動態矩陣,則可節省大量的儲存空間,例 如有10000 個格點為例,使用一般的矩陣則需 10000×60=600000 個記憶空 間;若使用Linked list 之動態矩陣則需 12000×20=240000,可節省 360000 個記憶空間,若網格愈密則差異更大。

共用格點之網格關聯尋找之概念及Fortran 程式摘要說明如下:

CALLofJ副程式流程圖

本副程式主要在處理共點之網格集合:

利用Linked List概念來儲存集合之資料,可節省大量的記憶體空間,

以下用火車之概念來說明:

1. 首先要定義有多少節車廂及每部車廂可容納多少人。

2.車廂數的設定通常取總格點數的1.2倍;而每部車廂可容納人數:

二維4邊形網格取10;3邊形則取30。三維6邊形網格取10; 4邊形 網格取40 。 DO n=1,Ncell

No

如前所述,在計算擴散項及質量流率時必須先決定各變數的梯度,而 梯度的估算方法對於解的精確性有顯著的關聯,計算梯度最簡單的方法就 是運用高斯理論(Gauss theorem),如下所示(參考圖 3-1 所示):

1

P fSf

φ φ

∇ =ΔΩ

(3.79)

其中總合係控容體所有面之面上變數與面向量乘積之總合,面上變數值可 以使用最簡單的相隣網格中心之兩點中央線性內插法來估得,即

(1 )

f w C w P

φ = φ + − φ (3.80)

其中w 為權重因子。

上述之線性內插法通常被認為在用於梯度計算時是低階準確,因為只 有含概最隣近的兩個網格,為了提高準確度則必須引入更多的隣近網格 [41,60,75],參考 Mathur 與 Murthy [86]所用之線性重置二階準確法來獲得面 上之變數值,可平滑估計值,不致產生過於高估/低估之值,有助於程式之 穩定性:

(1) (1)

1[( ) ( )]

f 2 P P Pf C C Cf

φ = φ + ∇φ δi + φ + ∇φ δi (3.81) 其中δPf 與δCf 為距離向量分別從面心 f 指向格點 P 與 C ,梯度∇φ(1) 係使

用如式(3.80)簡單內插法所獲得之φ(1)f 值計算而得,而面心之變數值

φ

f可能沒 有界限於局部網格之相隣周圍網格之最大與最小值之中,可能會導致獲得 較周圍網格超高或超低估算之值,繼而得到異常的梯度變化值,因此,特 別加入了限制條件,如下所示:

( )

min max(min{ }, ), max{ }

f C f C

φ = φ φ φ (3.82)

其中{ }φC 是含括所有局部網格之周圍相隣網格。