3. 架構與實作
3.6 網格細分(Mesh Refinement)
網格細分的演算法可根據力差法解電場積分方程式的解,調整局部需要細分 的網格,以達到更準確的電流計算答案。首先,須對欲模擬的結構生成初始網格,
提供給 Galaxy 解電流分佈,電流解不必很準,但要能描述網格間相對的電流分佈 和大小,以提供後續網格細分的步驟。決定網格細分的區域後,插入新的節點並 移除原先該區域的網格,重新在該區域執行局部 Delaunay 三角形網格生成
(h-refinement)。最後,移動局部節點(r-refinement)使網格分佈較均勻。每 一次區域網格改變時,都要對變動的網格檢查 Delaunay 條件,以翻轉邊(edge flip) 的運算使網格符合 Delaunay 條件。網格細分的過程重複執行,直到達到停止條件。
網格細分的演算法入下:
REFINE-MESH(M) Parameter definition:
M: original mesh Function definition:
ENCLOSE-REFINED-REGION(M,I): enclose the refined region according a mesh M and its current distribution I, finally return the enclosed region
GENERATE-MESH(G): generate a mesh of the enclosed region R and return the mesh
GALAXY(M): solve current distribution using MOM according the mesh M and return the current distribution
INSERT-VERTICES(R): insert vertices into the region R
MERGE-MESH(M,MR): merge two mesh M and MR and return edges connecting to these two mesh
LEGALIZED(e): flip the edge e until it satisfy the Delaunay criterion SMOOTH-MESH(M): smooth mesh M and return the changed edges 1 I ← GALAXY(M)
2 R ← ENCLOSE-REFINED-REGION(M,I) 3 INSERT-VERTICES(R)
4 for each triangle patch t ∈ R 5 do remove t
6 MR ← GENERATE-MESH(R) 7 E ← MERGE-MESH(M,MR) 8 for each edge e ∈ E
9 do LEGALIZED(e)
10 E ← SMOOTH-MESH(M) 11 for each edge e ∈ E
12 do LEGALIZED(e)
3.6.1 決定網格細分的區域
Ineighborj
)
以上誤差判斷的方式只是一個局部誤差指示器(local error indicator):
一個網格元素上電流的誤差是與該網格中所有網格元素相對比較而得。這種局部 誤差指示器計算快速而且節省記憶體空間。另外有一種較為嚴謹的全域誤差指示 器(global error indicator):誤差的大小必須與之前每一次網格修正產生的所 有網格以及計算的電流大小比較來決定,不僅實作上較為複雜,且執行起來亦相 當費時費空間。鑑於以上原因,我們仍選擇快而省空間的局部誤差指示器來決定 網格細分的區域。
3.6.2 局部 Delaunay 三角形網格 hr 細分
(Local Delaunay hr-Refinement)
Delaunay三角形網格分割的技術亦適用在局部網格的細分。只需定義局部的
(r-refinement);第二是在區域與全域網格的交界處做翻轉邊運算,使這些交界 的邊符合Delaunay條件。改進後的局部Delaunay三角形網格hr細分演算法能使細 分後的網格較為均勻。
局部Delaunay三角形網格hr細分的步驟如下(同時參考圖 5-18):
1. 插入新的節點:在需要被細分的三角形網格上插入新的節點。若三角形最長
4. 確保局部區域的邊界符合Delaunay條件:若局部網格細分區域與全域網格的 交界邊不符合Delaunay條件,做翻轉邊運算使其符合Delaunay條件( 圖 5-18e)。
adjacenti
∑
== 1
' (8)
r 為新的節點位置,' 表示只以一個邊與此節點相連的周圍節點,其中,
,n 為周圍節點的數量。
adjacenti
r
n i=1,...,
(a) (b)
(c) (d)
(e) (f)
圖 5-18:局部 hr 網格細分的過程:(a) 插入新的節點(o:新插入的節點) (b) 移除局部網格 (c) 局部 Delaunay 網格生成 (d) 局部網格和全域網格連接 (e) 將移動的局部節點 (f) 移動局部節 點後的網格,粗線表示移動節點後被改變邊
[18]中提出的區域Delaunay網格細分演算法,只做了以上步驟 1 到 3( 圖 5-18a-d)。我們加上步驟 4 和 5,可使網格分佈更均勻,觀察圖 5-18f的網格分佈,
比圖 5-18d的網格分佈更為均勻。
3.6.3 網格細分終止條件(Criteria)
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02
-10
mesh refinement initial mesh 80
C
percentage of triangle patches(%)