OpenFOAM中循环边界(cyclic)设置
我是新手第一次在设置cyclic边界时出现各种错误,参考了论坛上很多讨论弄了一天终于成功,记录一下。参考过的帖子。
https://zhuanlan.zhihu.com/p/84137342?utm_source=qq
下面总结我的成功办法:
1、在ICEM中画网格是设置好周期性边界。
具体做法:
- 在Global Mash Setup中设置Periodicity。勾选Define Periodicity,选择Periodicity类型,例如我的算例为平移周期。之后输入平移向量之后点击Apply。如下图
- 在Edit block 中设置Periodic Vertices定义顶点周期,也就是让顶点一一对应。这一步很关键,基本上解决了OpenFOAM算例cyclic边界问题中报的最常见的错误-容差和面不对应的问题。(例如face 0 area does not match neighbour by 23.7135% -- possible face ordering problem.、unable to find initial target face)。并且在并行计算时不需要再decomposeParDict文件中使用preservePatches(xxx xxx)工具即可并行成功。
注:一些地方提到勾选ICEM里面blocking里的faces的Periodic,再导入openfoam有与上面操作同样的效果。(还没试)
2、生成xx.msh网格后通过fluent3DMeshToFoam xx.msh命令转成OpenFOAM识别的网格文件。
3、修改边界类型
将以下几何边界
FRONT
{
type patch;
nFaces 51200;
startFace 7321600;
}
periodic_sh
{
type patch;
nFaces 51200;
startFace 7372800;
}
改为
FRONT
{
type cyclic;
neighbourPatch periodic_sh;
nFaces 51200;
startFace 7321600;
}
periodic_sh
{
type cyclic;
neighbourPatch FRONT;
nFaces 51200;
startFace 7372800;
}
4、修改0文件中的物理边界,将对应的边界类型改为cyclic。例如
FRONT
{
type cyclic;
}
periodic_sh
{
type cyclic;
}
至此所有的设置已完成,并且可以成功进行并行计算。