关于数值模拟离心泵过程中发散的一些问题



  • 在用MRFSimpleFoam求解离心泵过程中当divSchemes采用一阶的upwind时计算可以收敛,没问题,但是采用如下的高阶格式时计算基本不能进行下去,只能算一两步,这个问题出在哪里? 请帮忙解决,谢谢

    divSchemes
    {
        default         none;
        div(phi,U)      Gauss limitedLinearV 1;
        div(phi,k)      Gauss limitedLinear 1;
        div(phi,epsilon) Gauss limitedLinear 1;
        div((nuEff*dev(T(grad(U))))) Gauss linear;
    }
    fvSolution 文件如下
    solvers
    {
        p
        {
            solver           GAMG;
            tolerance        1e-6;
            relTol           0.05;
           smoother         GaussSeidel;
           cacheAgglomeration true;
            nCellsInCoarsestLevel 800;
            agglomerator     faceAreaPair;
            mergeLevels      1;
        }
    
        U
        {
            solver           smoothSolver;
            smoother         GaussSeidel;
            nSweeps          2;
            tolerance        1e-5;
            relTol           0.1;
        }
    
        k
        {
            solver           smoothSolver;
            smoother         GaussSeidel;
            nSweeps          2;
            tolerance        1e-5;
            relTol           0.1;
        }
    
        epsilon
        {
            solver           smoothSolver;
            smoother         GaussSeidel;
            nSweeps          2;
            tolerance        1e-5;
            relTol           0.1;
        }
    }
    
    SIMPLE
    {
        nNonOrthogonalCorrectors 1;
        pRefCell 0;
        pRefValue 0;
    }
    relaxationFactors
    {
        p               0.3;
        U               0.5;
        k               0.5;
        epsilon         0.5;
    }


  • 很难判断,和网格,边界关系很大,simpleFoam是一个很简单的求解器,发散只能是设置的问题肯定不是求解器的问题。有的时候离心泵计算要使用并不是太稳定的边界条件组合。只能说检查下边界条件和网格质量。或许可以贴log文件看看。



  • 谢谢前辈,下面是网格质量检查的log文件,用的是非结构网格

    Create time
    
    Create polyMesh for time = 0
    
    Time = 0
    
    Mesh stats
        all points:           249875
        live points:          249875
        all faces:            2796614
        live faces:           2796614
        internal faces:       2718602
        cells:                1378804
        boundary patches:     10
        point zones:          0
        face zones:           3
        cell zones:           3
    
    Overall number of cells of each type:
        hexahedra:     0
        prisms:        0
        wedges:        0
        pyramids:      0
        tet wedges:    0
        tetrahedra:    1378804
        polyhedra:     0
    
    Checking topology...
        Boundary definition OK.
        Point usage OK.
        Upper triangular ordering OK.
        Face vertices OK.
       *Number of regions: 3
        The mesh has multiple regions which are not connected by any face.
      <<Writing region information to "0/cellToRegion"
    Nuumber of cells per region: 
    	0	192712
    	1	282795
    	2	903297
    
    
    Checking patch topology for multiply connected surfaces ...
        Patch               Faces    Points   Area [m^2]  Surface topology                  
        GUIDE-INLET         1454     777      0.00621397  ok (non-closed singly connected)  
        GUIDE-OUTLET        1444     771      0.00621367  ok (non-closed singly connected)  
        GUIDE-BIMIAN        5252     2723     0.0167709   ok (non-closed singly connected)  
        IMPELLER-INLET      1866     985      0.00621398  ok (non-closed singly connected)  
        IMPELLER-OUTLET     3747     2037     0.0122964   ok (non-closed singly connected)  
        IMPELLER-BIMIAN     9398     5365     0.0300004   ok (non-closed singly connected)  
        IMPELLER-BLADE      11873    6399     0.0358377   ok (non-closed singly connected)  
        VOLUTE-OUTLET       1238     665      0.00502107  ok (non-closed singly connected)  
        VOLUTE-INLET        3708     2041     0.0122965   ok (non-closed singly connected)  
        VOLUTE-BIMIAN       38032    19247    0.110309    ok (non-closed singly connected)  
    
    Checking geometry...
        This is a 3-D mesh
        Overall domain bounding box (-0.0994947 -0.12194 -0.105381) (0.0399865 0.18 0.134736)
        Mesh (non-empty, non-wedge) directions (1 1 1)
        Mesh (non-empty) directions (1 1 1)
        Mesh (non-empty, non-wedge) dimensions 3
        Boundary openness (1.39036e-16 7.89536e-17 1.26213e-17) Threshold = 1e-06 OK.
        Max cell openness = 3.12848e-16 OK.
        Max aspect ratio = 4.28896 OK.
        Minumum face area = 7.24618e-07. Maximum face area = 7.48018e-06.  Face area magnitudes OK.
        Min volume = 3.60661e-10. Max volume = 5.62725e-09.  Total volume = 0.00266114.  Cell volumes OK.
        Mesh non-orthogonality Max: 50.7974 average: 7.4258 Threshold = 70
        Non-orthogonality check OK.
        Face pyramids OK.
        Max skewness = 0.52081 OK.
    
    Mesh OK.
    
    End


  • 边界条件:
    进口:速度进口,压力零梯度
    出口:速度零梯度,压力固定值0
    壁面:速度固定值(0 0 0),压力零梯度



  • 运算的log文件贴一下?simpleFoam的log



  • 您好,算例运行不起来,只能跑一步

    Create time
    
    Create mesh for time = 0
    
    Initializing the GGI interpolator between master/shadow patches: GUIDE-OUTLET/IMPELLER-INLET
    Initializing the GGI interpolator between master/shadow patches: IMPELLER-OUTLET/VOLUTE-INLET
    
    SIMPLE: no convergence criteria found. Calculations will run for 1400 steps.
    
    Reading field p
    
    Reading field U
    
    Reading/calculating face flux field phi
    
    Selecting incompressible transport model Newtonian
    Selecting RAS turbulence model RNGkEpsilon
    RNGkEpsilonCoeffs
    {
        Cmu             0.0845;
        C1              1.42;
        C2              1.68;
        alphak          1.39;
        alphaEps        1.39;
        eta0            4.38;
        beta            0.012;
        sigmak          0.71942;
        sigmaEps        0.71942;
    }
    
    Creating MRF for cell zone IMPELLER. rpm = 2900
    Excluded patches: 2(3 4)
    
    Starting time loop
    
    Time = 1
    
    smoothSolver:  Solving for Ux, Initial residual = 1, Final residual = 0.0108375, No Iterations 2
    smoothSolver:  Solving for Uy, Initial residual = 1, Final residual = 0.0104409, No Iterations 2
    smoothSolver:  Solving for Uz, Initial residual = 1, Final residual = 0.0104084, No Iterations 2
    GAMG:  Solving for p, Initial residual = 1, Final residual = 0.027634, No Iterations 6
    GAMG:  Solving for p, Initial residual = 0.0357851, Final residual = 0.000575861, No Iterations 2
    time step continuity errors : sum local = 7.76946, global = 0.352411, cumulative = 0.352411
    smoothSolver:  Solving for epsilon, Initial residual = 0.13384, Final residual = 0.00135303, No Iterations 2
    bounding epsilon, min: -2.55034 max: 52.4243 average: 2.34921
    smoothSolver:  Solving for k, Initial residual = 1, Final residual = 0.0250789, No Iterations 2
    ExecutionTime = 12.85 s  ClockTime = 13 s
    
    Time = 2
    
    smoothSolver:  Solving for Ux, Initial residual = 0.20708, Final residual = 0.00402441, No Iterations 2
    smoothSolver:  Solving for Uy, Initial residual = 0.249236, Final residual = 0.0056065, No Iterations 2
    smoothSolver:  Solving for Uz, Initial residual = 0.222885, Final residual = 0.00479877, No Iterations 2


  • 我换用linearUpwind后到200多步还是发散了,谢谢您!



  • 调节一下你的k和epsilon初始的值,从log来看你的epsilon不可实现。



  • 首先,非常感谢您的回复
    我调整了k以及epsilon,但是还是不可以,当我将div(phi,U)调为upwind或者linearUpwind Gauss时,div(phi,k)与div(phi,epsilon)不管是那种格式都能算,但是若是我将div(phi,U)设为limitedlinearV 1格式,div(phi,k)与div(phi,epsilon)不管那种格式都不行,算例都只算一步。


  • 管理员

    我发现个问题,你那个同时调用GGI和MRF?



  • 恩恩,是的,交界面处理使用的是GGI


  • 管理员

    我记得ggi和MRF不能同时用的。。



  • 谢谢您的回复,我用的是foam-extend版本,里面有同时调用的例子的



  • 我调整了k以及epsilon,但是还是不可以,当我将div(phi,U)调为upwind或者linearUpwind Gauss时,div(phi,k)与div(phi,epsilon)不管是那种格式都能算,但是若是我将div(phi,U)设为limitedlinearV 1格式,div(phi,k)与div(phi,epsilon)不管那种格式都不行,算例都只算一步。

    如果是用稳态算例,可以先迎风算出来流场之后,再加阶数,SIMPLEFoam很稳健,一般不会出现问题。我觉得还是设置的问题。



  • 明白了,谢谢前辈


登录后回复
 

与 CFD中文网 的连接断开,我们正在尝试重连,请耐心等待