SnappyHexMesh(之三)全局参数

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

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,则该参数不生效。

原文地址:https://www.cnblogs.com/Xiwang-Sun/p/15370428.html