
發布
注冊
/
登錄非結構網格加速的案例
基于非結構網格的仿真——太湖之光上的巨大挑戰
背 景
在過去數十年中非結構網格被廣泛應用于工業仿真領域,例如著名商業CFD軟件Fluent以及開源CFD軟件OpenFOAM都采用了基于非結構網格的有限體積法,而大多數結構分析軟件例如Abaqus、Nastran等都采用了基于非結構網格的有限元法。非結構網格的流行不是沒有原因的。幾乎所有的工程幾何結構都是非常復雜的,結構化網格雖然在精度和收斂性等方面有優勢,但復雜幾何高質量結構化網格生成的難度和效率卻限制了其通用性。相反,非結構網格以其生成快速和適應復雜幾何的特性,成為工業仿真領域的主流。
結構化網格(上)與非結構化網格(下)
挑 戰
由于數據結構的原因,非結構網格相比于結構化網格,其算法計算訪存比更低,同時訪存更加離散。另一方面,隨著超級計算機架構演變,相較浮點性能的大幅提升,內存帶寬日益成為瓶頸,讓非結構網格仿真計算更加受限。架構演變也催生了多樣的編程模型和加速庫。在太湖之光等先進超級計算機上,對非結構網格算法進行優化加速,往往十分復雜且開發量巨大。這四方面的問題,讓非結構網格仿真計算在太湖之光上的性能,成為一個巨大的挑戰。
太湖之光上非結構網格“四大問題”
離散訪存:非結構網格不同于結構化網格,其相關數據在內存中無法以規則的方式存儲,導致訪問具有分散和不連續的特性。換句話說,在仿真計算中,我們需要進行大量的臨近插值積分,但是非結構網格單元的鄰居卻無法像結構網格一樣連續規則地在內存中找到。離散訪存的結果,就是讓連續獲取數據中有大量無效數據,或者只能跳躍地獲取數據片段,從而損失有效的內存帶寬。
展開 技術分享︱基于非結構網格的仿真——太湖之光上的巨大挑戰
一、背景
在過去數十年中非結構網格被廣泛應用于工業仿真領域,例如著名商業CFD軟件Fluent以及開源CFD軟件OpenFOAM都采用了基于非結構網格的有限體積法,而大多數結構分析軟件例如Abaqus、Nastran等都采用了基于非結構網格的有限元法。非結構網格的流行不是沒有原因的。幾乎所有的工程幾何結構都是非常復雜的,結構化網格雖然在精度和收斂性等方面有優勢,但復雜幾何高質量結構化網格生成的難度和效率卻限制了其通用性。相反,非結構網格以其生成快速和適應復雜幾何的特性,成為工業仿真領域的主流。
結構化網格(上) 與非結構化網格(下)
二、挑戰
由于數據結構的原因,非結構網格相比于結構化網格,其算法計算訪存比更低,同時訪存更加離散。另一方面,隨著超級計算機架構演變,相較浮點性能的大幅提升,內存帶寬日益成為瓶頸,讓非結構網格仿真計算更加受限。架構演變也催生了多樣的編程模型和加速庫。在太湖之光等先進超級計算機上,對非結構網格算法進行優化加速,往往十分復雜且開發量巨大。這四方面的問題,讓非結構網格仿真計算在太湖之光上的性能,成為一個巨大的挑戰。
太湖之光上非結構網格“四大問題”
離散訪存:
非結構網格不同于結構化網格,其相關數據在內存中無法以規則的方式存儲,導致訪問具有分散和不連續的特性。換句話說,在仿真計算中,我們需要進行大量的臨近插值積分,但是非結構網格單元的鄰居卻無法像結構網格一樣連續規則地在內存中找到。離散訪存的結果,就是讓連續獲取數據中有大量無效數據,或者只能跳躍地獲取數據片段,從而損失有效的內存帶寬。
展開 非匹配網格技術 加速冷卻系統建模
針對嵌件成型的模擬,Moldex3D前處理提供強大的功能,為用戶自動生成適當的網格。由于進階使用者需要非常詳盡的分析結果,因此需先建構出非常完整的網格;然而若要在每個組件之間創建匹配的實體網格,通常需要有經驗的使用者花費大量時間進行網格制作。
Moldex3D現在已克服此問題,Moldex3D非匹配網格技術可支持完整的全模座分析,涵蓋塑料部件、塑件和冷卻系統(包括模座和冷卻水路)之間非匹配的網格生成。使用者將可節省大量的網格制作時間,并仍能獲得可靠的結果。以下步驟將說明如何生成冷卻系統非匹配網格,以及其在分析中的性能。
步驟1. 開啟Designer BLM/ Studio,并確認已經勾選允許非匹配網格。
在Designer/Studio操作接口中,允許非匹配網格生成
步驟2. 依照一般前處理流程:匯入幾何、設定流道系統、設定冷卻系統。
注意:必須優先設定模座,才能產生非匹配冷卻系統網格。
具有多組件成型(MCM)模型的冷卻系統
步驟3. 在產生BLM精靈中,點擊生成開始自動產生網格,若順利完成網格生成,全部的項目皆會打勾。
注意:當模座項后方出現Auto-grid文字,表示非匹配模座網格建立失敗,則以Auto-grid (fast cool) 形式輸出。
步驟4. 如下圖所示,可以看到塑件(淺紫色)與嵌件(紅色)相接的位置所對應的模座(綠色)并非所有網格頂點都有相接,這就是全模座非匹配網格。接下來該模型可用于模流分析,分析結果充分展示了不同組件間及其周圍的連續溫度分布。
非匹配網格模型的網格剖面圖及溫度分析結果
來源:科盛科技
展開 CFD結構網格與非結構網格的真相
對于結構網格來說,在數值離散過程中,需要通過結構網格節點間的拓撲關系獲得所有節點的幾何坐標,而對于非結構網格,由于節點坐標是顯式的存儲在網格文件中,因此并不需要進行任何的解析工作。
非結構網格求解器只能讀入非結構網格,結構網格求解器只能讀入結構網格。因為非結構網格求解器缺少將結構網格的幾何拓撲規則映射得到節點坐標的功能,而結構網格求解器無法讀取非結構網格,則是由于非結構網格缺少節點間的拓撲規則。當前完全的結構網格求解器已經不多了(一些古老的有限差分求解器可能還存在),大多數的求解器為非結構求解器,因此網格導出形式常常是非結構的。
因此,對于網格類型:
非結構網格或結構網格與網格存儲方式有關,與網格的形狀無關。
輸出什么類型的網格,取決于目標求解器支持什么類型的網格。
展開 
結構網格和非結構網格的區別
結構網格就是在一定區域內的網格點可以用統一的編號,比如三維的網格點可以用連續i,j,k唯一標志并且可以表達相互之間的位置關系,比較節約存儲空間,利于編程計算,但對復雜流場的適應性較差;非結構網格一般是每個單獨的網格單元都有獨立的編號,并且最后要附加一個全場的總編號來確定每個單獨網格之間的關系,占用的存儲空間較大,編程比較麻煩,但是對復雜流場的適應性較好。
結構化網格和非結構化網格
到目前為止,結構化網格技術發展得相對比較成熟,而非結構化網格技術由于起步較晚,實現比較困難等方面的原因,現在正在處于逐漸走向成熟的階段。下面就簡要介紹一些這方面的情況。
1.1結構化網格
從嚴格意義上講,結構化網格是指網格區域內所有的內部點都具有相同的毗鄰單元。結構化網格生成技術有大量的文獻資料。結構化網格有很多優點:
1.它可以很容易地實現區域的邊界擬合,適于流體和表面應力集中等方面的計算。
2.網格生成的速度快。
3.網格生成的質量好
4.數據結構簡單
5.對曲面或空間的擬合大多數采用參數化或樣條插值的方法得到,區域光滑,與實際的模型更容易接近。
它的最典型的缺點是適用的范圍比較窄。尤其隨著近幾年的計算機和數值方法的快速發展,人們對求解區域的復雜性的要求越來越高,在這種情況下,結構化網格生成技術就顯得力不從心了。
結構化網格的生成技術只要有:代數網格生成方法。主要應用參數化和插值的方法,對處理簡單的求解區域十分有效。
PDE網格生成方法。主要用于空間曲面網格的生成。
1.2非結構化網格
同結構化網格的定義相對應,非結構化網格是指網格區域內的內部點不具有相同的毗鄰單元。即與網格剖分區域內的不同內點相連的網格數目不同。從定義上可以看出,結構化網格和非結構化網格有相互重疊的部分,即非結構化網格中可能會包含結構化網格的部分。
非結構化網格技術從六十年代開始得到了發展,主要是彌補結構化網格不能夠解決任意形狀和任意連通區域的網格剖分的缺欠.到90年代時,非結構化網格的文獻達到了它的高峰時期.由于非結構化網格的生成技術比較復雜,隨著人們對求解區域的復雜性的不斷提高,對非結構化網格生成技術的要求越來越高.從現在的文獻調查的情況來看,非結構化網格生成技術中只有平面三角形的自動生成技術比較成熟(邊界的恢復問題仍然是一個難題,現在正在廣泛討論),平面四邊形網格的生成技術正在走向成熟。
展開 Moldex3D模流分析之采用非匹配網格技術加速冷卻系統建模
針對嵌件成型的模擬,Moldex3D前處理提供強大的功能,為用戶自動生成適當的網格。由于進階使用者需要非常詳盡的分析結果,因此需先建構出非常完整的網格;然而若要在每個組件之間創建匹配的實體網格,通常需要有經驗的使用者花費大量時間進行網格制作。
Moldex3D現在已克服此問題,Moldex3D非匹配網格技術可支持完整的全模座分析,涵蓋塑料部件、塑件和冷卻系統(包括模座和冷卻水路)之間非匹配的網格生成。使用者將可節省大量的網格制作時間,并仍能獲得可靠的結果。以下步驟將說明如何生成冷卻系統非匹配網格,以及其在分析中的性能。
步驟1:開啟Studio,并確認已經勾選允許非匹配網格。
在Studio操作接口中,允許非匹配網格生成
步驟2:依照一般前處理流程:匯入幾何、設定流道系統、設定冷卻系統。
注意:必須優先設定模座,才能產生非匹配冷卻系統網格。
具有多組件成型(MCM)模型的冷卻系統
步驟3:在產生BLM精靈中,點擊生成開始自動產生網格,若順利完成網格生成,全部的項目皆會打勾。
注意:當模座項后方出現 Auto-grid 文字,表示非匹配模座網格建立失敗,則以Auto-grid (fast cool) 形式輸出。
步驟4:如下圖所示,可以看到塑件(淺紫色)與嵌件(紅色)相接的位置所對應的模座(綠色)并非所有網格頂點都有相接,這就是全模座非匹配網格。接下來該模型可用于模流分析,分析結果充分展示了不同組件間及其周圍的連續溫度分布。
非匹配網格模型的網格剖面圖及溫度分析結果
展開 CFD結構網格與非結構網格的真相
非結構網格求解器只能讀入非結構網格,結構網格求解器只能讀入結構網格。因為非結構網格求解器缺少將結構網格的幾何拓撲規則映射得到節點坐標的功能,而結構網格求解器無法讀取非結構網格,則是由于非結構網格缺少節點間的拓撲規則。當前完全的結構網格求解器已經不多了(一些古老的有限差分求解器可能還存在),大多數的求解器為非結構求解器,因此網格導出形式常常是非結構的。
因此,對于網格類型:
1.非結構網格或結構網格與網格存儲方式有關,與網格的形狀無關。
2.輸出什么類型的網格,取決于目標求解器支持什么類型的網格。
轉自公眾號——ANSYS學習與應用
旨在分享,若侵即刪.
展開 CFD結構化網格和非結構化網格【學習筆記】
從總體上來說,數值仿真計算中采用的網格可以大致分為結構化網格和非結構化網格兩大類。
1。結構化網格
結構化網格是指網格區域內所有的內部點都具有相同的毗鄰單元,為六面體;在拓撲結構上矩形區域內的均勻網格,其節點定義在每一層的網格線上,且每一層上節點數都相等,但這樣復雜外形的貼體網格生產比較困難。
優點:
在結構化網格中,每一個節點及控制容積的幾何信息必須加以存儲,但該節點的鄰點關系則是可以依據網格編號的規律而自動得出的,因此數據結構簡單,不必專門存儲這類信息,這是結構化網格的一大優點;除此外,還具有的優點是:1:網格生成的速度快;2:網格生成的質量好;3:對曲面或空間的擬合大多數采用參數化或樣條插值的方法得到,區域光滑,與實際的模型更容易接近。它可以很容易地實現區域的邊界擬合,適于流體和表面應力集中等方面的計算。
缺點
適用的范圍比較窄,只適用于形狀規則的圖形。
2。非結構化網格
非結構化網格是指網格區域內的內部點不具有相同的毗鄰單元,可以是多種形狀,四面體(也就三角的形狀),六面體,棱形,也可以是六面體。與網格剖分區域內的不同內點相連的網格數目不同。
優點
非結構畫網格沒有規則的拓撲結構,也沒有層的概念。網格節點的分布是隨意的,因此具有靈活性,
缺點:
計算時需要較大的內存。
3。計算精度主要在于網格的質量(正交性,長寬比),并不決定于拓撲。
來源:流體空間
展開 關于結構化網格和非結構網格的適用性問題
關于結構化網格和非結構網格的適用性問題。有些前輩認為,數值計算中應采用結構化網格,如果非結構網格則計算結果將“慘不忍睹”。搞壓氣機計算的同行也認為,必須用結構化網格。然而, 對復雜的計算域,如果采用結構化網格必然造成網格質量的急劇下降,扭曲加大等問題。我覺得這時,不如采用非結構網格。諸位,請提出自己的意見.下面是各位的意見。
我是這樣看的:非結構網格使用很方便,外型越復雜就越顯示出其優越性;至于計算結果的精度,就要看非結構網格在單元網格面、體積處理上方法是不是比結構網格要差。就fluent軟件,它是用體積積分法求解雷諾平均方程的,在單元網格面、體積處理上方法好像是按非結構網格方法處理的。你就是按結構網格方法來生成網格,進入fluent中,進行數值計算時都是按非結構網格來處理,所以在fluent中,你用結構化網格方法生網格,和用非結構網格計算沒多大區別!我說說我個人看法.
計算精度,主要在于網格的質量(正交性,長寬比等),并不決定于拓撲(是結構化還是非結構化)。
例如同樣的2d的10×10的正交網格,fluent采用非結構化方式對網格編號,另一種軟件按結構化網格處理,如果其它條件相同,二者的精度應該是一樣的。
我們通常所說的非結構化網格,第一映象就是網格質量差,不正交的,編排無規律的網格的三角形網格或四面體網格,實際上一個二維區域的三角形網格,如果控制得好(如相鄰控制體中心的連線與公共邊基本接近正交的話),其不結構化網格(網格正交性好)的精度是一致的.
我個人感覺采用結構化網格還是非結構化網格,主要看解決什么問題,如果是無粘歐拉方程的話,只要合理布局,結構和非結構都能得到較為理想的結果。但如果涉及到粘性影響的話,尤其在壁面處,結構網格有一定優勢,并且其對外形適應性差的缺點,也可以通過多塊拼接網格解決。
展開 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
展開 
[轉貼]關于結構化網格和非結構網格的適用性問題的討論
轉自:傲雪論壇
有些前輩認為,數值計算中應采用結構化網格,如果非結構網格則計算結果將“慘不忍睹”。搞壓氣機計算的同行也認為,必須用結構化網格。然而, 對復雜的計算域,如果采用結構化網格必然造成網格質量的急劇下降,扭曲加大等問題。我覺得這時,不如采用非結構網格。諸位,請提出自己的意見
ICEM劃分結構+非結構的混合網格處理方法的操作視頻,幾何文件以及網格文件 ¥20
配有幾何模型,可跟隨視頻實際操作
【代碼分享-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
展開 組合結構化和非結構化網格:CFD 工程師的圣杯
換句話說,對用戶來說好處是立竿見影的:不再需要從結構化到非結構化的轉換,從網格到求解器的轉換是直接的,并且流求解器使用結構化和非結構化網格的最佳組合!