CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Omega goes infinity (https://www.cfd-online.com/Forums/openfoam-solving/124237-omega-goes-infinity.html)

callumso September 30, 2013 10:24

Omega goes infinity
 
Hi dear foamers,

I am running simulations for a complex geometry, mesh size around 5 million. I use k-omega SST model and wall function. From the residuals it seems all the equations converge all right. But omega is just always extremely large and goes to infinity in the orifice where mixing of flow occurs and is of interest. Consequently k goes to almost zero in this region where turbulence should be really high. Strangely even omega equation seems to converge.

Have anyone encountered something like this? below is the boundary condition I used for k and omega:

Code:

dimensions      [0 2 -2 0 0 0 0];

internalField  uniform 0.00027;

boundaryField
{
    PILOT
    {
        type            compressible::kqRWallFunction;
        value          uniform 0.00027;
    }
    PLENUM
    {
        type            zeroGradient;
    }
    INLET
    {
        type            fixedValue;
        value          uniform 0.00027;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    DUCT
    {
        type            compressible::kqRWallFunction;
        value          uniform 0.00027;
    }
    VANES
    {
        type            compressible::kqRWallFunction;
        value          uniform 0.00027;
    }
    PASSAGE
    {
        type            compressible::kqRWallFunction;
        value          uniform 0.00027;
    }
    BELLMOUTH
    {
        type            compressible::kqRWallFunction;
        value          uniform 0.00027;
    }
}

Code:

dimensions      [0 0 -1 0 0 0 0];

internalField  uniform 2.6;

boundaryField
{
    PILOT
    {
        type            compressible::omegaWallFunction;
        Cmu            0.09;
        kappa          0.41;
        E              9.8;
        value          uniform 0.00027;
    }
    PLENUM
    {
        type            zeroGradient;
    }
    INLET
    {
        type            fixedValue;
        value          uniform 0.1813;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    DUCT
    {
        type            compressible::omegaWallFunction;
        Cmu            0.09;
        kappa          0.41;
        E              9.8;
        value          uniform 0.00027;
    }
    VANES
    {
        type            compressible::omegaWallFunction;
        Cmu            0.09;
        kappa          0.41;
        E              9.8;
        value          uniform 0.00027;
    }
    PASSAGE
    {
        type            compressible::omegaWallFunction;
        Cmu            0.09;
        kappa          0.41;
        E              9.8;
        value          uniform 0.00027;
    }
    BELLMOUTH
    {
        type            compressible::omegaWallFunction;
        Cmu            0.09;
        kappa          0.41;
        E              9.8;
        value          uniform 0.00027;
    }
}

The numerical schems look like below:

Code:

ddtSchemes
{
    default        Euler;
}

gradSchemes
{
    default        Gauss linear;
    grad(p)        Gauss linear;
}

divSchemes
{
    default        none;
    div(phi,U)      Gauss limitedLinearV 1;
    div(phid,p)    Gauss limitedLinear 1;
    div(phi,K)      Gauss linear;
    div(phi,h)      Gauss upwind;
    div(phi,k)      Gauss limitedLinear 1;
    div(phi,epsilon) Gauss limitedLinear 1;
    div(phi,R)      Gauss upwind;
    div(phi,omega)  Gauss limitedLinear 1;
    div((rho*R))    Gauss linear;
    div(R)          Gauss linear;
    div(U)          Gauss linear;
    div((muEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default        none;
    laplacian(muEff,U) Gauss linear corrected;
    laplacian(mut,U) Gauss linear corrected;
    laplacian(DkEff,k) Gauss linear corrected;
    laplacian(DepsilonEff,epsilon) Gauss linear corrected;
    laplacian(DREff,R) Gauss linear corrected;
    laplacian(DomegaEff,omega) Gauss linear corrected;
    laplacian((rho*(1|A(U))),p) Gauss linear corrected;
    laplacian(alphaEff,h) Gauss linear corrected;
}

interpolationSchemes
{
    default        linear;
}

snGradSchemes
{
    default        corrected;
}

fluxRequired
{
    default        no;
    p              ;
}

Code:

solvers
{
    p
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance      1e-08;
        relTol          0.01;
    }

    pFinal
    {
        $p;
        tolerance      1e-08;
        relTol          0;
    }

    "(rho|U|h|k|epsilon|omega)"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-08;
        relTol          0.01;
    }

    "(rho|U|h|k|epsilon|omega)Final"
    {
        $U;
        tolerance      1e-08;
        relTol          0;
    }

}

PIMPLE
{
    momentumPredictor yes;
    nOuterCorrectors 4;
    nCorrectors    2;
    nNonOrthogonalCorrectors 1;
    rhoMin          rhoMin [ 1 -3 0 0 0 ] 0.5;
    rhoMax          rhoMax [ 1 -3 0 0 0 ] 2.0;

    residualControl
    {
        "(U|k|epsilon)"
        {
            relTol          0;
            tolerance      0.000001;
        }
    }
}

relaxationFactors
{
    fields
    {
        "p.*"          0.7;
        "rho.*"        0.9;
    }
    equations
    {
        "(U|h|k|epsilon|omega).*" 0.7;
    }
}

I fiddled with the numerical scheme a bit (e.g. use upwind scheme, use very low relaxation factors, etc). But nothing changed. I am still getting this weird infinite omega. Below is the residual trace:

Quote:

Courant Number mean: 0.002384836 max: 10.06362
deltaT = 4.105397e-05
Time = 0.001018885

diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
PIMPLE: iteration 1
DILUPBiCG: Solving for Ux, Initial residual = 0.009422393, Final residual = 1.336213e-08, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.005013185, Final residual = 1.673009e-06, No Iterations 1
DILUPBiCG: Solving for Uz, Initial residual = 0.004954721, Final residual = 1.658077e-06, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 0.008704607, Final residual = 1.068494e-08, No Iterations 1
DICPCG: Solving for p, Initial residual = 0.02191301, Final residual = 8.992473e-05, No Iterations 4
DICPCG: Solving for p, Initial residual = 0.0001136703, Final residual = 1.065346e-06, No Iterations 17
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.221163e-06, global = -8.451316e-07, cumulative = -0.0001596296
rho max/min : 1.193396 1.160766
DICPCG: Solving for p, Initial residual = 0.006488465, Final residual = 2.687909e-05, No Iterations 4
DICPCG: Solving for p, Initial residual = 3.438664e-05, Final residual = 3.410989e-07, No Iterations 36
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.218193e-06, global = -8.500729e-07, cumulative = -0.0001604797
rho max/min : 1.193396 1.160765
PIMPLE: iteration 2
DILUPBiCG: Solving for Ux, Initial residual = 0.006534682, Final residual = 9.631645e-09, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.004523631, Final residual = 6.797623e-07, No Iterations 1
DILUPBiCG: Solving for Uz, Initial residual = 0.004480604, Final residual = 6.662678e-07, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 0.009199319, Final residual = 1.208279e-08, No Iterations 1
DICPCG: Solving for p, Initial residual = 0.008744652, Final residual = 3.671174e-05, No Iterations 4
DICPCG: Solving for p, Initial residual = 4.807335e-05, Final residual = 4.056757e-07, No Iterations 17
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.218818e-06, global = -8.48645e-07, cumulative = -0.0001613283
rho max/min : 1.193396 1.160793
DICPCG: Solving for p, Initial residual = 0.002611529, Final residual = 1.103145e-05, No Iterations 4
DICPCG: Solving for p, Initial residual = 1.45108e-05, Final residual = 1.270581e-07, No Iterations 42
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.217819e-06, global = -8.509643e-07, cumulative = -0.0001621793
rho max/min : 1.193396 1.160792
PIMPLE: iteration 3
DILUPBiCG: Solving for Ux, Initial residual = 0.004572449, Final residual = 6.991547e-09, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.003637689, Final residual = 2.368283e-07, No Iterations 1
DILUPBiCG: Solving for Uz, Initial residual = 0.003609003, Final residual = 2.530072e-07, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 0.005076553, Final residual = 6.463705e-09, No Iterations 1
DICPCG: Solving for p, Initial residual = 0.004023061, Final residual = 1.699759e-05, No Iterations 4
DICPCG: Solving for p, Initial residual = 2.310766e-05, Final residual = 2.116908e-07, No Iterations 17
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.217778e-06, global = -8.498158e-07, cumulative = -0.0001630291
rho max/min : 1.193396 1.160799
DICPCG: Solving for p, Initial residual = 0.001204748, Final residual = 5.135975e-06, No Iterations 4
DICPCG: Solving for p, Initial residual = 6.987517e-06, Final residual = 6.530037e-08, No Iterations 41
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.217191e-06, global = -8.507411e-07, cumulative = -0.0001638799
rho max/min : 1.193396 1.160799
PIMPLE: iteration 4
DILUPBiCG: Solving for Ux, Initial residual = 0.003182333, Final residual = 5.051115e-09, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.00280553, Final residual = 2.892812e-09, No Iterations 3
DILUPBiCG: Solving for Uz, Initial residual = 0.002785603, Final residual = 2.954405e-09, No Iterations 3
DILUPBiCG: Solving for h, Initial residual = 0.00268957, Final residual = 3.386828e-09, No Iterations 1
DICPCG: Solving for p, Initial residual = 0.00198696, Final residual = 8.607319e-06, No Iterations 4
DICPCG: Solving for p, Initial residual = 1.217912e-05, Final residual = 1.181804e-07, No Iterations 20
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.217629e-06, global = -8.508334e-07, cumulative = -0.0001647307
rho max/min : 1.193396 1.160801
DICPCG: Solving for p, Initial residual = 0.0005952442, Final residual = 2.607833e-06, No Iterations 4
DICPCG: Solving for p, Initial residual = 3.687937e-06, Final residual = 9.698358e-09, No Iterations 67
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.217111e-06, global = -8.50822e-07, cumulative = -0.0001655815
rho max/min : 1.193396 1.160801
DILUPBiCG: Solving for omega, Initial residual = 0.1111112, Final residual = 5.200637e-19, No Iterations 1
bounding omega, min: -1.173741e+38 max: 2.166221e+50 average: 8.778702e+43
DILUPBiCG: Solving for k, Initial residual = 0.048428, Final residual = 2.335364e-18, No Iterations 1
bounding k, min: -5.711563e-06 max: 0.0734092 average: 0.0005477621
PIMPLE: not converged within 4 iterations
ExecutionTime = 185.73 s ClockTime = 187 s
I went through some related threads but unfortunately none of the advice really helps.

I run the same case on Fluent and there is no problem at all. I tried a finer mesh, 12million cells. But it still doesn't work on OpenFOAM. Can anyone help me out with this? Thank you in advance.

Callum

Henning86 September 30, 2013 10:42

i had a comparable problem with RNGkEpsilon.

i switched to kOmegaSST and used USpalding wall function and that solved the problem

or try to start with higher initial values for omega one magnitude higher that sometimes work.

callumso October 1, 2013 09:57

Hi Henning,

Thank you for the advice. Unfortunately, that doesn't solve my problem. All the boundary conditions of mut give similar result. omega just went wrong at the very first time step and never recovered.

I also tried the k-epsilon models. Similar problem occurred as epsilon went infinite and k became zero almost everywhere.

I also tried to bound omega from above and hopefully got the simulations past the initial transient. Unfortunately this didn't work either and k equation ran into problem.

I am not sure whether this is a problem related to the boundary conditions. I checked the k and omega values and they both looked alright at the boundary and omega didn't go to infinity at the walls. But somehow at the interior points omega just went haywired.

Above is the problem with rhoPimpleFoam.

I also tried rhoSimplecFoam even though the problem was meant to be an unsteady one. But the simulation simply crashed after 4 time steps.

Fluent is alright for the same problem. I am kind of stuck as I have use a reliable open source code to run the followup simulations.

This seems to be quite a weird problem....and none of the people around has a clue. Could anyone here provide me more advice on this? Thank you in advance.

Callum

RodriguezFatz October 2, 2013 04:37

Hi callumso,

I started with OpenFoam just some weeks ago and also have Fluent licences.
From the limited knowledge I gained during this time I am pretty sure that you need some limiters in the right places. Fluent uses limiters everywhere.

Try to use
Code:

gradSchemes
{
    default            faceLimited Gauss linear 1.0;
}

for the first shot. Then, I would try:
Code:

divSchemes
{
 
    default        upwind phi;  // or linearUpwind phi...
}

If that doesn't work maybe play with the interpolationScheme.

callumso October 2, 2013 06:32

Thanks Rodriguez. Yes, that's the solution. I use the limiters in the gradient schemes of the turbulence variables and it seems to solve the problem.

I wanted to do something like:

grad(omega) cellMDLimited Gauss vanLeer01 phi 1;

But the code wants to read one more word after 'phi'. I don't know what it should be, as it simply can be any word (I put in a random word like 'gorgeous' and it worked).

Do you have any clue what that word should be and what it will do?

Thanks a lot.

Callum

RodriguezFatz October 2, 2013 07:52

No, sorry. I am struggling with the same things. Unfortunately, the numerics "help" (http://www.openfoam.org/docs/user/fvSchemes.php) is not a very reliable source, since it has some typos and old version examples itself...
Also looking into the code doesn't help me... Would be nice to have some more examples of usage.


All times are GMT -4. The time now is 13:31.