轉載:知乎大神 中國空氣動力研究與發展中心 力學博士 劉雲楚 的文章
5.4面加密(refinementSurfaces)
面加密(refinementSurfaces)是針對與幾何表面相交的體網格進行加密,以保證后續面貼合的准確性。面加密相關參數設置包括細化等級(Level),最小、最大細化等級(levelMin,levelMax)。並允許用戶依據幾何表面指定面域(faceZone ),以及依據封閉幾何面指定體域(cellZone )。
5.4.1細化等級(level)
snappyHexMesh采用八叉樹方法划分網格,細化級別的每次增加都會使細化網格單元尺寸減少一半。參考尺寸ΔX0為基本網格單元大小為0級,其網格尺寸大小等於“背景網格大小”,以下公式適用於每個坐標方向上的單元大小:
細化方法如下圖所示:
在snappyHexMesh軟件面加密中,我們不僅可以對幾何所有表面進行初步面加密,也可以針對特定面網格進一步細化。通過標模lmt_logo.stl示例,具體展示命令參數輸入及生成網格效果。
設置細化等級前,需確定全局網格最大尺寸,在本例中blockMesh背景網格xyz方向尺寸:X方向網格尺度為0.02m , Y方向網格尺度為0.02m,Z方向網格尺度為0.02m。
根據加密等級計算公式,若考慮將整個面加密區網格大小控制在 7e-4m尺度,則所以表面的加密等級設置為5。
初步整體面加密時,只需在幾何名稱下設置參數level,命令示例如下:
refinementSurfaces { lmt_logo { level(5 5); regions {
... } } }
整體面加密生成的網格如下圖所示:
針對幾何中某個特征面進行面加密設置,參數如下圖所示:
refinementSurfaces { lmt_logo { level(5 5); regions { Face_12 { level(6 6) } } } }
生成的網格如下圖所示:
注:特征面名稱輸入時,snappyHexMesh命令輸入支持正則規則。
5.4.2最小最大細化等級
針對一些曲率變化較大的曲面,snappyHexMesh提供了根據面法向夾角選擇細化等級,即面貼合中隱式特征捕捉方法。用戶可以在面細化時指定兩個細化等級,最小等級(levelMin)和最大等級(levelMax)。最小等級優先應用於所有曲面,在面法線形成的角度大於指定的自動檢測角(resolveFeatureAngle )時,則采用最大等級細化。
下圖說明了這種面加密方法:
如上圖所示,曲面與多個網格單元相交,若相交角大於細化特征角(resolveFeatureAngle )時,與曲面相交的單元將采用最大級別等級進行網格細化。
實例:航天飛機機頭模型
通過對航天飛機機頭部分特征面設置不同的面細化等級,具體展示命令參數輸入及生成網格效果。
當設置最大最小細化等級相同時,參數設置如下圖所示:
refinementSurfaces { spaceShuttle { level (4 4); } }
生成的網格如下圖所示:
當用戶使用最大最小細化等級時,需指定全局參數中的自動檢測角(resolveFeatureAngle)參數,並指定隱式特征捕捉方式。本案例面細化最大細化等級為7,最小細化等級為4。
參數命令輸入如下所示:
refinementSurfaces { spaceShuttle { level (4 7); } }
生成的網格如下圖所示:
5.4.3指定面邊界類型
在使用snappyHexMesh划分面網格是,軟件允許用戶提前為幾何面指定面類型,以便后續仿真分析時使用。默認情況下面類型為patch,用戶可指定類型包括:wall(壁面)、cyclic(周期對稱面)以及symmetry(對稱面),當然面類型指定也可以在仿真參數設置時指定。
具體命令輸入如下所示:
refinementSurfaces { lmt_logo { level(5 5); regions { Face_12 { level(6 6) patchInfo { type wall; //指定特征面類型
} } } } }
5.4.4指定面域
在snappyHexMeshDict面細化配置中可對特征面創建獨立面域(faceZone),用戶可以通過設置faceType參數選擇合適的區域關聯關系。
可選faceType參數如下:
internal — 設置faceZone為內部面(默認選項);
baffle — 在faceZone處創建節點一致的面對,以表示零厚度邊界,即擋板界面;
boundary — 類似於baffle,但允許面對上節點不一致,表示具有非匹配性的邊界面;
例如在耦合傳熱模擬中或者流固耦合區域,兩區域邊界交接面faceType 設置為boundary;在旋轉機械等內部交界面設置中faceType 為internal。
具體命令輸入如下所示:
refinementSurfaces { lmt_logo { level(5 5); faceType baffle; //指定面域類型
faceZone fracture; //指定面域名稱
} }
注:直接在snappyHexMesh中創建擋板界面(baffle)要比創建一個內部的面區(internal),然后在運行createBaffles更方便,因為擋板界面處的網格質量控制比內部面處的網格質量控制更容易些,這使得網格划分時面捕捉更可靠。
5.4.5指定體域
目前snappyHexMesh支持多體域網格划分,即面域細化時會將其封閉包圍的所有網格單元分成一組,這樣的單元組稱為體域。計算時可將不同的屬性參數分配給此體域。例如,用戶可以將其設置為旋轉區域(MRF(多參考系)或AMI(Arbritrary Mesh接口)),動量源,熱源或自定義標量源等。
用戶可以通過設置體域位置參數cellZoneInside,指定體域位置。可選參數類型包括Inside(封閉面內部)、outside(封閉面外部)、insidePoint(通過位置點坐標確定)。
其中體域位置采用為Inside與outside參數時,命令配置文件參數如下:
refinementSurfaces { lmt_logo { level(5 5); faceZone face_inner; //用戶自定義面域名稱 cellZone cell_inner; //用戶自定義體域名稱 cellZoneInside inside; //體域位置參數 } }
注:當用戶為指定faceType參數時,系統自動將faceType設為默認參數值internal。
當體域位置參數采用insidePoint時,命令配置文件參數如下:
refinementSurfaces { lmt_logo { level(5 5); faceZone face_inner; //用戶自定義面域名稱 cellZone cell_inner; //用戶自定義體域名稱 cellZoneInside insidePoint; //指定體域位置參數 insidePoint (1 1 1); //指定位置點坐標 } }
案例1:無人機半模—snappyhexmesh網格划分
使用的幾何文件Drone.stl如下圖所示。
幾何面部細節需要加密的部分有幾何較為復雜的特征部分,如圖5高亮部位。
機翼的前緣部分,如圖6高亮部位。
機翼的翼尖部分,如圖7高亮部位。
局部曲率變化較高的部分,如下圖高亮部位。
圖11. 曲率變化較大區域
機翼的后緣部位,如圖9高亮部位。
圖39與圖40高亮處為機翼特征面是否采用面加密的對比圖。
圖10 圖11
圖41與圖42高亮處為機翼前緣面是否采用面加密的對比圖
圖43 圖44
圖45與圖46高亮處為高曲率部位是否采用面加密的對比圖
圖45 圖46
圖47與圖48高亮處為機翼翼尖面是否采用面加密的對比圖
圖47 圖48
無人機具體生成效果與參數設置可以訪問caesky.cn查看。
案例2:潛艇—snappyhexmesh網格划分
使用的幾何文件Submarine.stl如圖所示
需要加密的部分如下圖高亮部位所示
5.4.6網格划分
對以上高亮區,在網格划分時是否進行了面加密的設置,生成的網格對比如下: