CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Convergence (

tutlhino July 4, 2007 05:25

Hello all, I'm currently st
Hello all,

I'm currently studying the convergence of the simpleFoam pitzFaily tutorial.

After recognizing that OF doesn't stop when reaching steady state I used pyFoam to do this.
But when I now want to compute until a certain residual it takes ages, compared to the simulation in cfx!? Has someone else recognised this convergence "probleme"?

It seems like Openfoam is very fast when you want to compute transient simulations, but the convergence of the residuals is very slow!? Or how can this be improved? I took the pitzDaily example and used the GAMG solver with GAMG/DILU preconditioners and experienced that behavior. But also with the standard setting of solver (PBiCG,..) the convergence wasn't much better.


msrinath80 July 4, 2007 07:21

When comparing OpenFOAM with F
When comparing OpenFOAM with Fluent/CFX et al. please remember to make sure the tolerances are the same. To my knowledge, these industry-oriented codes use much higher tolerances for velocity/pressure (or continuity) which yields convergence much faster. Other factors to keep in mind are the discretization schemes used and the grid/mesh type (use the same grid when comparing).

lr103476 July 4, 2007 07:31

Hi Srinath, Could you give
Hi Srinath,

Could you give some hints on how to set the residual tolerances in Fluent, i.e. normalised or scaled and what should be the normalisation factors and convergence criteria for a fair comparison. To be honest, I don't know since Fluent is also not clear in their manuals.

Regards, Frank

msrinath80 July 4, 2007 09:31

I think we need to focus on So
I think we need to focus on Solve -> Monitors -> Residual panel. Decreasing continuity tolerance to 1e-06 and X,Y and Z velocities to 1e-05 with 'scaled residuals' (default) might bring the case closer to OpenFOAM settings. Also note that Fluent only provides upwind schemes (1st and 2nd order), QUICK etc. It is important to emulate the same settings in OpenFOAM. Beyond this even I am at a loss for words. Perhaps someone who is more fluent with FLUENT can comment?

msrinath80 July 4, 2007 09:39

On second thoughts, I think yo
On second thoughts, I think you're right. Fluent's definition of 'scaled residual' is quite confusing.

msrinath80 July 4, 2007 09:42

Maybe unchecking the 'Scale' C
Maybe unchecking the 'Scale' CheckBox in Solve -> Monitors -> Residual dialog box and using the above values will mimic OpenFOAM settings with respect to tolerances?

rolando July 4, 2007 10:07

The residual comparison OpenFO
The residual comparison OpenFOAM - CFX is not quite fair:
In CFX you can choose maxRes and rootMeanSquareRes.
In OpenFoam a weighted sum of absolute residuals is calculated.
So you canīt compare the same things.
I donīt know how the residuals are computed in Fluent.


tutlhino July 4, 2007 11:26

Thanks a lot for your contribu
Thanks a lot for your contribution! As a startpoint I've taken the same mesh for openfoam and cfx, and used the same residuals for the comparison. But it was a real good hint that the residuals are computed different, and I've got to find a solution therefore. But I think in my case a big problem appeared due to the change from PBiCG to GAMG. According to the residual plots GAMG is totally instable compared to PBiCG, which is probably due to my settings. As the pressure and u_y is unstable I'll start with the relaxation factors to fight that problem and try other settings in the SIMPLE-Algorithm (nCorrSteps). Or do you think those high frequent instabilities in the residual (with GAMG) are due to something else

My GAMG-setting for the simpleFoam pitzDaily:

tolerance 1e-06;
relTol 0.1;

smoother GaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair

mergeLevels "1/2";


msrinath80 July 4, 2007 13:44

The following settings probabl
The following settings probably need to be changed. But I'd wait for a second opinion.

mergeLevels "1/2";
nCellsInCoarsestLevel 10;

Also is there a special reason for using relTol 0.1;?

tutlhino July 4, 2007 14:29

No there's no special reason f
No there's no special reason for relTol 0.1, and I'll check the influence on the stability.

With mergeLevels "1/2" I wanted to say 1 or 2 and not one half, so this setting should be fine. And I chose nCellsInCoarsestLevel 10, after some simple time measurements for a certain number of timesteps. But after considerung the convergence and stability I really should think about it again....


All times are GMT -4. The time now is 10:57.