
發布
注冊
/
登錄非結構化網格的案例
結構化網格和非結構化網格
到目前為止,結構化網格技術發展得相對比較成熟,而非結構化網格技術由于起步較晚,實現比較困難等方面的原因,現在正在處于逐漸走向成熟的階段。下面就簡要介紹一些這方面的情況。
1.1結構化網格
從嚴格意義上講,結構化網格是指網格區域內所有的內部點都具有相同的毗鄰單元。結構化網格生成技術有大量的文獻資料。結構化網格有很多優點:
1.它可以很容易地實現區域的邊界擬合,適于流體和表面應力集中等方面的計算。
2.網格生成的速度快。
3.網格生成的質量好
4.數據結構簡單
5.對曲面或空間的擬合大多數采用參數化或樣條插值的方法得到,區域光滑,與實際的模型更容易接近。
它的最典型的缺點是適用的范圍比較窄。尤其隨著近幾年的計算機和數值方法的快速發展,人們對求解區域的復雜性的要求越來越高,在這種情況下,結構化網格生成技術就顯得力不從心了。
結構化網格的生成技術只要有:代數網格生成方法。主要應用參數化和插值的方法,對處理簡單的求解區域十分有效。
PDE網格生成方法。主要用于空間曲面網格的生成。
1.2非結構化網格
同結構化網格的定義相對應,非結構化網格是指網格區域內的內部點不具有相同的毗鄰單元。即與網格剖分區域內的不同內點相連的網格數目不同。從定義上可以看出,結構化網格和非結構化網格有相互重疊的部分,即非結構化網格中可能會包含結構化網格的部分。
非結構化網格技術從六十年代開始得到了發展,主要是彌補結構化網格不能夠解決任意形狀和任意連通區域的網格剖分的缺欠.到90年代時,非結構化網格的文獻達到了它的高峰時期.由于非結構化網格的生成技術比較復雜,隨著人們對求解區域的復雜性的不斷提高,對非結構化網格生成技術的要求越來越高.從現在的文獻調查的情況來看,非結構化網格生成技術中只有平面三角形的自動生成技術比較成熟(邊界的恢復問題仍然是一個難題,現在正在廣泛討論),平面四邊形網格的生成技術正在走向成熟。
展開 關于CFD網格結構化與非結構化
拓撲其實就是房子的結構。這么理解拓撲比較容易些,以后認識多了,就能徹底通了。
生成結構化網格的軟件gridgen,icem等等都是需要你去建立拓撲,也就是結構,然后軟件好根據你的機構來建立網格,或者砌磚頭,呵呵。
非結構化網格的生成相對簡單,四面體網格基本就是簡單的填充。非結構化六面體網格生成還有些復雜的。但仍然比結構化的建立拓撲簡單多。比如gambit的非結構化六面體網格是建立在從一個面到另外一個面掃描(sweep)的基礎上的。Numeca公司的hexpress的非結構化六面體網格是用的一種吸附的方法。反正你還是要花點功夫。
另外一點就是,結構化網格可以直接應用于各種非結構化網格的CFD軟件,比如你在gridgen里面生成了一個結構化網格,用fluent讀入就可以了。fluent是非結構化網格CFD軟件,它會忽略那些結構化網格的結構信息(也就是B,I,J,K),當成簡單的非結構網格讀入。非結構化六面體網格就不能用在結構化網格的CFD求解器了。
結構化網格仍然是CFD工程師的首選。非結構化六面體網格也還湊合,四面體網格我就不喜歡了。數量多,計算慢,后處理難看。簡單說,如果非結構化即快又好,結構化網格早就被淘汰了。
總結一下:
結構化六面體:建立拓撲(所有軟件gridgen,icem什么的都是一種拓撲概念,界面不一樣罷了),生成網格
非結構化六面體:學習軟件,gambit用掃描方法,hexpress用吸附方法,按照步驟就行了。
非結構化四面體:簡單,看兩頁教程,搞定,就是簡單填充,沒什么技術含量!
其他非結構化網格,棱形等等:學習軟件,按照步驟,很容易。
不管用什么網格軟件,我們最好有比較扎實的CAD(pro/e, solidworks, UG什么的)基礎。熟練的CAD技術太重要了。
展開 CFD結構化網格和非結構化網格【學習筆記】
從總體上來說,數值仿真計算中采用的網格可以大致分為結構化網格和非結構化網格兩大類。
1。結構化網格
結構化網格是指網格區域內所有的內部點都具有相同的毗鄰單元,為六面體;在拓撲結構上矩形區域內的均勻網格,其節點定義在每一層的網格線上,且每一層上節點數都相等,但這樣復雜外形的貼體網格生產比較困難。
優點:
在結構化網格中,每一個節點及控制容積的幾何信息必須加以存儲,但該節點的鄰點關系則是可以依據網格編號的規律而自動得出的,因此數據結構簡單,不必專門存儲這類信息,這是結構化網格的一大優點;除此外,還具有的優點是:1:網格生成的速度快;2:網格生成的質量好;3:對曲面或空間的擬合大多數采用參數化或樣條插值的方法得到,區域光滑,與實際的模型更容易接近。它可以很容易地實現區域的邊界擬合,適于流體和表面應力集中等方面的計算。
缺點
適用的范圍比較窄,只適用于形狀規則的圖形。
2。非結構化網格
非結構化網格是指網格區域內的內部點不具有相同的毗鄰單元,可以是多種形狀,四面體(也就三角的形狀),六面體,棱形,也可以是六面體。與網格剖分區域內的不同內點相連的網格數目不同。
優點
非結構畫網格沒有規則的拓撲結構,也沒有層的概念。網格節點的分布是隨意的,因此具有靈活性,
缺點:
計算時需要較大的內存。
3。計算精度主要在于網格的質量(正交性,長寬比),并不決定于拓撲。
來源:流體空間
展開 組合結構化和非結構化網格:CFD 工程師的圣杯
換句話說,對用戶來說好處是立竿見影的:不再需要從結構化到非結構化的轉換,從網格到求解器的轉換是直接的,并且流求解器使用結構化和非結構化網格的最佳組合!

Griddle劃分非結構化網格(FLAC3D和3DEC)
1 引言
結構化網格只能包含六面體,結構化網格在拓撲結構上是均勻的網格,單元之間有規則的連接,這樣使得復雜外形的邊界網格難以生成;而非結構化網格可以包含四面體,沒有規則的拓撲結構,網格節點的分布是隨機的。相對而言,結構化網格比非結構化網格能提供更精確的應力計算結果,但非結構化網格的生成速度要快得多。FLAC3D使用2D Extruder可以產生相對簡單的非結構化網格,對于復雜的幾何形狀,使用Griddle生成網格(Griddle---FLAC3D和3DEC的高級網格劃分工具)。這個筆記試驗了Griddle生成FLAC3D和3DEC的非結構化網格。
2 Griddle組件
Griddle是Rhino的一個插件, 其主要用途是為FLAC3D和3DEC模型進行網格劃分。基本的工作原理是在Rhino生成幾何形狀的基礎之上,Griddle進行表面網格和體積網格劃分,然后輸出為網格數據文件。Griddle共有10個可操作的組件,如下圖所示。
展開 使用Extrusion工具產生非結構化的網格(unstructured Mesh)
(1) 由于僅創建非結構化的網格,因此選擇Create unstructured meshes only[extrude mesh type unstructured]。(2) Target zone size 該參數指定在塊體內所需的單元尺寸(目標尺寸),默認值為0。目標尺寸是包圍四邊形或三角形單元在內的圓的半徑。當它們遠離區塊體邊界時,單元的尺寸趨向于這個值。目標區域大小可能比在塊體邊緣指定的默認單元尺寸更小或更大[extrude mesh target-size 0.1]。(3) Max gradation該參數指定非結構化網格器的最大梯度,默認值為0.5。該參數控制單元尺寸的漸變,從塊體邊界上指定的尺寸到塊體內部目標區塊尺寸所定義的尺寸。接近0的值會導致區域大小的漸進變化(更平滑)[extrude mesh gradation 0.1]。
(4) Optimization level 該參數指定非結構化網格器的優化級別0≤i≤10, 默認值為5。0使網格器跳過優化步驟, 在這種情況下,網格劃分速度最快,但網格質量可能很差。從1開始,優化算法使用多種技術來改善單元的形狀質量和尺寸質量。5通常是質量和速度之間的很好的權衡值[extrude mesh optimization 10]。(5) Shape quality weight 這個參數指定非結構化網格器的形狀質量 , 0≤f≤1, 默認值為0.7。該參數控制形狀優化和尺寸優化之間的權衡。它是形狀質量在衡量一個單元整體質量的權重。默認值(0.7)使形狀質量稍稍優先于尺寸質量。(6) Weight on quadrilaterals 這個參數為非結構化網格器指定四邊形的權重, 0≤f≤1, 默認值是0.75。這個參數不能用于純四邊形的非結構化網格。該參數控制了更高的四邊形比例和更多三角形更好網格之間的權衡。
展開 關于結構化網格和非結構網格的適用性問題
關于結構化網格和非結構網格的適用性問題。有些前輩認為,數值計算中應采用結構化網格,如果非結構網格則計算結果將“慘不忍睹”。搞壓氣機計算的同行也認為,必須用結構化網格。然而, 對復雜的計算域,如果采用結構化網格必然造成網格質量的急劇下降,扭曲加大等問題。我覺得這時,不如采用非結構網格。諸位,請提出自己的意見.下面是各位的意見。
我是這樣看的:非結構網格使用很方便,外型越復雜就越顯示出其優越性;至于計算結果的精度,就要看非結構網格在單元網格面、體積處理上方法是不是比結構網格要差。就fluent軟件,它是用體積積分法求解雷諾平均方程的,在單元網格面、體積處理上方法好像是按非結構網格方法處理的。你就是按結構網格方法來生成網格,進入fluent中,進行數值計算時都是按非結構網格來處理,所以在fluent中,你用結構化網格方法生網格,和用非結構網格計算沒多大區別!我說說我個人看法.
計算精度,主要在于網格的質量(正交性,長寬比等),并不決定于拓撲(是結構化還是非結構化)。
例如同樣的2d的10×10的正交網格,fluent采用非結構化方式對網格編號,另一種軟件按結構化網格處理,如果其它條件相同,二者的精度應該是一樣的。
我們通常所說的非結構化網格,第一映象就是網格質量差,不正交的,編排無規律的網格的三角形網格或四面體網格,實際上一個二維區域的三角形網格,如果控制得好(如相鄰控制體中心的連線與公共邊基本接近正交的話),其不結構化網格(網格正交性好)的精度是一致的.
我個人感覺采用結構化網格還是非結構化網格,主要看解決什么問題,如果是無粘歐拉方程的話,只要合理布局,結構和非結構都能得到較為理想的結果。但如果涉及到粘性影響的話,尤其在壁面處,結構網格有一定優勢,并且其對外形適應性差的缺點,也可以通過多塊拼接網格解決。
展開 非結構化網格:Voronoi 圖和 Delaunay 三角剖分
作者Cadence CFD 解決方案
關鍵要點
Voronoi 圖和 Delaunay 三角剖分是生成非結構化網格復雜幾何模擬的理想方法。
Voronoi 圖是 Delaunay 三角剖分的對偶。兩者都使用相同的點集,并且適用于一個點的屬性也適用于另一個點。
通過使用高階網格劃分流域,Voronoi 圖和 Delaunay 三角剖分有助于深入了解流動行為。
使用 Delaunay 三角剖分創建非結構化網格
在流體系統的計算分析中,用于模擬的網格生成是一種常用的方法。生成的網格可用于模擬廣泛應用中的流動行為或傳熱行為,包括航空航天和汽車行業。
對于復雜的幾何形狀,可以使用 Voronoi 圖和 Delaunay 三角剖分方法完成網格生成。在計算流體動力學 (CFD) 中,這些方法在網格劃分過程中產生準確性和穩定性。讓我們詳細了解 Voronoi 圖和Delaunay 三角剖分的概念,并分析它們對生成高質量網格的影響。
用于網格生成的 Voronoi 圖和 Delaunay 三角剖分
在 CFD 分析中,系統設計人員尋求在幾何域中表示真實的流動問題。網格生成將該域劃分為有限數量的較小單元格,其中控制方程使用不同的技術離散化并求解以用于復雜工程問題的數值分析。這些網格可以是結構化的或非結構化的,具體取決于幾何體的復雜性;但是,它們的質量是模擬準確性的極其重要的決定因素。
非結構化網格更靈活地表示復雜的幾何形狀,通常使用三角剖分方法來精確地表示此類復雜的域。Voronoi 圖和 Delaunay 三角剖分通常用于生成非結構化網格。
展開 CFD前處理:結構化網格將永遠存在
由于非結構化網格在解決復雜幾何形狀的邊界層、尾流和其他流動特征方面提供了有希望的結果,人們可能會得出這樣的結論:結構化網格將很快退出市場,因為其生成時間較長的名聲。相反,結構化網格為您提供了非結構化網格可能缺乏的兩件事,即質量和控制,并且由于網格的選擇在解決方案的準確性中起著重要作用,因此很明顯結構化網格將繼續存在!
圖 1. 為專為噪聲計算而設計的多元件翼型生成的結構化網格。
使用結構化網格的優點
時間與記憶
使用結構化網格,可以用比四面體更少的六邊形填充相同的體積,從而減少單元數,從而減少 CFD 計算時間和內存使用量。結構化網格通常具有與非結構化網格不同的拓撲結構,因此很難進行直接的單元計數比較。最簡單的是,每個六面體可以分解為五個共享邊緣的四面體,在相同的流場分辨率下,單元數量減少 5:1。當生成解析長度尺度變化很大的網格時,減少單元數的好處變得非常明顯。
解決
流體的流動通常會在一個方向上表現出較強的梯度,而在橫向方向上表現出較溫和的梯度(例如,邊界層、剪切層、尾流)。在這些情況下,可以在具有高縱橫比(大約一千或更多)的六角網格上輕松生成高質量的單元。在高度拉伸的四面體上生成精確的 CFD 解決方案要困難得多。(另外,并非所有拉伸的四邊形都相等,具體取決于最大夾角。)
結盟
當網格與主要流動方向對齊時,CFD 求解器可以更好地收斂并產生更準確的結果。結構化網格中的對齊幾乎是隱式實現的,因為網格線遵循幾何圖形的輪廓(與流一樣),而非結構化網格中則沒有這種對齊。
可定義正常
當存在垂直于墻壁或尾流等特征的明確定義的計算方向時,邊界條件和湍流模型的應用效果很好。橫向法線很容易在結構化網格中定義。
圖2 . 結構化網格非常適合渦輪機械應用。
展開 使用BlockRanger(BR)產生結構化網格
1 引言
在《Griddle劃分非結構化網格(FLAC3D和3DEC)》中首先使用Cylinder和Mesh命令初步劃分三角形網格,然后使用GSurf和GVol命令生成非結構化以六面體為主的網格。對于這樣一個圓柱體,如果想使用BlockRanger產生結構化的網格是不可能的,因為BlockRanger只能對四面、五面或六面的實體(不是表面網格)進行操作,而圓柱體只有三個面。如果非要進行這樣的操作,則會產生錯誤信息"遇到不支持的實體(只支持六面體、棱柱體、四面體和掃掠形的實體)。請檢查高亮顯示實體的拓撲結構"。
另一方面,使用Cylinder命令產生的網格是一個整體,用Itasca語言講,它是一個Group, 如果在圓柱體內想設置兩種或兩種以上的材料,顯然這種方法是行不通的。因此需要使用不同的技術來達到這一目的。
BlockRanger是Griddle的全六面體結構化網格生成器,它的操作原理與非結構化網格器GVol不同。 為了在圓柱體內創建一個結構化的網格,必須將初始實體細分為適合BlockRanger的形狀。
展開 直播課程 | Cradle CFD 非結構化網格熱流分析基礎培訓(2天)
Cradle CFD提供了兩種不同類型的熱流分析工具:采用結構化網格的scSTREAM和HeatDesigner,以及采用非結構化網格的SC/Tetra 和 scFLOW。scFLOW前身的SC/Tetra具有復雜網格生成功能, 高速計算能力, 且操作界面友好。作為升級版, 發行了scFLOW。scFLOW具有更加穩定的求解器,計算速度最多可以提升3倍。其前處理可以幫助入門級用戶建立復雜的模型以及生成高質量的網格。
1 培訓內容
scFLOW作為新一代的軟件,持續發展更新。此次培訓強調理論和軟件操作相結合,案例豐富多樣,包含內/外單相流分析、穩態/非穩態分析、旋轉機械全三維流場分析、船舶兩相流分析、電子產品熱流分析等。
展開 
CFD分析的結構化網格自動生成方法
在CFD分析的全自動優化過程中,一個關鍵任務就是如何實現模型、網格的自動生成以及CFD流場分析的自動運行。最近,我們在的一個名為“GAMMA”研究項目中,遇到這樣一個難題——要求自動的生成一個結構化網格。
為什么要結構化網格
與非結構化網格相比,結構化網格可以極大地加快流場分析,并且能得到一個精度較好的結果。在大型設計研究中進行高質量的分析時,兩者都可以很好的應用。然而,在優化研究中,非結構化網格的自動化生成會更加容易實現——只需幾何模型就可以實現。結構畫網格卻不是這么簡單。
結構網格的挑戰
關鍵問題在于結構化網格如何去填充一個任意幾何的全部特征?舉個我們研究的例子,例如渦輪增壓器的蝸殼,它就存在一個雖然很小,但卻很難處理的幾何特征——蝸舌。如下圖所示:
蝸舌區域是蝸管體和出口段之間的過渡區域。這對于結構網格來說有點復雜。對于蝸管主體,可以很好劃分結構化網格,一般這部分的結構化網格方式比較明確。但是在蝸殼存在蝸舌結構,如何對蝸舌處劃分結構化網格?在這里就有一些用戶迷茫了。
幾何框架
考慮在這樣的蝸殼幾何生成結構化網格,那么就需要要為網格系統提取一些有用的信息。對于各類復雜幾何,是不可能只以一種方式來自動生成結構化網格。我們所做的不僅是生成出新設計的網格,還基于CAESES軟件建立一套基于模型參數化的幾何框架(能引導生成結構化網格),它在某種邏輯上展示了網格是如何劃分的,然后用該幾何框架生成結構畫網格。下圖展示了幾何框架是如何布置的。
通過這些幾何信息,實現了對這個復雜幾何結構的結構化網格劃分。由于這些內部曲線是模型本身的一部分,所以當修改蝸殼的設計變量時,它們也會自動調整。對于無界面使用者,也可以在優化過程中通過腳本形式創建幾何,實現相同的效果,例如通過外部優化工具控制。這也使得該方法能直接適用于HPC環境。
展開 利用圖像識別技術進行全自動非結構化網格劃分
今天給大家分享一個很有意思的劃分網格工具:可以根據圖像進行非結構化劃分網格。
代碼來源:https://github.com/otvam/mesh_from_bitmap_matlab
若Github訪問速度較慢,也可以在公眾號后臺回復:圖像識別劃分網格,便可自動獲取壓縮包。
示例效果
先看看一些效果圖吧:
代碼介紹
主函數文件
用戶可通過調節結構體里面的參數進行圖像的拾取及單元尺寸的控制,需要注意有以下幾點:
在進行選擇圖像時,只能選擇黑、白兩種顏色的圖像,即黑色區域為劃分網格的區域;
圖像通過
imread函數進行讀取,支持
bmp、
png、
jpg格式;
h_min與
h_max分別控制單元的最小尺寸與最大尺寸;
h_growth表示單元尺寸的增長率,具體含義我解釋不清楚,反正,h_growth越大,網格越稀疏,h_growth越小,網格越密集;
scale與
simplify_tol也是控制網格局部加密的函數,會根據內外輪廓進行適當局部加密。
展開 Delft3d結構化網格轉MIKE非結構化網格存儲
/// 將delft網格及水深文件轉成DHI的mesh文件
///
/// delft網格文件
/// delft水深文件
/// DHI的mesh文件
public static void CM2FM(string grdfile,string elefile,string meshfile)
{
StreamReader sr = new StreamReader(grdfile);
System.Text.RegularExpressions.Regex regx = new System.Text.RegularExpressions.Regex(@" +|[\r\n]+|ETA=");
string line = sr.ReadLine();
while ((line.StartsWith("*")))
line = sr.ReadLine();
line =sr.ReadLine();
string[] tmp = regx.Split(line.Trim());
sr.ReadLine();
int ig = int.Parse(tmp[0]);
int jg = int.Parse(tmp[1]);
double[,] xpt = new double[ig, jg];
double[,] ypt = new
展開 【代碼分享-04-Delft3d結構化網格轉MIKE非結構化網格存儲及Delft3D、MIKE網格生成前處理GIS數據轉換
///
/// 將GIS的線矢量shp文件轉換為MIKE網格繪制需要的邊界xyz文件(格式為:x y connectivity)
///
///
///
public static void Shp2xyz(string shpfile, string xyzfile)
{
if (File.Exists(shpfile))
{
//存儲所有線段的坐標點
List<</SPAN>IList<</SPAN>Coordinate>> lstpts = new List<</SPAN>IList<</SPAN>Coordinate>>();
IFeatureSet fs = FeatureSet.Open(shpfile);
IFeatureList lstf = fs.Features;
foreach (Feature f in lstf)
{
lstpts.Add(f.Coordinates);
}
//寫x,y,connectivity格式ascii文件
StringBuilder sb = new StringBuilder();
int idx = 1;
foreach (IList<</SPAN
展開