OpenFOAM仅支持三维网格,而一维、二维和轴对称网格是通过将相应BC设置为empty
、wedge
来实现,也可以使用symmetry
或者cylic
变相实现。相较于一维和二维网格,轴对称网格不仅需要设置BC条件,还要求网格为楔形结构,而ANSYS ICEM构建的二维轴对称网格(.msh
)直接导入OpenFOAM后是单层棱柱网格,需要进一步地转换。
操作流程
-
将
.msh
网格转为OpenFOAM格式(以fluent.msh
为例)$ fluentMeshToFoam fluent.msh
-
将网格转换为楔形结构
(命令makeAxialMesh需要单独安装)$ makeAxialMesh -axis AXIS -wedge frontAndBackPlanes
-
轴线上的网格单元塌陷
(需要在system文件夹下添加控制文件collapseDict和meshQualityDict)$ collapseEdges
-
将最新时刻文件夹内的网格文件
polyMesh
放入constant
,并删除中间时刻的文件夹 -
检查网格
$ checkMesh
注意事项
- 第二步的命令makeAxialMesh的安装方法和下载地址见http://openfoamwiki.net/index.php/Contrib/MakeAxialMesh,目前仅支持到of-2.x版本;
- 第二步中,AXIS为对称轴BC名称,frontAndBackPlanes为楔形侧面BC名称,在.msh转OF过程默认生成,BC名称可在
constant/polyMesh/boundary
中参看; - 第三步的控制文件collapseDict和meshQualityDict可在OF的安装目录下可找到
$FOAM_APP/utilities/mesh/advanced/collapseEdges
; - 第三步的文件collapseDict中的
collapseEdgesCoeffs
中的minimumEdgeLength
的设定数值,要小于生成的楔形结构中的最下边长,不然会造成非axis的edge的合并; - 转换过程中,如果出现warning:
Wedge patch ... is not planar.
,一般是由于算例设定的存储精度偏低,可适当调高system/controlDict
中的参数writePrecision
的设定数值,默认为6,可适当调高到12,甚至更高; - 可以直接通过ANSYS ICEM的资深用户,也可以直接使用ICEM的
Mesh->Extrude Mesh
功能,直接由二维网格旋转生成三维的楔形网格,从而代替第三方命令makeAxialMesh的使用。