OpenFOAM中循环边界(cyclic)设置

我是新手第一次在设置cyclic边界时出现各种错误,参考了论坛上很多讨论弄了一天终于成功,记录一下。参考过的帖子。

https://www.cfd-online.com/Forums/openfoam-pre-processing/105531-setting-side-wedge-boundary-condition.html#post378087

https://www.cfd-china.com/topic/1742/cyclicami%E4%B8%80%E7%AE%97%E5%B0%B1%E6%8C%82/4?_=1600231972041&lang=en-US

https://zhuanlan.zhihu.com/p/84137342?utm_source=qq

https://www.cfd-china.com/topic/2756/%E7%94%A8snappyhexmeshdict%E7%94%9F%E6%88%90%E5%91%A8%E6%9C%9F%E6%80%A7%E8%BE%B9%E7%95%8C%E9%97%AE%E9%A2%98/13?_=1600231972055&lang=en-US

下面总结我的成功办法:

1、在ICEM中画网格是设置好周期性边界。 

     具体做法:

  • 在Global Mash Setup中设置Periodicity。勾选Define Periodicity,选择Periodicity类型,例如我的算例为平移周期。之后输入平移向量之后点击Apply。如下图

OpenFOAM中循环边界(cyclic)设置

  • 在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)工具即可并行成功。

OpenFOAM中循环边界(cyclic)设置

注:一些地方提到勾选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;
    }

至此所有的设置已完成,并且可以成功进行并行计算。