在使用这个命令时,需要注意一点,即并行计算时需要将Jump的两个面划分在同一个分块里,不然会出现压力云图的异常情况。之前运行算例的时候,没有注意到这一点,过了好多天之后,今天终于发现了这个解决办法。
以三维槽道流为例,我们选用最简单的scotch分类方法,decomposeParDict文件如下
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 24;
method scotch;
// ************************************************************************* //
最总运行结果如下如下图所示:
上面的现象,我分别采用pimpleFoam,icoFoam求解器分别运行过,都会得到上图所示的压力云图异常,后来暂时没找到解决办法,修改了求解器,采用体积力来驱动流体流动,不在使用fixedJump这种方法,解决了压力云图的异常。
之后在浏览论坛时发现,只需要在decomposeParDict后面加入如下
preservePatches
(
cyclic1
cyclic2
);
即可解决这个问题,在加入命令后,我们运行decomposePar命令,可以看出在进行分快时,这个就命令提供了约束,使得cyclic1和cyclic2在同一个processor上。
最终运行结果对比如下
不把两个边界放在一个处理器下的计算结果:
添加约束命令后计算的结果:
可以看出压力异常情况被消除了。
最后,提供对比图的工程文件见主页