SnappyHexMesh(之十)网格质量控制

转载:知乎大神 中国空气动力研究与发展中心 力学博士 刘云楚 的文章

5.7网格质量控制(meshQualityControls)

在SnapPyHexMesh执行全局参数控制、面贴合、局部细化以及边界层生成时,程序都会依据网格质量控制参数不断调整网格迭代。且当网格位移或拓扑更改操作导致单元或面网格质量降低时,软件可根据控制参数撤消移动或拓扑更改操作以将网格还原为之前满足网格质量标准的状态。

网格质量控制参数在子字典meshQualityControl中设置,命令输入示例如下所示:

meshQualityControls
{
    maxNonOrtho           65;
    maxBoundarySkewness   20;
    maxInternalSkewness   4;
    maxConcave            80;
    minVol                1e-13;
    minTetQuality         1e-15;
    minArea               -1;
    minTwist              0.05;
    minDeterminant        0.001;
    minFaceWeight         0.05;
    minVolRatio           0.01;
    minTriangleTwist      -1;
    nSmoothScale          4;
    errorReduction        0.75;
    relaxed
    {
        maxNonOrtho         75;
        maxBoundarySkewness 25;
        maxInternalSkewness 8;
    }
}

详细质量控制参数解析如下:

maxNonOrtho最大非正交角

该参数指定允许的最大非正交角,其通过计算相邻两单元中心点向量与公共面法向量

的夹角θ,此值为0时表示相邻两个网格完全正交。默认参考值为65,当设置为180时,表示关闭此项控制。该参数是衡量网格质量的主要指标之一。

maxBoundarySkewness最大边界面网格偏斜度

此参数指定边界面网格允许的最大偏斜度。其定义一个面或体与理想几何(即等边或等角)的接近程度。其计算方法是先计算出公共面中心点p3和相邻两单元中心线line(p1,p2)与公共面交点p4之间的距离L1,再计算相邻两单元中心线line(p1,p2)的长度L2,面偏斜度值等于L1/L2(如下图所示)。默认参考值为20,当设置小于0的值时,表示关闭此项控制。

 

maxInternalSkewness最大内部面网格偏斜度

参数计算方式与最大边界面网格偏斜度一致,不过其主要测试内部网格质量。默认参考值为4,当设置小于0的值时,表示关闭此项控制。该参数是衡量网格质量的主要指标之一。

maxConcave最大凹度

该参数用于检查构成面的内凹角度(如下图θ角),以允许低于该角度的凹面。0表示直面,小于0表示凸面。默认参考值为80,当设置为180时,表示关闭此项控制。

minFlatness最小平整值

最小投影面积和实际面积的比值,该参数值为1时,表示检测面为平面。默认参数为0.5,设置为-1时,表示禁用此项控制。

minVol 最小单元体积

该参数为允许最小金字塔单元体积,其为网格绝对体积参数(单位m3),默认参数为1e-13。设置为较大的负值时(例如:-1e30),表示禁用此项控制。该参数是衡量网格质量的主要指标之一。

minArea最小网格面面积

该参数为允许最小网格面的面积,默认为-1,该参数设置为负值时,表示禁用此项控制。

minTwist最小面扭曲

使用面中心将面分解为三角形单元,并通过相邻两个单元中心点向量

 

 

与分解后三角形面法向量的点积计算面扭曲值(如下图所示)。默认参考值为0.05,当设置参数小于-1时,表示关闭此项控制。

minDeterminant

该参数指定允许最小归一化单元行列式值。通过计算每一个六面体的雅可比行列式值,然后标准化行列式的矩阵来表征单元的变形。参数值取值范围为0到1,参数值设置为1 表示只允许有理想六面体网格;如果某单元行列式的值为0,则这个立方体有一个或多个退化的边。参数值设置小于或等于0表示允许有负体积单元,默认参数值为0.001。

minFaceWeight

该参数指定允许相邻网格间面权重最小值。其定义了面相对于相邻单元间中心的相对位置(正交时为0.5),计算方法是先计算出单元中心到公共面中心长度L1,再计算出相邻单元中心到公共面中心长度L2,面权重值等于L1与L2的最小值除以L1与L2之和(计算公式如下所示)。较小的面权重值表示相邻网格尺寸相差较大。参数值取值范围为0到0.5,默认参考值为0.05。

面权重计算公式如下:

minVolRatio

该参数指定允许相邻网格间的最小体积膨胀率, 参数值取值范围为0到1, 默认参考值为0.01。较大的比值会导致插值结果误差较大。

minTriangleTwist

该参数表示允许最小三角单元扭曲值,通过使用面中心将面分解为三角形单元,然后依据相邻的三角形单元法向量

的点积计算出三角形面扭曲值。默认参数值为-1,表示禁用此功能。若参数值大于0,则启用此功能项。其主要目的为确保生成网格与Fluent网格的兼容性。

minTetQuality

通过网格单元中心和面中心将单元分解为四面体(如下图所示)。 然后根据圆周半径(Rc)和四面体体积(Vtet)计算四面体单元质量(计算公式如下所示)。对于一些跟踪算例时(如流线计算),该参数需要设置为一个较小正值,以确保内部单元质量检查正常运行。默认参数值为1e-30。

nSmoothScale

snappyHexMesh网格划分过程中可将局部网格缩放到之前网格质量满足标准的状态。用户可通过nSmoothScale参数指定每次网格缩放恢复迭代时的平滑次数,参数默认值为4。

errorReduction

errorReduction参数同nSmoothScale参数一样应用于网格缩放恢复迭代,用户可通过该参数减小误差点处的缩放位移量,参数默认值为0.75。

relaxed

软件在划分边界层网格时会优先使用meshQualityControls中基础质量控制参数,检测网格是否满足要求。若边界层添加算法迭代次数达到用户设置nRelaxedIter参数值后,网格依然不能达到质量控制要求,则在此后的迭代中软件将采用用户设置的宽松质量控制标准值,以提高边界层网格的覆盖率。用户可使用relaxed功能对一些关键网格质量控制参数(例如:非正交性nonOrtho、偏斜度skewness等)指定相对宽松的标准。

命令输入格式如下:

relaxed
{
    maxNonOrtho         75;
    maxBoundarySkewness 25;
    maxInternalSkewness 8;
…
}
posted @ 2021-10-06 11:17  希望先生  阅读(1279)  评论(0编辑  收藏  举报