zoukankan      html  css  js  c++  java
  • 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,则该参数不生效。

  • 相关阅读:
    2019.10.11CSS
    2019.10.11 THML
    虚拟机FAQ
    thinkpad安装虚拟机 开启虚拟功能要在bios的security里面设置
    JDK在windows系统下环境变量的设置
    有关operamasks-ui的一些信息汇总
    从用List给ArrayList赋值看容器的传值,最好用.addAll
    给eclipse安装svn插件
    Java接口 枚举型Enumeration
    linux下的grep命令
  • 原文地址:https://www.cnblogs.com/Xiwang-Sun/p/15370428.html
Copyright © 2011-2022 走看看