OpenFOAM中圆柱体的二维画法
本文移植自博主以前的新浪博客,原文发表于 (2014-12-25 10:22:36)。
简介
使用的方法是 makeAxialMesh,最初来自于 openfoamwiki。
我将其移植到了最新的 OpenFOAM-7:https://github.com/ZhangYanTJU/makeAxialMesh ,并且附有算例。
首先来张 UserGuide 上的插图
在OpenFOAM(其他平台不知道)中,圆柱体的二维表现为一个夹角不超过5度的楔形。那么怎样把这个楔形画出来呢?
操作步骤
在 system 文件夹下,需要两个文件:rotationDict 和 collapseDict
// ************************rotationDict************************************** // |
// * * * * * * * * * * * * *collapseDict* * * * * * * * * * * * * * * * * * // |
在blockMeshDict文件中,网格照常定义。只是需要注意一下几点:
- 把需要坍塌的那个面(此面合并成一条线,即圆柱体的轴线),定义为center , type symmetryPlane(定义边界条件是也用此type)。
- 需要frontAndBack。
- 生成楔形网格后,frontAndBack会变成两个 frontAndBack_pos, frontAndBack_neg。定义边界条件时,用wedge类型。
然后,按如下指令操作:
blockMesh |
注意事项
只有一个网格的那个维度,需要与 0 对称分布:
(0 0 -0.05)
(1 0 -0.05)
(1 1 -0.05)
(0 1 -0.05)
(0 0 0.05)
(1 0 0.05)
(1 1 0.05)
(0 1 0.05)如果在执行
collapseEdges -overwrite
的时候遇到以下问题:--> FOAM Warning :
From function void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBuffers &)
in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 70
Wedge patch 'frontAndBack_neg' is not planar.
At local face at (0.0975 0.0925 -0.00250811) the normal (0 0.0435766 -0.99905) differs from the average normal (-4.23114e-19 0.043578 -0.99905) by 1.95256e-12
Either correct the patch or split it into planar parts可以执行以下代码,然后 goto 这里重新操作一遍!
foamDictionary -entry writeFormat -set binary system/controlDict
如果使用 OF-2.1.x,需要使用:
collapseEdges -overwrite 1e-6 179