OF是否可以对某个特定方向的速度场进行残差控制?

大家好,我想请教一个问题:
当我们如下设置时,速度场(Ux,Uy,Uz)都小于1e-3时,才跳出循环,计算结束。由于我做一个二维轴对称模拟,OpenFOAM使用的是楔形网格,所以在周向z会进行求解(OpenFOAM的二维轴对称模拟为伪二维)。然而这是个二维模拟,z方向我并不关心(从结果来看z方向速度值特别小,小于1e-10,但是并不收敛。Ux和Uy残差都可以收敛到1e-6,但是Uz残差一直在1e-2波动)。所以我只需要Ux和Uz方向收敛就好。请教各位大佬,是否可以设置特定方向速度场的收敛条件?这样就可以在Ux和Uy收敛时,就跳出循环了。望赐教,祝好!

residualControl
{
    U         1e-3;
}

不知道你是用的什么版本?你试试

    residualControl
    {
        p 1e-1;
        Ux 1e-6;
        Uy 1e-6;
        Uz 1e-2;
    }

看看行不行呢?

参考文献

  1. https://bugs.openfoam.org/view.php?id=2028#c6050

前辈您好,我之前有试过对每个速度分量设置残差收敛标准,但是并不起作用,把U改成了Ux,Uy,Uz之后,好像对于速度场变成了并没有设置残差收敛标准。从您给我的链接来看,2016年之后OpenFOAM似乎就已经有这个功能,但是我用的是OpenFOAM-6,去年(2018年)才发布的,应该也具有这个功能才对。不知前辈用的是哪个版本?是否有做过测试呢?祝好!

不太清楚。你看看这个功能行不? dev 版本有。

    U
    {
        type coupled; // 可以不用这一行
        solver PBiCCCG;
        preconditioner DILU;
        tolerance (1e-8 1e-8 1e-8);
        relTol (0.001 0.001 0.001);
    }