SnappyHexMesh(之九)邊界層


轉載:知乎大神 中國空氣動力研究與發展中心 力學博士 劉雲楚 的文章

5.6邊界層(addLayersControls)

snappyHexMesh的網格生成策略是自上而下生成網格,即先生成體網格,再擬合表面上面網格。邊界層網格生成時,軟件采用中軸位移法收縮現有體網格。即先沿表面法向向網格划分區域投影指定厚度,再根據投影厚度值計算網格松弛系數收縮現有體網格,收縮后形成的空腔作為邊界層網格的划分區域。具體邊界層划分原理步驟如下所示:

在划分邊界層時,用戶需注意在全局參數設置中激活邊界層划分功能,即將addLayers值設置為true。邊界層配置參數在addLayersControls子字典中設置,其參數類型可分為基本參數與高級控制參數。

邊界層命令設置示例如下:

addLayerControls
{
    //基本參數輸入
    relativeSizes true;
    expansionRatio 1.2;
    finalLayerThickness 0.3;
    minThickness 0.1;
    nGrow 0;
    layers
    {
        leftHalf //允許用戶對各個面指定不同邊界層設置
        {
            nSurfaceLayers 3;
        }
        "(road|motorBike_.*)" //輸入面名稱時支持正則表達式
        {
            nSurfaceLayers 3;
            expansionRatio 1.2;
            finalLayerThickness 0.3;
            minThickness 0.1;
        }
    }
    //高級控制參數輸入
    featureAngle 180;
    slipFeatureAngle 75;
    nRelaxIter 5;
    ...
}

5.6.1基本參數設置

snappyHexMesh邊界層生成基本參數包含:相對值(relativeSizes)、邊界層數(nSurfaceLayers)、膨脹比(expansionRatio)、最后一層厚度(finalLayerThickness)、第一層厚度(firstLayerThickness)邊界層總厚度(thickness)、邊界層最小總厚度(minThickness)以及nGrow。

用戶可通過expansionRatio、finalLayerThickness、firstLayerThickness、thickness四項參數,選擇其中兩項指定邊界層厚度。如果同時指定多個參數,則軟件只會使用最后兩個參數。因為snappyHexMesh划分邊界層時是先擠出一定邊界層厚度區域,再插入邊界層。為提高邊界層網格生成質量,邊界層厚度控制參數選擇finalLayerThickness優於firstLayerThickness,相對臨近單元尺寸比值優於絕對值,即relativeSizes值true優於false。

基本參數詳細解析如下。

relativeSizes

邊界層基礎參數中finalLayerThickness、firstLayerThickness、thickness與minThickness的參數值有兩種定義方法。1、采用相對臨近單元尺寸比值,2、直接由絕對值(單位m)定義。用戶選用哪種定義方法通過設置relativeSizes確定。

命令示例如下所示:

addLayersControls
{
    relativeSizes true;
}

參數值為true:邊界層厚度參數值為相對於鄰近曲面上的體網格單元大小的比值。

參數值為false:邊界層厚度參數值直接由絕對單位的值(單位.米)定義。

如下例所示:finalLayerThickness參數值分別采用絕對值參數和相對值參數。當設置絕對值時,邊界層最后一層網格尺寸與鄰近體網格尺寸無關;當設置為相對值參數時,邊界層最后一層網格尺寸值與鄰近體網格單元大小成比例關系。

邊界層膨脹比(expansionRatio)

兩個相鄰層的厚度比,該值越大,各層間的高度差越大。調整膨脹比參數,不同膨脹比下邊界層網格划分結果如下圖所示:

 

 

 

邊界層最后一層厚度(finalLayerThickness)

確保邊界層最后一層網格不大於該值。調整最后一層網格的最大厚度,在不同厚度下邊界層網格的划分結果如下如所示:

finalLayerThickness=0.7 finalLayerThickness=1

圖3. 不同邊界層最后一層高度對比圖

邊界層第一層的厚度(firstLayerThickness)

指定距離曲面最近的邊界層的高度,確保邊界層第一層網格不大於該值。調整第一層網格的最大厚度,在不同厚度下邊界層網格的划分結果如下如所示:

注:此處厚度值為體網格相對值

邊界層總厚度(thickness)

這指定了所有邊界層的最大厚度。設置較大的邊界層總厚度值會導致體網格收縮位移相應增大,體網格變形量增加將導致網格質量降低。當網格質量小於用戶設置網格質量控制參數時,系統將取消此處邊界層網格划分。

調整邊界層總厚度,在不同厚度下邊界層網格的划分結果如下如所示:

注:邊界層總厚度值不宜大於五倍相鄰體網格尺寸值。

最小總層厚度(minThickness)

這指定了所有邊界層的總體最小厚度。若邊界層擠出區域厚度小於該值,則該區域將不會生成邊界層。

注:此圖參數采用相對值,邊界層總厚度控制到1,故當minThickness設置為2時邊界層不會生成

最大取消邊界層單元數(nGrow)

該參數指定未設置邊界層的相鄰面相交處邊界層的過渡層數。這有助於將邊界層過渡到特征邊附近。

在邊界層生成時,體網格需先沿表面法向向網格划分區域收縮指定厚度,有些特征邊上存在未移動的節點,則包含該節點的表面單元也不會移動。通過設置nGrow值,指定此單元附近多少個單元不會移動,以保證該特征邊附近網格貼體性及質量。

指定面設置邊界層基本參數

snappyHexMesh中允許用戶對各個表面設置不同的邊界層基本參數。如果未指定,則應用全局基本參數。邊界層的幾何面名稱指定於面加密不同,其名稱包含幾何體與面信息,例如:用戶需對幾何體box中的Face1面划分邊界層,則邊界層指定的面名稱應該為box_Face1,而不是Face1。並且用戶在指定面名稱時支持正則表達式。

指定面邊界層設置命令如下:

layers
{
    box_Face1
    {
        nSurfaceLayers 3;
    }
    "(box_Face1|box_side.*)"
    {
        nSurfaceLayers      3;
        expansionRatio      1.2;
        finalLayerThickness 0.3;
        minThickness        0.1;
    }
}

邊界層層數(nSurfaceLayers)

nSurfaceLayers該參數確定邊界層層數,需在指定面設置邊界層基本參數中輸入,為強制性參數。

網格划分結果如下圖所示:

5.6.2高級控制參數設置

表面網格最大縱橫比(maxFaceThicknessRatio)

該參數指定了表面網格縱橫比的最大允許值。當要在高度扭曲的單元上(特別是在角落)生成邊界層時,縱橫比高於此值的單元上邊界層停止生成,以保證邊界層網格質量。

建議值為0.5。

邊界層最大面夾角(featureAngle)[°]

兩個相鄰面邊界層網格划分時,軟件可根據featureAngle值確定兩個面相交邊處體網格是否收縮,以確定邊界層划分區域。當兩個曲面之間的法向夾角(如下圖所示θ角)小於參數featureAngle值時,允許兩個曲面的相交邊處體網格向域內收縮,形成邊界層划分區域。用戶可根據幾何特征設置合適的featureAngle值,以確保邊界層的生成范圍。

下圖顯示了特征角為60度和180度時邊界層生成的差異。在面夾角為90度區域,若featureAngle值小於面夾角時,則取消夾角處邊界層划分。

圖10. 不同最大面夾角參數設置對比圖

注:為確保角落邊緣處邊界層生長,featureAngle可設置為180或更高值。但在大角度或較扭曲區域邊界層質量會急劇下降,受網格質量控制影響,此處邊界層也會無法生成。

邊界層滑移角度(slipFeatureAngle)[°]

在早期版本snappyHexMesh添加邊界層時,指定的面邊緣的頂點已經固定。當邊界層生成到面邊緣處時,會在此處收縮。現若用戶想保留在面邊緣處的邊界層效果,可以指定slipFeatureAngle參數,使邊界層面邊緣處頂點延邊界面滑動,以保證邊界層在邊緣處的划分空間。例如:當需要划分邊界層的面與其相鄰面之間的角度大於slipFeatureAngle值時,則保留邊界處邊界層網格。否則,邊界處邊界層網格將收縮(如下圖所示)。

注:建議使用70-80之間的最佳值來限制層的滑動,默認值為featureAngle的一半。

邊界層終止面的緩沖單元數(nBufferCellsNoExtrude)

為邊界層終止端創建緩沖收縮區,即逐漸降低邊界層數。設置值小於0,則表示在終止端立即停止邊界層。

邊界層厚度平滑迭代次數(nSmoothThickness)

邊界層網格生成前,軟件需要根據投影厚度值收縮現有體網格,用戶可通過nSmoothThickness值設置投影厚度值的迭代次數。軟件通過迭代投影厚度松弛系數值(1-0)使體網格質量達到質量控制要求。

邊界層曲面法線平滑迭代次數(nSmoothSurfaceNormals)

邊界層網格生成前,軟件需要根據曲面法線方向收縮現有體網格,用戶可通過nSmoothSurfaceNormals指定曲面法線平滑迭代次數。該值越高,邊界層網格間平滑性越好,但網格划分時間越長。建議值為1。

拾取中間軸點的角度(minMedianAxisAngle)

這指定用於拾取中間軸點的角度。建議值為90度。最新版本90度對應17x版本前的130度。

層厚度與中間軸長度的最大比率(maxThicknessToMedialRatio)

這指定了邊界層厚度與中間軸長度的最大比率。當比率大於指定值時,層生長減少。建議值為0.3

體網格收縮迭代次數(nRelaxIter)

單步投影厚度值的迭代中,系統需根據投影厚度值計算體網格收縮松弛系數。用戶可設置nRelaxIter參數指定該松弛系數迭代次數,該值越大越有利於提高體網格網格質量。建議值為5

體網格平滑迭代次數(nSmoothNormals)

體網格收縮時,用戶可通過nSmoothNormals指定體網格間移動方向的迭代次數。該值越高,體網格間平滑性越好,但網格划分時間越長。建議值為3。

邊界層添加的最大總迭代次數(nLayerIter)

這指定了整體邊界層添加算法迭代次數。如果達到此迭代次數,邊界層網格划分將立即停止,並保留最后一次迭代生成的邊界層。建議值為50-60。

寬松質量控制標准的起始迭代次數(nRelaxedIter)

這指定了開始使用寬松網格質量控制的起始迭代次數。軟件在划分邊界層網格時會優先使用meshQualityControls中基礎質量控制參數,檢測網格是否滿足要求。若邊界層添加算法迭代次數達到用戶設置nRelaxedIter參數值后,網格依然不能達到質量控制要求,則在此后的迭代中軟件將采用用戶設置的寬松質量控制標准值。參數建議值為20。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM