zoukankan      html  css  js  c++  java
  • SnappyHexMesh(之五)面加密

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

    5.4面加密(refinementSurfaces)

    面加密(refinementSurfaces)是针对与几何表面相交的体网格进行加密,以保证后续面贴合的准确性。面加密相关参数设置包括细化等级(Level),最小、最大细化等级(levelMin,levelMax)。并允许用户依据几何表面指定面域(faceZone ),以及依据封闭几何面指定体域(cellZone )。

    5.4.1细化等级(level)

    snappyHexMesh采用八叉树方法划分网格,细化级别的每次增加都会使细化网格单元尺寸减少一半。参考尺寸ΔX0为基本网格单元大小为0级,其网格尺寸大小等于“背景网格大小”,以下公式适用于每个坐标方向上的单元大小:

     细化方法如下图所示:

    在snappyHexMesh软件面加密中,我们不仅可以对几何所有表面进行初步面加密,也可以针对特定面网格进一步细化。通过标模lmt_logo.stl示例,具体展示命令参数输入及生成网格效果。

    设置细化等级前,需确定全局网格最大尺寸,在本例中blockMesh背景网格xyz方向尺寸:X方向网格尺度为0.02m , Y方向网格尺度为0.02m,Z方向网格尺度为0.02m。

    根据加密等级计算公式,若考虑将整个面加密区网格大小控制在 7e-4m尺度,则所以表面的加密等级设置为5。

    初步整体面加密时,只需在几何名称下设置参数level,命令示例如下:

    refinementSurfaces
    {
        lmt_logo
        {
            level(5 5);
            regions
            {
    ... } } }

    整体面加密生成的网格如下图所示:

    针对几何中某个特征面进行面加密设置,参数如下图所示:

    refinementSurfaces
    {
        lmt_logo
        {
            level(5 5);
            regions
            {
                Face_12
                {
                    level(6 6)
                }
            }
        }
    }

    生成的网格如下图所示:

     

    注:特征面名称输入时,snappyHexMesh命令输入支持正则规则。

    5.4.2最小最大细化等级

    针对一些曲率变化较大的曲面,snappyHexMesh提供了根据面法向夹角选择细化等级,即面贴合中隐式特征捕捉方法。用户可以在面细化时指定两个细化等级,最小等级(levelMin)和最大等级(levelMax)。最小等级优先应用于所有曲面,在面法线形成的角度大于指定的自动检测角(resolveFeatureAngle )时,则采用最大等级细化。

    下图说明了这种面加密方法:

    如上图所示,曲面与多个网格单元相交,若相交角大于细化特征角(resolveFeatureAngle )时,与曲面相交的单元将采用最大级别等级进行网格细化。

    实例:航天飞机机头模型

    通过对航天飞机机头部分特征面设置不同的面细化等级,具体展示命令参数输入及生成网格效果。

    当设置最大最小细化等级相同时,参数设置如下图所示:

    refinementSurfaces
    {
        spaceShuttle
        {
            level (4 4);
        }
    }

    生成的网格如下图所示:

     当用户使用最大最小细化等级时,需指定全局参数中的自动检测角(resolveFeatureAngle)参数,并指定隐式特征捕捉方式。本案例面细化最大细化等级为7,最小细化等级为4。

    参数命令输入如下所示:

    refinementSurfaces
    {
        spaceShuttle
        {
            level (4 7);
        }
    }

    生成的网格如下图所示:

    5.4.3指定面边界类型

    在使用snappyHexMesh划分面网格是,软件允许用户提前为几何面指定面类型,以便后续仿真分析时使用。默认情况下面类型为patch,用户可指定类型包括:wall(壁面)、cyclic(周期对称面)以及symmetry(对称面),当然面类型指定也可以在仿真参数设置时指定。

    具体命令输入如下所示:

    refinementSurfaces
    {
        lmt_logo
        {
            level(5 5);
            regions
            {
                Face_12
                {
                    level(6 6)
                    patchInfo
                    {
                        type wall; //指定特征面类型
                    }
                }
            }
        }
    }

    5.4.4指定面域

    在snappyHexMeshDict面细化配置中可对特征面创建独立面域(faceZone),用户可以通过设置faceType参数选择合适的区域关联关系。

    可选faceType参数如下:

    internal — 设置faceZone为内部面(默认选项);

    baffle — 在faceZone处创建节点一致的面对,以表示零厚度边界,即挡板界面;

    boundary — 类似于baffle,但允许面对上节点不一致,表示具有非匹配性的边界面;

    例如在耦合传热模拟中或者流固耦合区域,两区域边界交接面faceType 设置为boundary;在旋转机械等内部交界面设置中faceType 为internal。

    具体命令输入如下所示:

    refinementSurfaces
    {
        lmt_logo
        {
            level(5 5);
            faceType baffle; //指定面域类型
            faceZone fracture; //指定面域名称
        }
    }

    注:直接在snappyHexMesh中创建挡板界面(baffle)要比创建一个内部的面区(internal),然后在运行createBaffles更方便,因为挡板界面处的网格质量控制比内部面处的网格质量控制更容易些,这使得网格划分时面捕捉更可靠。

    5.4.5指定体域

    目前snappyHexMesh支持多体域网格划分,即面域细化时会将其封闭包围的所有网格单元分成一组,这样的单元组称为体域。计算时可将不同的属性参数分配给此体域。例如,用户可以将其设置为旋转区域(MRF(多参考系)或AMI(Arbritrary Mesh接口)),动量源,热源或自定义标量源等。

    用户可以通过设置体域位置参数cellZoneInside,指定体域位置。可选参数类型包括Inside(封闭面内部)、outside(封闭面外部)、insidePoint(通过位置点坐标确定)。

    其中体域位置采用为Inside与outside参数时,命令配置文件参数如下:

    refinementSurfaces
    {
        lmt_logo
        {
            level(5 5);
            faceZone face_inner; //用户自定义面域名称
            cellZone cell_inner; //用户自定义体域名称
            cellZoneInside inside; //体域位置参数
        }
    }

    注:当用户为指定faceType参数时,系统自动将faceType设为默认参数值internal。

    当体域位置参数采用insidePoint时,命令配置文件参数如下:

    refinementSurfaces
    {
        lmt_logo
        {
            level(5 5);
            faceZone face_inner; //用户自定义面域名称
            cellZone cell_inner; //用户自定义体域名称
            cellZoneInside insidePoint; //指定体域位置参数
            insidePoint (1 1 1); //指定位置点坐标
        }
    }

    案例1:无人机半模—snappyhexmesh网格划分

    使用的几何文件Drone.stl如下图所示。

     几何面部细节需要加密的部分有几何较为复杂的特征部分,如图5高亮部位。

     机翼的前缘部分,如图6高亮部位。

    机翼的翼尖部分,如图7高亮部位。

     

     局部曲率变化较高的部分,如下图高亮部位。

    图11. 曲率变化较大区域

    机翼的后缘部位,如图9高亮部位。

    图39与图40高亮处为机翼特征面是否采用面加密的对比图。

     

    图10 图11

    图41与图42高亮处为机翼前缘面是否采用面加密的对比图

    图43 图44

    图45与图46高亮处为高曲率部位是否采用面加密的对比图

    图45 图46

    图47与图48高亮处为机翼翼尖面是否采用面加密的对比图

    图47 图48

    无人机具体生成效果与参数设置可以访问查看。

    案例2:潜艇—snappyhexmesh网格划分

    使用的几何文件Submarine.stl如图所示

     需要加密的部分如下图高亮部位所示

    5.4.6网格划分

    对以上高亮区,在网格划分时是否进行了面加密的设置,生成的网格对比如下:

  • 相关阅读:
    实验六 进程基础
    实验五 shell脚本编程
    实验四 Linux系统搭建C语言编程环境
    实验三 Linux系统用户管理及VIM配置
    实验二 Linux系统简单文件操作命令
    实验一 Linux系统与应用准备
    实验八 进程间的通信
    实验七 信号
    实验六 进程基础
    实验五 shell脚本编程
  • 原文地址:https://www.cnblogs.com/Xiwang-Sun/p/15370605.html
Copyright © 2011-2022 走看看