• 沒有找到結果。

縮減 Mesh & Smoothing

4. 理論方法程式化

4.3 縮減 Mesh & Smoothing

本研究中簡化 Mesh 的方法是以一個內部節點為基礎,藉由互換四邊形對角 線的方式來消去此節點,具體做法由連接三點所形成的三角區域開始處理,然後 是連接四點的四邊形區域,再來是五邊形依此類推至 N 邊形。

1. 內部節點只有連接 3 點(三角形),直接縮成三角形,不論外邊點是否為邊界

2. 內部節點連接 4 點(4 邊形)

a. 凸 4 邊形,任意兩對頂點相連

b. 凹 4 邊形,只能類似下圖連接法:

3.內部節點為 5(以上)邊形,置換一邊(N 邊)後為四邊形,然後以四邊形處理,方 式依據置換邊的原則

4.3-1 四邊形對角線置換原則

4.3-2 判斷凹或凸四邊形法

對於置換四邊形對角線上存在一個問題,只有凸四邊形才適合置換,凹的四 邊形置換後會破壞三角網格結構,如下圖 8.所示:

凸四邊形則沒有這種問題,如下圖 9.所示:

圖 8.

圖 9.

如何判斷是否為凸四邊形則可以用平面直角坐標系上直線方程式,以下圖

4.3-3 Smooth

經過縮減後的 MESH 在結構上會有些微變化,些許變化在整體結構上雖然影 響不大,不過多次的縮減後則可能出現過於尖銳的三角網格如下圖 12.,過於尖 銳的三角網格不僅不利於計算在網格縮減過程也會造成阻礙,因此有必要藉由平 滑的技術來處理種問題。另外初始網格結構平滑程度也許不足,因此獲得初始網 格時也可先 smooth 後再做接下來的處理。

本文採用的平滑技術為質心位移法,藉由每次將中心點向質心逐漸移動後達 成平滑目的圖 13.。在此對於邊界點以及某些固定點則不做此動作,以避免整體 網格結構破壞。

圖 12.

圖 13.

4.3-4 對角線置換法

除了使用 smooth 處理過於尖銳的網格外,對角線置換也可適用於這部分,

如下圖 14.,左圖兩紅色圈部分為尖銳網格,將其最長邊做置換後得到右圖,在 此是否可置換皆依據之前提過之判斷法,兩圖比較下明顯右圖較符合所需,經過 置換後之網格仍配合 smooth 一並處理,以便得到較平滑網格。

需要轉置的邊長條件設定為三角網格中,最大邊長大於三邊平均長度 1.5 倍 或最大邊長為最小邊長 2 倍以上,符合此條件即進行處理,所有面都檢查過後再 進行 smooth,以效率來看此方法比直接 smooth 造成的效果還要顯著。

圖 14.

4.4 邊界點的縮減

在整體縮減過程中並沒有刪除或更改邊界點,經過縮減後的網格某些邊界點 則變得不重要可以進行縮減,在此提出可縮減的邊界點判斷法,如下圖 15.只有 邊界點的連接數為 3 時才適合刪除,a、b、c 皆為邊界上的節點,其中 a 為主要 目標點,與其相連的點有(b,c,d)三點,因此刪除 a 點(刪去 ad 邊)後整體來看仍為 三角形不會破壞網格結構。

如果 a 點連接數超過 3 點如下圖 16.,則不處理。

a

b c

d

b c

d

圖 15.

b a c

d

e

圖 16.

4.4-1 判斷基準點

邊界點中只有當(b,a,c)3 點為同一直線時才適合刪減,當 3 點不共線時 a 點 則視為基準點(此以圖 17.為例),而基準點不論何時我們都不動它。如下圖 17.,

(a,b,c,d,e)為邊界上之 5 點,其中(b,d,c)、(c,a,e)分別共線,而 c 點即為基準點。在 此我們可將有轉折的點(不共線)視為基準點。

如何判斷基準點除了一開始給定之外可利用向量外積(corss product)的方式 來判斷,若兩向量平行則外積值為 0,即為 3 點共線圖 18.,當外積值不為 0 時 則有基準點圖 19.。

a b

c d

e 圖 17.

V1 V2

V1 V2

(V1 X V2)=(0,0,0)

(V1 X V2)=(0,0,k) ,k≠0 圖 18.

圖 19.

4.5 重組 Mesh

完成上述動作後,即可建立新面矩陣。作法與重牌節點相同,在此取 neib

5. 實際結果

最後我們對研究方法做測試,第一部分先對縮減後的結果做檢視,查看是否 仍為正常的 Mesh 結構,整體上 smoothing 結果是否理想。第二部分將未縮減前 原始 Mesh 與縮減之後的新 Mesh 在數值計算上做比較。

以下圖 20.為原始 Mesh 開始測試,此圖有 1101 個節點和 2072 個面,且所 有面皆為三角形組成,整體看來為正規的三角網格。

圖 20.

(1101,2072)

對於上圖 20.縮減的方式,因為可以針對需要縮減的地區進行縮減,所以在 此先對中心點(5,5)周圍區域進行縮減,範圍暫定為 2,也就是(5,5,2)這個圓的部 分進行測試。下圖 21.為縮減後結果,總體上並無錯誤,平滑程度也可以接受,

此結果節點數為 900 而面個數為 1694。

(5,5,2)=(x 座標 ,y 座標 ,圓半徑)

(900,1694) 圖 21.

下圖 22.將原始網格和縮減後網格重疊做比較,紅色線為原始網格藍色線為 縮減後網格。大致上可以看出已(5,5)為中心周圍少了很多節點

圖 22.

Red(1101,2072) & Blue(900,1694)

接下來對整個區域做縮減,預設剩餘節點數約 10%。下圖 23.為處理後結果,

此網格結構僅由 44 節點以及 61 個面組成,對於邊界點的處理上除了可拿掉的節 點之外皆不改變其位置,因此會有部分邊界點很靠近的情況,基於邊界點不動的 原則上對此不另作處理。

圖 23.

(44,61)

下圖 24.多增加幾個縮減區域測試,縮減區設定為三,分別為(1,2,2)、(3,7,3)、

(9,4,1),縮減範圍以黑圈標示,節點數 609 面個數 1137。就結果來說沒有網格結 構上的錯誤,整體平滑程度也可以接受。

(609,1137) 圖 24.

下圖 25.為原始網格圖 20.和圖 24.重疊圖做比較,紅色線仍為原始網格藍色 線則是縮減後網格。

圖 25.

Red(1101,2072) & Blue(609,1137)

接下來我們對不規則的網格結構做測試,下圖 26.類似手掌的網格

我們對其進行全域縮減得到以下的結果(圖 27.):

(1663,3046)

(113,135)

圖 26.

圖 27.

將上頁兩圖重疊做比較(圖 28.):

基於科學計算上的觀點來說,我們並不希望在邊界也進行消去,因此下圖 29.將保留所有的邊界點,在五根手指的部分因為過於細長則不處理僅對掌心部 分進行縮減:

red(1663,3046), blue(113,135) 圖 28.

最後我們適當的取範圍得到下面的結果(圖 30. & 圖 31.):

(1130,1980)

red(1663,3046),blue(1130,1980)

圖 30.

圖 31.

對第一部分測試的結果來看,並無破壞網格結構,對縮減區域也有不錯的結 果。因此接下來我們將在數值計算上以及處理速度上做一些討論。

網格在數值計算上的應用常見的方式為有限元素法,方法上將每個面當成一 個元素來處理,經過計算後形成的矩陣求得數值解。第二部分中我們將用有限元 素法解一般常見的偏微分方程例子,針對解的誤差值以及處理時間上做討論。

例子一:

Laplace's equation

PDE : ∇

2

u = 0 ⇔

∂x2u2

+

∂y2u2

= 0

實際解設 u = xy,邊界條件預設為實際解 u = xy

以有限元素法求數值解可知精準度與元素大小有關,當分割的越細計算出的 精準度就會越高,而誤差估計則與元素劃分時最大三角形邊長 h 有關,一般來說 如果實際解為二階導數則函數誤差與h2等價,一階導數誤差與 h 等價,因此可以 預測 Laplace's equation 數值解誤差在h2

在此將以下列網格(圖 32.)做計算求數值解並比較:

此網格有 1101 節點 2072 三角元素(面),最大邊長 h=0.0482,X、Y 介於[0,1]。

實際最大誤差為 8.5941x10−5,h2=0.04822=0.00232324=2.32324x10−3,誤差值在 (1101,2072) , [0,1]X[0,1]

圖 32.

以元素較大的網格(圖 33.)測試,此網格中最大邊長 h=0.8046,X、Y 介於 [0,10]。

實際最大誤差為 1.83x10−2,h2=6.4738116x10−1,誤差值仍在預估之內。因此我 們以有限元素法來計算此問題是可行的。

接下來以局部縮減之網格(圖 34.)做測試:

在此網格(圖 34.)中,經由誤差估計可以知道最大誤差會與縮減後的區域內 最大元素邊長 h 有關,因此可以預想縮減區域的誤差會最大,而未縮減的區域與 原網格之誤差相差不大。此網格最大邊長 h=1.956,實際最大誤差為 1.336 x10−1, h2=3.8259 仍在誤差之內。

本研究的目的在於針對選定區域縮減網格,縮減比例依需求設定,在此預設 皆為 10%,也就是將區域內 90%左右之節點消除,在此之下誤差因部分元素變大 而增加但是以誤差估計來看仍然在範圍之內,也就是說在數值處理過程中這區域 因為少了 90%個節點而省去 90%的時間,代價就是數值的精準度下降,不過這區 域的誤差仍在預計的範圍。

(432,798) , [0,10]X[0,10]

(758,1411) ,

縮減區域為 (4,3.5,3) [0,10]X[0,10]

圖 33.

圖 34.

在數值計算上除了有限元素法之外也有其他的方法,在此僅以常見的解法來 比較,對於其他精準度較高的算法則不在本研究的討論之內。根據上面的例子結 果可知在誤差估計上除了縮減區域精準度下降,未縮減之部份可說沒有影響。因 此接下來針對處理時間上做討論。

因為研究上的方便性,本研究使用 matlab6.5 編寫程式並執行所有結果,基 於軟體本身的限制,節點、網格數目有上限,所以無法對 2 萬節點以上的網格做 測試,因此僅對 1 萬以下節點做一些比較分析。

首先紀錄將原網格縮減所需時間,針對須處理節點數的多少所花的時間上也 會因此增加或減少。因為科學計算上的問題以下網格我們將保留所有邊界點。

因為程式內如何選擇刪除節點為亂數決定,

因此即使是同一區域進行縮減後的結果也略有 不同。右圖 35.為原網格圖,使用有限元素法所 花時間平均 0.7 秒。

將原圖取中心範圍縮減後得到(638,1146)右 下圖 36.,所花時間 6.2 秒。

(1101,2072)

(638,1146)

圖 35.

圖 36.

此問題最後以(4233,8208)圖 37.所構成的網格做測試,以有限元素法處 理此網格所花平均時間為 36 秒。將此網格進行中心區域縮減所花時間為 80 秒 (1729,3200)圖 38.。

圖 38.

圖 37..

(4233,8208)

(1729,3200)

根據上述結果可見縮減所花時間比直接計算還要多,對此進行程式內部分別

對此問題同樣以有限元素法處哩,首先測試誤差是否與例一相同,也就是當 最大邊長 h 時誤差在h2。測試網格如右圖 39.:

此網格有 1101 節點 2072 三角元素(面),最大邊 長 h=0.0482,X、Y 介於[0,1]。實際最大誤差為

5.3407x10−5,h2=0.04822=0.00232324=2.32324x10−3, 誤差值在預估之內。下圖 40.為數值解之流速圖。花 費平均時間 0.94 秒。

(1101,2072) ,

[0,1]X[0,1] 圖 39.

圖 40.

下圖 41.為流速圖和網格重疊圖:

圖 41.

對此例題我們分別以更密之網格(圖 42.)進行全域縮減以 及部分區域縮減進行測試。使用有限元素法所花平均時間 30.6 秒。將此網格進行縮減已於例一測試過,因此只將縮減後網格 進行測試。

進行全域縮減後之網格為(427,740)(圖 43.),使用有限元 素法所花平均時間 0.147 秒。數值解形成流速圖 44.如下:

(4233,8208)

(427,740)

圖 42.

圖 43.

圖 44.

6 結論

對於本文所提出之方法確實可以在指定區域進行平面網格縮減,實驗結果顯 示雖然縮減結果符合預期,但是程式執行時間上也不少,這方面可以在建立資料 時只對縮減區域建立所需資料而不對整體建構,藉此可以省去建立不需處理的網 格時間。從實驗結果來看建立資料與縮減過程花費時間大約各占一半,因此可預

對於本文所提出之方法確實可以在指定區域進行平面網格縮減,實驗結果顯 示雖然縮減結果符合預期,但是程式執行時間上也不少,這方面可以在建立資料 時只對縮減區域建立所需資料而不對整體建構,藉此可以省去建立不需處理的網 格時間。從實驗結果來看建立資料與縮減過程花費時間大約各占一半,因此可預

相關文件