SnappyHexMesh(之七)创建二维几何体

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

5.5.3可创建二维几何体

二维几何类型如下表所示:

圆面片(searchableDisk)

基于原点、法线方向和半径值定义厚度为零的圆面。指定体加密时,加密方法只能使用distance模式。

命令用法如下:

disk
{
    type   searchableDisk;
    origin (2 2 2);
    normal (0 1 0);
    radius 1;

}

通过体加密后效果如下所示:

图1. 圆面体加密效果图

有界平面(searchablePlate)

用户可以指定与坐标系对齐的有限平面。通过定义最小对角线坐标点origin与xyz方向跨度长度值span。有界平面为二维几何,设置span参数时用户必须在两个方向上指定跨度,第三个方向必须为零。指定体加密时,加密方法只能使用distance模式。

命令用法如下:

plane
{
    type   searchablePlate;
    origin (2 2 2);
    span   (2 2 0);
}

通过体加密后效果如下所示:

 

图2. 有界平面体加密效果图

5.5.4高级几何处理

平面切割(searchablePlane)

用户可通过定义无界平面切除几何体部分区域,并保留平面法线方向上的网格。可以根据以下3种方法创建平面:1、平面由点和法线向量定义。2、平面由3点定义,平面法向满足右手法则。3、采用代数平面方程:ax+by+cz+d=0定义。指定体加密时,加密方法只能使用distance模式。

命令用法如下:

例一 :由点和法线向量定义的平面

plane
{
    type          searchablePlane;
    planeType     pointAndNormal;
    pointAndNormalDict
    {
        basePoint (1 1 1);
        normal    (0 1 0);
    }
}

例二:由平面上的3个点定义的平面

plane
{
    type searchablePlane;
    planeType embeddedPoints;
    embeddedPointsDict
    {
        point1 (1 1 1);
        point2 (0 1 0);
        point3 (0 0 1)
    }
}

例三:由平面方程定义的平面

plane
{
    type      searchablePlane;
    planeType planeEquation;
    planeEquationDict
    {
        a 0;
        b 0;
        c 1;
        d 2;
    }
}

通过体加密后效果如下所示:

图3. 平面切割效果图

缩放、转换与合并几何体(searchableSurfaceCollection)

用户创建或导入三维几何体以后,snappyHexMesh允许用户对已有几何体进行缩放,并支持本地坐标系中对几何体平移与旋转操作。用户通过定义scale(Xa Yb Zc)参数可以对该几何体进行xyz方向缩放。通过改变本地坐标系原点坐标origin实现平移操作,通过向量(e1、e2)、(e2、e3)或(e3、e1)的组合定义旋转角度。另外也支持用户通过命令mergeSubRegions对多个几何体进行布尔求和。

命令用法如下:

用户创建或导入三维几何:

Cylinder
{
    type   triSurfaceMesh;
    file   "Cylinder.stl";
}

图4. 导入圆柱体

几何操作过程为:对圆柱体进行Y方向缩放2倍,再复制缩放后的圆柱体到y轴方向0.08m处,并合并两个新几何体。

具体命令如下:

twoCylinders
{
    type            searchableSurfaceCollection;
    mergeSubRegions true; //是否合并两个几何体
    Cylinder_cope1
    {
        surface     Cylinder;
        scale       (1 2 1);
        transform
        {
            coordinateSystem
            {
                type     cartesian;
                origin   (0 0 0);
                coordinateRotation
                {
                    type axesRotation;
                    e1   (1 0 0);
                    e3   (0 0 1);
                }
            }
        }
    }
    Cylinder_cope2
    {
        surface     Cylinder;
        scale       (1 2 1);
        transform
        {
            coordinateSystem
            {
                type     cartesian;
                origin   (0 0.08 0);
                coordinateRotation
                {
                    type axesRotation;
                    e1   (1 0 0);
                    e3   (0 0 1);
                }
            }
        }
    }
}

新生成的几何体如下图所示:

图5. 变形合并后圆柱体

缝隙修复searchableSurfaceWithGaps

修复原理为在缝隙处用垂直于原面向量的两个小向量(大小根据gap参数指定)移动测试向量。用+和-来测试此向量,仅当两个都记录为匹配时,稍微扩展测试向量(使用SMALL)以解决几何边界数值误差。软件使用多个稍微偏移的基础表面来确保网格不会穿过间隙。

用户必须先在在几何字典(geometry)中定义几何三角面元,软件在此基础上识别(并封闭)缝隙,修复缝隙尺寸通过gap指定。

命令用法如下:

sphere.stl
{
    type     triSurfaceMesh;
}
sphere
{
    type     searchableSurfaceWithGaps;
    surface  sphere.stl;
    gap      1e-3;
}

 

posted @ 2021-10-06 10:52  希望先生  阅读(755)  评论(0编辑  收藏  举报