Openfoam中transform工具学习记录

最近打算做个多孔介质两相流模拟,让师弟画好了网格,导出.stl格式文件,因为openfoam中的snappyHexMesh工具可以基于.stl生成十分漂亮的网格(真实原因是其他网格划分工具我也不会,只能靠软件自带的工具),好了,言归正转,回到画网格过程,我在实体建模过程中,发现几个问题,网格尺寸过大,达到米级别,而我想模拟的区域尺寸在毫米级别,这就需要对.stl文件或者网格文件进行适当的处理,在网上查阅了相关资料,openfoam里面transformPoint工具能较好解决这个问题(插曲:应该可以在建模完成导出.stl文件的时候就进行网格单位转换,但是这一步忘记了),这里顺便记录一下通过snappyHexMesh生成网格的过程:

文件准备

1、将.stl文件放到自己的案例文件constant/trisurface目录下;
2、制作snappyHexMeshDict文件(system目录下),并进行编辑,该文件主要包含五个内容,其中对.stl文件主要有三步操作:

geometry  //存放.stl文件
{
    
};


// Settings for the castellatedMesh generation.
castellatedMeshControls  //区域划分
{

}

// Settings for the snapping.
snapControls  //界面捕捉
{
   
}

// Settings for the layer addition.
addLayersControls  //加边界层
{
    
}

// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls  //网格质量控制
{
    #include "meshQualityDict"
}

网格操作:

  • 区域划分(castellatedMeshControls)

该命令用来检测.stl模型边界与blockMesh生成背景网格的交界面,以便后续的external划分(例如航空动力学中研究飞机机翼附近的受力情况,需要在机翼外部进行网格划分)或者internal划分(例如研究某一管道内流体流动对璧面作用,则需要进行内部网格划分),以及边界处加密操作,设置snappyHexMeshDcit文件为:

// Which of the steps to run
castellatedMesh true;
snap            false;
addLayers       false;

设置好castellatedMeshcontrol下相关参数后,命令行键入snappyHexMesh,则会在案例目录额外生成一个文件夹1,里面存放snappy网格信息,命令行键入paraFoam,查看生成的网格:
Openfoam中transform工具学习记录_第1张图片
检查网格发现,前面一步生成的孔隙骨架璧面网格会呈现锯齿状,这就需要进行界面的捕捉步骤。

  • 捕捉(snapControls)

同样,设置snappyHexMeshDict:

// Which of the steps to run
castellatedMesh true;
snap            true;
addLayers       false;

设置好snapcontrol下参数后,运行snappyHexMesh命令,则案例目录又会额外生成一个2文件夹,里面包含第一步和第二步生成的网格信息。这时候可键入paraFoam再一次查看生成网格,可以发现网格如下:
Openfoam中transform工具学习记录_第2张图片可以看到界面捕捉之后,网格璧面的边界较之前更为平滑。

  • 加边界层(addLayersControls)

边界细化操作,本案例未考虑,可根据个人需要按上述方法进行设置。
注:这三个步骤完成后会生成三个带有网格信息的文件夹,这时候需要将第三步生成的Polymesh文件夹拷贝覆盖constant下Polymesh,这样我们求解的时候会调用最终生成的网格。

总结

这三个操作可以分步进行,也可以同时进行,对于初学,建议一步步进行操作,这样可以知道自己每一步干了啥,对网格的生成有更好的了解,以便后续进行网格优化。

你可能感兴趣的:(openfoam学习)