基于snappyHexMesh生成网格的圆柱绕流算例
1.创建几何体STL文件
在了解了原理之后,要生成网格第一步就是要创建一个几何体的STL文件,可以使用3Dbulider,3DCAD等软件生成几何体然后以STL格式输出,然后将文件拷贝到虚拟机中。可以使用paraview打开几何体进行查看,确认没有问题。
2.创建背景网格
修改blockMeshDict字典文件来创建一个背景网格,在这个算例中背景网格是一个非常简单的block,背景网格的几何大小与第二章的圆柱绕流算例的尺寸一致。
需要注意的是,在blockMeshDict中所有面的type都为patch。 生成的背景网格如下:
将几何体放置到网格中,发现没有问题,继续之后的步骤。
3.为几何体创建多个表面
默认情况下,几何体STL文件由一个表面组成,如果要创建多个表面,可以使用surfaceAutoPatch。在几何体STL文件所在的目录下终端键入:
surfaceAutoPatch geo.stl cylinder.stl 130
- 程序surfaceAutoPatch将读取原始STL文件geo.stl(一个面组成),并将使用130的角度标准将几何体划分为多个面。
- 这个角度划分标准类似于表面特征细化角,如果几何体相邻面角度大于resolveFeatureAngle,则标记相邻STL面进行划分(细化),反之不进行划分(细化)。
- cylinder.stl最终要拷贝到constant/triSurface中。
- 这时候打开cylinder.stl,会发现里面定义了三个表面:
- patch0(通过部分代码上的点位置可以确定patch0是圆柱体的侧表面)
- patch1(可以判断为后端面)
- patch2(同理可以判断为前端面)