非結構網格的自白


我叫非結構網格,英文學名是unstructed mesh。其中典型的形態為2D中的三角形網格及3D中的四面體、三稜柱、金字塔網格。我的大哥是結構網格。之所以他是我大哥,主要原因是他出生比我早。我和他的主要差別並非外形,而是體現在數據結構上。也就是說,2D幾何中,大哥的形態可以是三角形網格,我的形態也可以是四邊形網格。所以,以貌取人是絕對不可取的。

大哥出生得早,這和當時的計算硬件以及算法的發展是有關係的。當時計算機內存比較小,只能進行小數量網格的計算,而當時的計算算法,又多采用的是差分算法,因此採用結構網格進行計算是非常合適的。然而,現實世界的複雜性卻對網格提出了更高的要求。比如說複雜的幾何,如果採用結構網格,往往難以進行剖分。這時,由於計算機硬件的飛速發展,大容量內存的出現,導致了我的誕生。我的一個最主要的優勢在於幾何適應性好。可以毫不誇張的說,沒有俺適應不了的幾何。當然,我的出現與算法的發展也是分不開的。在固體計算中,有限元法逐漸取得了優勢;流體計算中,有限體積法也逐漸的確定了領導地位。這兩種算法對於我的出現功不可沒。

雖然我也具有一些缺點,比如無法很好的處理粘性問題,比如網格填充效率不高。但是綜合來看,我的優勢還是很大的,比如由於網格節點間無需固定規則,因此在網格自適應方面,我的能力要遠強於大哥結構風格。隨著計算機技術的發展,我的一些缺點也能在一定程度上得到改善。比如粘性問題,常常採用稜柱網格予以解決。而填充效率低主要體現在生成的網格數量過多,但是隨計算機技術的進步,這些都不是問題。

非結構網格的生成算法

當前最主要的生成算法有:

陣面推進法

基本思想:

  • 首先將待離散區域的邊界按需要的網格尺度分佈劃分成小陣元(二維為線段,三維是三角形面片),構成封閉的初始陣面,然後從某一陣元開始,在其面向流場的一側插入新點,或在現有陣面上找到一個合適與該陣元連成三角形單元,就形成了新的陣元。將新的陣元加入到陣面中,同時刪除被掩蓋了的舊陣元,以此類推,直到陣面中不存在陣元時過程結束。

優點:

  • 初始陣面即為物面,能夠嚴格保證邊界的完整性;
  • 計算截斷誤差小,容易生成網格;
  • 引入新點後易於控制網格步長分佈,且在流場的大部分區域也能的得到高質量的網格。

缺點:

  • 每推進一步,僅生成一個單元,效率低。

Delaunay三角劃分

基本步驟:

  • 將平面上一組給定點中的若干個點連成Delaunay三角形,即每個三角形的頂點都不包含在任何其他不包含該點三角形的外接圓內,然後在給定的這組點中取出任何一個未被連接的點,判斷該點位於哪些Delaunay三角形的外接圓內,連接這些三角形的頂點組成新的Dalaunay三角形,直到所有的點全部被連接。

優點:

  • 具有良好的數學支持;
  • 網格生成效率高;
  • 不易引起網格空間穿透;
  • 數據結構相對簡單。

缺點:

  • 需要在物面處進行布點控制,以保證邊界的一致性及物面完整性,避免物面穿透。

四叉樹(2D) /八叉樹(3D)算法

基本步驟:

  • 先用一個較粗的矩形(二維)/立方體(三維)網格覆蓋包含物體的整個計算域,然後按照網格尺度的要求不斷細分矩形(立方體),使符合預先設置的疏密要求的矩形/立方體覆蓋整個流場,最後再講矩形/立方體切割成三角形/四面體單元。


優點:

  • 網格生成速度快;
  • 易於自適應;
  • 可以方便地同實體造型技術相結合。

缺點:

  • 複雜邊界的逼近效果不甚理想,生成網格質量較差。

陣面推進法與Delaunay三角劃分

基本步驟:

  • 從邊界網格出發,內部的點通過陣面推進法生成,然後利用Delaunay算法對這些點進行逐點插入,不斷重複以上步驟,直到網格尺寸達到要求。

優點:

  • 網格質量好;
  • 邊界逼近效果好;
  • 網格格生成效率高;
  • 具有良好的數學支持。

缺點:

  • 對於邊界風格的依賴性較大,邊界網格的質量直接影響網格劃分結果。
<code> -END-/<code>


分享到:


相關文章: