求助: SonicFoam求解二维叶栅时无法收敛(求解文件可下载)



  • 大家好,最近一直在利用OpenFOAM的SonicFoam求解二维叶栅的跨声速流动,由于缺乏计算经验,计算一直无法收敛,现在通过这个帖子向大家求教,恳求大家帮忙指点。原文件如下:https://pan.baidu.com/s/1i_9ZtTNnw_uyRIB9WqPHeg 提取码:3vx0

    我选用的计算对象是rotor67的70%截面,预计进口Ma数为1.2,进出口边界条件如图所示,进口给定总温总压以及速度方向的进口条件,出口给定背压。因为一开始怕计算发散,采用先给定小进口总压,然后逐步抬高,进口总压为1.2E5时的进口速度大约是180m/s。
    c2a0aee9-84a6-4446-aad8-fca41215625f-图片.png 进出口边界示意图

    网格采用ICEM生成,yplus是在来流速度400左右确定为30,,第一层网格大约为0.03mm。

    该网格可以在rhoCentralFoam求解器中采用速度入口条件可以收敛,所以网格和边界条件这一块应该没有什么问题。原先选用其结果作为初场,可是计算也是发散。

    我这边一直怀疑是自己的边界和求解控制那一块有问题,但是一直没能找到问题解决办法,恳请大家帮忙提些建议。

    这里给出我的压力、温度、速度条件

    pOut            1e5;
    pAll            1.2e5;
        INLET
        {
            type            totalPressure;
            psi             thermo:psi;  
            gamma           1.4;      
            p0              uniform $pAll;
            value           uniform $pOut;
        }
        OUTLET
        {
            type            waveTransmissive;
            field           p;
            psi             thermo:psi;
            gamma           1.4;
            fieldInf        100000;
            lInf            0.3;
            value           uniform 100000;
        }
        PER1
        {
            type            cyclicAMI;
        }
        PER2
        {
            type            cyclicAMI;
    
        }
        BLADE
        {
            type             zeroGradient;
        }
    
    Tinlet
    INLET
        {
            type       totalTemperature;
            gamma      1.4;
            psi        thermo:psi;
            T0         uniform 304.975;
            value      uniform 288.15;
        }
        OUTLET
        {
            type            inletOutlet;
            inletValue      uniform $Tinlet;
            value           $inletValue;
        }
        PER1
        {
            type            cyclicAMI;
        }
        PER2
        {
            type            cyclicAMI;
    
        }
        BLADE
        {
            type            zeroGradient;
        }
    
    boundaryField
    {
        INLET
        {
            type            pressureDirectedInletVelocity;
            inletDirection  uniform (0.5 0.86605 0);    //angle=60
            value           uniform (90 159.35 0);
        }
        OUTLET
        {
            type            inletOutlet;
            inletValue      uniform $Uinlet;
            value           uniform $Uinlet;
        }
        PER1
        {
            type            cyclicAMI;
        }
        PER2
        {
            type            cyclicAMI;
        }
        BLADE
        {
            type            noSlip;
        }
    
    

    这里给出fvSolution和fvSchemes。

    solvers
    {
        "rho.*"
        {
            solver          diagonal;
        }
    
        "p.*"
        {
            solver          smoothSolver;
            smoother        symGaussSeidel;
            tolerance       1e-08;
            relTol          0;
        }
    
        "(U|e|R).*"
        {
            $p;
            tolerance       1e-05;
        }
    
        "(k|omega).*"
        {
            $p;
            tolerance       1e-08;
        }
    }
    
    PIMPLE
    {
        nOuterCorrectors 2;
        nCorrectors      1;
        nNonOrthogonalCorrectors 2;
    }
    fieldBounds
    {
    
        p      1000     1e6;
        T      100    3000;
        U      1000;
    }
    
    relaxationFactors
    {
        fields
        {
            p 0.7;
            rho 0.01;
        }
        equations
        {
            p 0.7;
            U 0.3;
            "(e|h|k|epsilon|omega)" 0.2;
        }
    }
    
    ddtSchemes
    {
        default         Euler;
    }
    
    gradSchemes
    {
        default         Gauss linear;
    }
    
    divSchemes
    {
        default         none;
        div(phi,U)      Gauss limitedLinearV 1;
        div(phi,e)      Gauss limitedLinear 1;
        div(phid,p)     Gauss limitedLinear 1;
        div(phi,K)      Gauss limitedLinear 1;
        div(phiv,p)     Gauss limitedLinear 1;
        div(phi,k)      Gauss upwind;
        //div(phi,epsilon) Gauss upwind;
        //div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
        div(phi,omega)  Gauss upwind;
        div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
        div((muEff*dev2(grad(U).T())))  Gauss linear; 
    }
    
    laplacianSchemes
    {
        default         Gauss linear corrected;
    }
    
    interpolationSchemes
    {
        default         linear;
    }
    
    snGradSchemes
    {
        default        corrected;
    }
    
    wallDist
    {
        method meshWave;
        //nRequired       false;
    }
    

  • CORE 网格教授 OpenFOAM教授 管理员

    不收敛可能性太多了,周一给你调试下你的算例,现在手头没有openfoam

    既然rhoCentralFoam能收敛,为何不用rhoCentralFoam



  • @东岳 真的是太感谢您了,rhoCentralFoam的总温总压边界再配上进口速度方向,会使得计算发散,我现在正在想办法解决。在压气机内流叶栅的计算里面,一般都会给进口总温总压边界条件,和实验对比的比较好



  • 源文件里面的松弛因子给的不合理,修改以后依然没什么效果
    修改后

    relaxationFactors
    {
        fields
        {
            p 0.7;
            rho 0.8;
        }
        equations
        {
            p 0.7;
            U 0.3;
            "(e|h|k|epsilon|omega)" 0.2;
        }
    

  • CORE 网格教授 OpenFOAM教授 管理员

    你的算例我下来之后,发现lowRe这个计算没有问题?



  • @东岳 计算是要过一段时间才会显示发散,看云计算流场应该是乱的



  • @东岳 这是5e-5时刻的流场云图
    b4b29278-89ba-421f-83e6-acef2c2935d0-图片.png



  • 现在我能确定的是我的整个边界条件在低速下是可以用的,用pisofoam,湍流模型选用kepsilon收敛的很好,现在正在尝试kOmega。但是在高速求解器如我现在要用的sonicfoam 和原先尝试的rhoCentralFoam都会出现问题。在sonicfoam 里面的问题就是会出现内部流场十分紊乱,所以我觉得是不是我求解和算法控制那块是不是有问题


  • CORE 网格教授 OpenFOAM教授 管理员

    @宝丁 这个看起来出现了震荡,我在测试,就是算起来太慢了,



  • @宝丁 预计进口流速为60m/s,还是总温总压入口



  • @东岳 我在这里找到了一个您的邮箱,给您发了一个这个网格量一般的网格,您能收到吗?
    振荡是从一开始就振荡。时间步长为1e-8或者5e-9时,计算到0.0001就可以看到不稳定的流场。


  • CORE 网格教授 OpenFOAM教授 管理员

    我把你的算例,把速度进口替换成zeroGradient计算就没问题了,你试试

    但你这个是不是应该是cyclic边界?另外,即使用cyclicAMI,是不是应该是rotational的?
    另外,网格正交性是不是可以调整下。个人感觉你调试这个算例,不用满足y+,用3000 5000调试就行, 要不算起来太慢了



  • 我也尝试过,确实是可以的,但是我的工况要求我定义进口的方向,尤其是这种跨声速流场,对方向很敏感



  • 我的边界条件是平移周期边界,cyclicAMI和cyclic相比只是不需要交界面两边网格一一对应

    ed798635-7613-4f0f-a894-34b0618270f0-1490441868405-cyclic-resized.jpg


  • CORE 网格教授 OpenFOAM教授 管理员

    把你的tin和blk发来看看,我调整下网格,



  • @东岳 当时试的时候一开始确实没什么问题,可是算到后面zeroGradient 边界条件也会发散,但是会好很多,不知道是不是几何不合适,就没有往下尝试



  • @东岳 好的 文件不大,就直接放到这里了
    R67_70.zip


  • CORE 网格教授 OpenFOAM教授 管理员

    速度角度和网格不成直线,对流项格式不好设置。不太清楚你这个结果应该是什么样,最后我这个稳定到这样了。因为我重新画了网格,你用你的网格试试下面的fvScheme,我感觉可能是格式的问题,因为看起来是震荡。

    还得进一步研究一下,不能用这么迎风的格式,你用稳态求解器试过没

    捕获.JPG

    ddtSchemes
    {
        default         Euler;
    }
    
    gradSchemes
    {
        default         cellLimited leastSquares 01;
    }
    
    divSchemes
    {
        default         none;
    
        div(phi,U)      Gauss upwind;
        div(phi,e)      Gauss upwind; 
        div(phid,p)     Gauss  upwind; 
        div(phi,K)      Gauss  upwind; 
        div(phiv,p)     Gauss  upwind; 
    
    
        //div(phi,U)      Gauss limitedLinearV 1;
        //div(phi,e)      Gauss limitedLinear 1;
        //div(phid,p)     Gauss limitedLinear 1;
        //div(phi,K)      Gauss limitedLinear 1;
        //div(phiv,p)     Gauss limitedLinear 1;
        div(phi,k)      Gauss upwind;
        div(phi,omega) Gauss upwind;
        div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
    }
    
    laplacianSchemes
    {
        default         Gauss linear limited corrected 0.5;
    }
    
    interpolationSchemes
    {
        default         linear;
    }
    
    snGradSchemes
    {
        default         corrected;
    }
    
    wallDist
    { 
        method          meshWave;
    }
    


  • @东岳 好的,非常非常感谢,我马上就去尝试



  • @东岳 我用稳态算过,也是发散


 

Forest
Mountains