CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   RSM convergence (http://www.cfd-online.com/Forums/openfoam-solving/72085-rsm-convergence.html)

mcarpe January 25, 2010 07:33

RSM convergence
 
Hi all,

I need some advice...

I'm running RANS (with the LRR Reynold Stress Turbulence Model) simulations for atmospheric flow over a regular array of simple buildings. I'm aware that RSM models are notoriously tricky to get converged but, unfortunately, I must use it (or I can run LES, but I'd prefer not to step in that field... yet).

The problem is that it seems like I'm not able to reach complete convergence, at least basing this on the (initial) residuals only. While I can consider Ux residuals as ~ converged (they go flats at ~ 1e-04), I cannot say the same for other variables (notably p, whose residuals remains ~0.005).

I tried with kEpsilon and I was able to reach convergence (residuals <1e-04). Searching in this forum I've discovered how to, at least, start with a converging RSM simulation by initialise it with a partially converged kEpsilon simulation. Unfortunately this doesn't help after a good number of iterations, when the residuals start becoming flat.

Initially I tried with simpleFoam (steady state), but soon I discovered that the RSM model is able to catch some unsteady features of the flow (in particular vortex shedding) and so I couldn't expect it to converge with steady state simulations. I'm now running pisoFoam and I'm using second order discretisation schemes.

The mesh I'm using is a fine Cartesian mesh with low expansion ratios. I'm going to try further refinements in some parts of the domain, but I'm running out of tricks, now. Is anyone able to suggest me anything else? Is there anything I'm doing wrong in your opinion?

Please ask me if you need more information on my case study.
Thanks in advance for your help!

Matteo

mcarpe February 15, 2010 12:24

small improvements
 
2 Attachment(s)
Hello,

after some useful advice and more tweaking of the boundary conditions I was able to improve the results.
I'm now able to reach values of residuals for almost all variables lower than 1e-05 with first order discretisation (I need second order, though...). The only exception is the p residual which does not go below 0.002.

Does anyone have any idea?

For info, these are my 'system' files:

controlDict:

Code:

application    pisoFoam;

startFrom      latestTime;

stopAt          endTime;

endTime        2030;

deltaT          0.0025;

writeControl    runTime;

writeInterval  10;

purgeWrite      0;

writeFormat    ascii;

writePrecision  6;

writeCompression uncompressed;

timeFormat      general;

timePrecision  8;

runTimeModifiable yes;

libs ( "libOpenFOAM.so" "libgroovyBC.so" ) ;

fvSchemes:

Code:

ddtSchemes
{
    default        Euler;
}

gradSchemes
{
    default        Gauss linear;
}

divSchemes
{
    default        none;
    div(phi,U)      Gauss upwind;
    div(phi,epsilon) Gauss upwind;
    div(phi,R)      Gauss upwind;
    div(R)          Gauss upwind phi;
}

laplacianSchemes
{
    default        none;
    laplacian(nuEff,U) Gauss linear corrected;
    laplacian((1|A(U)),p) Gauss linear corrected;
    laplacian(DepsilonEff,epsilon) Gauss linear corrected;
    laplacian(DREff,R) Gauss linear corrected;
}

interpolationSchemes
{
    default        linear;
}

snGradSchemes
{
    default        corrected;
}

fluxRequired
{
    default        no;
    p              ;
}

fvSolution:

Code:

solvers
{
    p
    {
        solver          GAMG;
        tolerance        1e-07;
        relTol          0.01;
        smoother        GaussSeidel;
        nPreSweeps      0;
        nPostSweeps      2;
        cacheAgglomeration on;
        agglomerator    faceAreaPair;
        nCellsInCoarsestLevel 10;
        mergeLevels      1;
    }

    pFinal
    {
        solver          GAMG;
        tolerance        1e-09;
        relTol          0.001;
        smoother        GaussSeidel;
        nPreSweeps      0;
        nPostSweeps      2;
        cacheAgglomeration on;
        agglomerator    faceAreaPair;
        nCellsInCoarsestLevel 10;
        mergeLevels      1;
    }

    U
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-09;
        relTol          0.001;
    }

    k
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-09;
        relTol          0.001;
    }

    epsilon
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-09;
        relTol          0.001;
    }

    R
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-09;
        relTol          0.001;
    }

    nuTilda
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-09;
        relTol          0.001;
    }
}

PISO
{
    nCorrectors    3;
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue      0;
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
}

relaxationFactors
{
    p              0.4;
    U              0.6;
    k              0.7;
    epsilon        0.7;
    R              0.7;
    nuTilda        0.7;
}

Thanks
Matteo

idrama May 6, 2010 09:51

Hello mcarpe,

I'd like to know: How have you determine the relaxation factors. I'd like to learn that.

Cheers

mcarpe May 6, 2010 10:06

Quote:

Originally Posted by idrama (Post 257812)
Hello mcarpe,

I'd like to know: How have you determine the relaxation factors. I'd like to learn that.

Cheers

I think the under relaxation factors are not used by the pisoFoam solver.
They are in my fvSolution file because of some previous attempts with simpleFoam. Anyway I'm afraid there isn't any simple rule for determining the UR factors.

Best
Matteo

idrama May 6, 2010 12:06

Hello mcarpe,

in interFoam they work. I had problems i my case, but I used your RF's. and I have convergence now. However, I had to modify them to 0.4 0.4 0.4 and so on.

kinda regards!


All times are GMT -4. The time now is 22:17.