在OpenFOAM中使用二维轴对称的.msh网格

OpenFOAM仅支持三维网格,而一维、二维和轴对称网格是通过将相应BC设置为emptywedge来实现,也可以使用symmetry或者cylic变相实现。相较于一维和二维网格,轴对称网格不仅需要设置BC条件,还要求网格为楔形结构,而ANSYS ICEM构建的二维轴对称网格(.msh)直接导入OpenFOAM后是单层棱柱网格,需要进一步地转换。

操作流程

  1. .msh网格转为OpenFOAM格式(以fluent.msh为例)
    $ fluentMeshToFoam fluent.msh
    
  2. 将网格转换为楔形结构
    (命令makeAxialMesh需要单独安装)
    $ makeAxialMesh -axis AXIS -wedge frontAndBackPlanes
    
  3. 轴线上的网格单元塌陷
    (需要在system文件夹下添加控制文件collapseDict和meshQualityDict)
    $ collapseEdges
    
  4. 将最新时刻文件夹内的网格文件polyMesh放入constant,并删除中间时刻的文件夹
  5. 检查网格
    $ checkMesh 
    

注意事项

  1. 第二步的命令makeAxialMesh的安装方法和下载地址见http://openfoamwiki.net/index.php/Contrib/MakeAxialMesh,目前仅支持到of-2.x版本;
  2. 第二步中,AXIS为对称轴BC名称,frontAndBackPlanes为楔形侧面BC名称,在.msh转OF过程默认生成,BC名称可在constant/polyMesh/boundary中参看;
  3. 第三步的控制文件collapseDict和meshQualityDict可在OF的安装目录下可找到$FOAM_APP/utilities/mesh/advanced/collapseEdges
  4. 第三步的文件collapseDict中的collapseEdgesCoeffs中的minimumEdgeLength的设定数值,要小于生成的楔形结构中的最下边长,不然会造成非axis的edge的合并;
  5. 转换过程中,如果出现warning:Wedge patch ... is not planar.,一般是由于算例设定的存储精度偏低,可适当调高system/controlDict中的参数writePrecision的设定数值,默认为6,可适当调高到12,甚至更高;
  6. 可以直接通过ANSYS ICEM的资深用户,也可以直接使用ICEM的Mesh->Extrude Mesh功能,直接由二维网格旋转生成三维的楔形网格,从而代替第三方命令makeAxialMesh的使用。

你可能感兴趣的:(在OpenFOAM中使用二维轴对称的.msh网格)