轉載:知乎大神 中國空氣動力研究與發展中心 力學博士 劉雲楚 的文章
5.3全局參數(Global)
snappyHexMesh采用自上而下生成網格的方法,即先生成求解域內體網格,在將體網格擬合到幾何表面。全局性參數設置主要包含全局網格細化控制參數(castellatedMesh-Controls)與面貼合參數設置(snapControls)。
5.3.1全局網格細化參數
全局網格細化參數在castellatedMeshControls中設置,其目的為細化背景網格(例如:采用blockMesh生成的網格文件),通過細化背景網格以使幾何特征與幾何表面上擁有一定網格量,以提高幾何特征捕捉的准確性。同時通過參數設置,保證網格細化時尺寸變化盡量平緩。
完整命令輸入示例如下:
castellatedMeshControls { maxLocalCells 10500000; maxGlobalCells 80000000; minRefinementCells 1; maxLoadUnbalance 0.2; nCellsBetweenLevels 3; resolveFeatureAngle 30; allowFreeStandingZoneFaces false; locationInMesh (0 0 0); features ( … ); refinementRegions { … } refinementSurfaces { … } }
其中features、refinementRegions、refinementSurfaces為局部網格細化功能,會在后面章節詳細講解。本章節主要針對網格細化時全局性優化算法控制參數,並展示一些重要參數的網格控制效果圖。
全局最大網格量maxGlobalCells
網格細化過程中的最大允許網格划分數量。該功能主要目的是保證網格細化過程中,避免划分網格量太大,導致計算機內存溢出。當划分網格量超過此值時,細化過程將立即終止。此時,局部細化功能可能終止運行(例如,未執行某些體域或面域的細化)。
注:其最大網格量是在網格創建步驟中,未去除計算域外單元時的總單元數。最終生成的單元總數可能比此值小。
單核最大網格量maxLocalCells
該參數主要應用於網格並行計算,其指定了細化網格過程中每個處理器處理的最大數量網格數。若太小將導致處理器間迭代次數增加,計算效率降低。設置合理的單核最大網格量可極大地提高網格並行計算效率,有助於平衡每個處理器的網格計算量。如果單核處理實際單元數量大於該設定參數,則網格分配算法由平衡細化后單元數控制(默認算法)改為加權平衡細化前單元數控制。固設置該參數時請保證一定的富余量,經常重新平衡每個處理器計算量將減慢網格生成過程。
注:在大型集群網格並行計算時,從最優單核計算效率上考慮,單核單線程網格計算量可控制在3-5十萬個網格之間。
最大負載平衡參數maxLoadUnbalance
該參數主要應用於網格並行計算。用戶可通過設置該值,以允許各個處理器間網格計算負載一定程度上不均衡。當該參數值為0時,即強制負載平衡,即各處理器間處理的網格量嚴格保持單元總數/計算核數。較低的值(例如0)可能會導致系統頻繁的均衡網格負載量。而參數值設置為1時,則完全禁用網格均衡操作。
最小細化單元數minRefinementCells
該參數指定了需細化特征的最小單元數。若特征上網格單元數量小於該參數,則停止對其細化。例如:進行表面細化算法時,軟件可能會對小特征面上幾個單元網格進行大量細化迭代,占用了較多計算資源,而細化后的網格質量並不理想。用戶可以通過該參數,停止其細化迭代。
注意:除非要細化表面上沒有網格單元,否則至少要執行一次迭代。
緩沖層數nCellsBetweenLevels
snappyHexMesh網格拆分采用八叉樹法,在網格等級相差較大區域,網格尺寸大小變化比較劇烈。用戶可用使用nCellsBetweenLevels參數指定不同細化級別之間的緩沖區體網格層數,使網格大小變化更平緩,該參數值必須大於或等於1。
若用戶設置參數值為1,則表示不添加過渡區域。越大的值可使得網格大小過渡越平緩,但將導致網格量增加。
下圖顯示了不同緩沖層數參數設置,其體網格緩沖區網格過渡差異。
圖1. 不同緩沖層參數網格生成
注:建議參數值設為3,既保證了不同單元等級間網格過渡性,也將網格數量控制在可接受范圍內。
自動檢測角resolveFeatureAngle
若用戶想自動加密相交面、邊以及曲率較大的面、邊時,可使用resolveFeatureAngle參數。當曲率變化角超過該參數值時,特征區域網格使用最大面細化等級,而低於此角度的特征均采用最小面細化級別。默認參數值為30,參數值設置為360時,表示關閉此功能。
該參數生效的前置條件:1、面細化參數中最小和最大細化等級需不同。2、面貼合過程中特征捕捉需采用隱式方法。
特征處細化效果如下例所示:
圖2. 單個面、邊的曲率較大部分細化情況
圖3.相交面、邊夾角部分細化情況
網格域控制點locationInMesh
snappyHexMesh網格划分方法需要用戶先提供一套背景網格,然后根據用戶導入的封閉幾何文件划分網格。在此過程中,用戶可通過設置網格域控制點(locationInMesh)參數,指定需要保留背景網格表面與封閉幾何表面之間的網格,還是封閉幾何內部的網格。保留區域網格中需包含指定的參數點,該點的位置不能和網格單元的面或邊重合(如下圖所示)。
1、控制點位於封閉幾何體內部,網格生成效果如下:
圖4. 控制點參數網格效果展示
2、控制點位於封閉幾何體與背景網格區域之間,網格生成效果如下:
圖5. 控制點參數網格效果展示
允許有獨立面allowFreeStandingZoneFaces
該參數定義是否允許幾何中有獨立的面存在。若設置參數值為false,則表示在面加密(refinementSurfaces)中用戶指定的faceZones僅位於相應cellZones的邊界上,作為不同域之間交界面。若該參數值為true,則允許此faceZones作為獨立面域(例如:擋板界面等)。如果用戶沒有指定faceZones,則該參數不生效。