转载:知乎大神 中国空气动力研究与发展中心 力学博士 刘云楚 的文章
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; }