CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

interFoam - velocities too high with k-omega SST

Register Blogs Community New Posts Updated Threads Search

Like Tree4Likes
  • 1 Post By simrego
  • 1 Post By simrego
  • 1 Post By simrego
  • 1 Post By simrego

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 12, 2019, 09:39
Default interFoam - velocities too high with k-omega SST
  #1
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
Hello everybody,

I'm really in need as I am writing my master thesis and do have a few questions about the accuracy of my simulation.

The situation:
Simply said I need to simulate the filling process of a basin. There is no outlet at the basin, apart from the atmosphere. So I only use the inlet, the atmosphere and the walls as boundarys. The whole should run under normal conditions, so no increased pressure or anything else.
At the inlet 5 m³/s run into the empty basin.

Now I have results of an engineering office available, which simulated exactly this basin already. However, their speeds differ slightly from mine. For illustration I add a few pictures where you can see the approximate size.
My question now is whether the deviations are simply model-dependent or whether there is an error in my calculations? I already did some research and tried different boundary conditions (e.g. nutUSpaldingWallFunction instead of nutkWallFunction) but this had no effect on my results.

I would be very thankful if someone could check my datas or give me a hint as the end of my master's work is approaching.
I suspect so far that the deviations are either due to the turbulence model used or to inaccuracies in my fvsolutions.
Unfortunately I don't know with which turbulence model the engineering office achieved the results.

Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField   uniform 0.0212415;

boundaryField
{
    wall
    {
        type        kqRWallFunction;
        value       uniform 0.0212415;
    }
    
    atmosphere
    {
        type        inletOutlet;
        inletValue  uniform 0.0212415;
        value       uniform 0.0212415;
    }

    inlet
    {
        type            fixedValue;
        value           uniform 0.0212415;
    }



}
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField   uniform 0;

boundaryField
{

    wall
    {
        type        nutkWallFunction;
        value       uniform 0;
    }
    

    atmosphere
    {
        type        inletOutlet;
        inletValue  uniform 0;
        value       uniform 0;
    }

    inlet
    {
        type        calculated;
        value       $internalField;
    }



}
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      omega;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField   uniform 2.597565634;

boundaryField
{
    
    wall
    {
        type        omegaWallFunction;
        value       uniform 2.597565634;
    }
    
    atmosphere
    {
        type        inletOutlet;
        inletValue  uniform 2.597565634;
        value       uniform 2.597565634;
    }

    inlet
    {
        type            fixedValue;
        // mixingLength    0.21; //lentgh scale 10% of characteristic dimensions
        value           uniform 2.597565634;
    }



}
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       volScalarField;
    object      p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField   uniform 0.0;

boundaryField
{
    wall
    {
        type        fixedFluxPressure;
        value       uniform 0.0;
    }
    
    atmosphere
    {
        type        totalPressure;
        p0          uniform 0.0;
        U	          U;
        Phi	        phi;
        Rho	        rho;
        Psi	        none;
        Gamma	      1;
        value	      uniform 0;
    }

    inlet
    {
        type        fixedFluxPressure;
        gradient    uniform 0;
        rho         totalPressure;
        value       uniform 0;
    }

}
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       volVectorField;
    location    "0";
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField   uniform (0 0 0);

boundaryField
{
    inlet
    {
        type               flowRateInletVelocity;
        volumetricFlowRate constant 5;
        extrapolateProfile true;
        value              uniform (0 0 0);
    }
    
    atmosphere
    {
        type            pressureInletOutletVelocity;
        value           uniform (0 0 0);
    }

    wall
    {
        type            noSlip;
    }
}
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //



ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default             cellMDLimited Gauss linear 1;
    grad(U)             cellMDLimited Gauss linear 1;
    grad(alpha)         cellMDLimited Gauss linear 1;
}

divSchemes
{
    // Use second-order accurate convection
    div(rhoPhi,U)     Gauss linearUpwindV grad(U);
    div(phi,alpha)    Gauss vanLeer;
    div(phirb,alpha)  Gauss interfaceCompression;
    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
    div(phi,k)        Gauss upwind;
    div(phi,omega)    Gauss upwind;
    div(phi,R)        Gauss upwind;
    div(R)            Gauss linear;
    div(phi,nuTilda)  Gauss upwind;
}

laplacianSchemes
{
    default         Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         corrected;
}

wallDist
{
    method meshWave;
}
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

PIMPLE
{
    momentumPredictor no;
    nOuterCorrectors 3;
    nNonOrthogonalCorrectors 1;
    nCorrectors         3;

}


solvers
{
    pcorr
    {
        solver           PCG;
        preconditioner	 DIC;
        tolerance        1e-10;
        relTol           0.0;  
    }
    
    pcorrFinal
    {
        solver           PCG;
        preconditioner	 DIC;
        tolerance        1e-7;
        relTol           0.0;  
    }

    p_rgh
    {
        solver           PCG;
        preconditioner	 DIC;
        tolerance        1e-07;
        relTol           0.05;  
    }

    p_rghFinal
    {
        solver           PCG;
        preconditioner	 DIC;
        tolerance        1e-07;
        relTol           0.0;  
    }

 
    "alpha.*"
    {
        nAlphaCorr      2;
        nAlphaSubCycles 4;
        cAlpha          2;

        MULESCorr       yes;
        nLimiterIter    3;

        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-8;
        relTol          0;
    }
    
    "(U|k|omega)"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-06;
        relTol          0;
    }

    "(U|k|omega)Final"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-08;
        relTol          0;
        
    }

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

relaxationFactors
{
    // Conservative settings to solve reliably on bad
    // meshes
   
   
        p               0.3;
        U               0.7;
        //UFinal          1;
        k               0.7;
       // kFinal          1;
        omega           0.7;
       // omegaFinal      1;
    

}
Another question relates to the picture with the two representations. Can someone explain to me why they are so different or which one is the more realistic? The lower representation results from the fvSolutions mentioned above. At the upper one I used GAMG as solver for the print and alpha:


nAlphaCorr 2;
nAlphaSubCycles 1;
cAlpha 1;

The rest is completely the same, except for the grid width, but these "waves" also occurred with the same grid width. The upper result would suit me better as a comparison to the pattern solution, but I don't know where this difference results from.

ergebnis_bericht.JPG

ergbnis.jpg
Fool is offline   Reply With Quote

Old   February 12, 2019, 10:58
Default
  #2
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
Hi!
Just a question. Did your equations converged in every timesteps?
I think you should increase your nOuterCorrectors in the PIMPLE loop. At least 20-40 or even more. And let the solver step forward based on your residuals. Not the loop number.
The first steps may need many loop iterations then it should decrease.
And also you can use a relTol with 0.01 for example. I think you don't need that tight tolerances for the linear solvers.
minh khang likes this.
simrego is offline   Reply With Quote

Old   February 12, 2019, 11:04
Default
  #3
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
edit:
It dropped an error for the previous message and I wrote it again. Just ignore this post.
simrego is offline   Reply With Quote

Old   February 12, 2019, 11:12
Default
  #4
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
Thanks so far.

This might be a stupid question but how do I know if it converged in every timestep?
For now i only checked the residuals with gnuplot. Is that what you mean? You can see them in the picture. I didn't get the pressure displayed because it covered up the other values.

And what do you mean by "let the solver step forward.."?

residuals.png
Fool is offline   Reply With Quote

Old   February 12, 2019, 11:22
Default
  #5
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
Convergence:
Check slide 119: http://www.wolfdynamics.com/wiki/fvm_crash_intro.pdf
I can't see your residuals. Where should I find it? :S


"let the solver step":
Use residualControl in the PIMPLE dict. You can define there the goal residual for every variable. And when all of your residuals are under this value, the solver will step to the next timestep.
simrego is offline   Reply With Quote

Old   February 12, 2019, 11:31
Default
  #6
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
Sorry, I forgot to put the picture in. x)

Okay, I've already tried this once but then my delta T was getting smaller and smaller. I used to use

residualControl
{
U 1e-05;
p_rgh 1e-04;
}

Unfortunately I don't have the log file anymore. But I remember that it starts after 3-4 seconds. Were my values possibly too small?

I will check the slides, thank you!
Fool is offline   Reply With Quote

Old   February 12, 2019, 11:40
Default
  #7
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
Noone knows. But without them it's a bit weird to put your results into your master thesis.
You should prove that your solver is converged.
And if you had unconverged timesteps, your results are mostly garbage.
Fool likes this.
simrego is offline   Reply With Quote

Old   February 12, 2019, 11:45
Default
  #8
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
Sorry I just saw your residuals. I think they are mostly fine, but that Uz is a bit high.
Fool likes this.
simrego is offline   Reply With Quote

Old   February 12, 2019, 19:26
Default
  #9
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
Thank you so much for your help. I could now set the residual controls to converge my simulation. Approximately after 5-6 iIterations. But do I have to turn off the momentumPredictor for interFoam? Somewhere I read that they are not so relevant in Interfoam. I am unsure whether and how this can influence my results.

I hope for better results. But if anyone has further advice, I would be very grateful.

.. forget the picture below
Attached Images
File Type: jpg p_rgh.JPG (37.5 KB, 32 views)

Last edited by Fool; February 12, 2019 at 20:35.
Fool is offline   Reply With Quote

Old   February 13, 2019, 03:56
Default
  #10
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
Honestly I still don't know for sure when should you use predictor and when not. But as I know if you use, it shouldn't be a problem. But for interFoam I found the same as you, and previously I made some test cases and the results were the same with and without predictor but you can save some computation time.


And what about your results? Convergence was the problem or there is something else?


(
I saw in the email from cfd-online that you ask: "Now I'm a bit confused about the residuals of p_rgh. Can someone explain me the behavior of it?"
This is the behaviour what you can see in the pdf I sent you earlier. But there are many iterations and it seems like an orange rectangle. But this is just the p residual falling down, and jump up at the next timestep. Fall down again, then step...
)
Fool likes this.
simrego is offline   Reply With Quote

Old   February 13, 2019, 13:50
Default
  #11
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
Thank you very much again. The results will take some time because the geometry is very large. So far only 10 seconds have been simulated and 7 iteration steps are still being performed.
My controlDict looks like this at the moment:

deltaT 0.001;
maxCo 0.6;
maxAlphaCo 1;
maxDeltaT 1;

Do you think I should increase deltaT a bit to reduce the simulation time?
Fool is offline   Reply With Quote

Old   February 27, 2019, 13:23
Default
  #12
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
can anyone tell me if I need relaxation factors for interfoam with PIMPLE if it converges without too?
I had previously set relaxation factors, but with p_rhg = 0.3 it took interFoam much longer to converge. Sometimes it even didn't converge at all.
Fool is offline   Reply With Quote

Old   February 27, 2019, 14:52
Default .
  #13
Member
 
Join Date: Nov 2015
Posts: 38
Rep Power: 11
WaterHammer1985 is on a distinguished road
Check out Section 6 on this page:

https://openfoamwiki.net/index.php/O...hm_in_OpenFOAM
WaterHammer1985 is offline   Reply With Quote

Old   February 28, 2019, 19:17
Default
  #14
New Member
 
David
Join Date: Oct 2018
Posts: 27
Rep Power: 8
Fool is on a distinguished road
okay, well, thank you. But I mean what does it mean when a simulation converges under exactly the same settings without relaxationfactors faster than with?
Fool is offline   Reply With Quote

Reply

Tags
basin, filling, interfoam, k-omega sst model, turbulence


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Weird result by k omega SST bingo641 OpenFOAM 3 May 28, 2018 00:05
Setting change from k omega to k omega SST bingo641 OpenFOAM Programming & Development 0 May 22, 2018 06:15
K-Omega SST BC set up for omega and K joneill053 OpenFOAM Pre-Processing 2 July 10, 2017 15:29
Interfoam Microchannel flow parasitic velocities cfd_user2011 OpenFOAM 2 June 12, 2011 16:43
Multicomponent fluid Andrea CFX 2 October 11, 2004 06:12


All times are GMT -4. The time now is 21:26.