CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   when we can say an unsteady problem has converged? (

immortality January 25, 2013 10:16

when we can say an unsteady problem has converged?
3 Attachment(s)
how much should Ux,Uy,global or local continuity residual reach that we can say convergency has occured?
I have attached my solution's figure.
any opinion is appreciated.
whats the condition of convergency in unsteady compressible problems?

immortality January 26, 2013 09:03

is it true that at each time step at a 2-D unsteady problem initial residual of all of p,Ux,Uy should be less than 10^-3?than final residuals are not important?

vatavuk January 26, 2013 10:03

Hi Ehsan,
A reduction of the residuals by three to five orders of magnitude is recommended in book of Ferziguer and Peric. I suggest that you make some test varying the convergence condition (tolerances) and evaluate how they impact the final results.
Best regards,

immortality January 26, 2013 13:49

hi dear paulo mean this reduction should occur in initial residauls?
I don't grasp convergency subject obviously in unsteady problems such that in steady flows is clear .shall not each time reach to convergency?
Can't we suppose at general each time iteration at a unsteady problem like a small duration steady problem alone?then why we compare time steps with eachother.i'm totatally mixed up with this comparison.please tell me some information.

vatavuk January 27, 2013 06:59

Hi Ehsan,
Sometimes we do a transient analysis but we are only interested in the final steady state results. In this case the transient solution is used because it improves convergence or because the transient algorithm is faster than a steady state algorithm.
There are other situations in which we really need to know how the flow evolutes with time, I suppose this is your case. Then you have to be sure that the convergence condition doesn’t cause errors that add up each time step causing a big error in the solution. So, what I was suggesting is that you run a simulation, and then run another dividing all tolerances by ten. Then you compare the results (Ux,Uy etc) at some important time instants, for instance t=0.1, t=0.2 etc. The tolerances must not affect the results, if they do, you must lower them until they don’t affect the results anymore. Another important variable is the time step, if the time step is not small enough, it may cause errors that affect the solution. It would be also interesting to do some comparisons, halving the time step and comparing the results to evaluate it’s influence.
Best regards,

immortality January 27, 2013 13:28

thank you dear Paulo
Do you mean residuals(thats easier tracking by pyFoam) by results or p,Ux,... Themselves?
I've divided tolerances by ten as you said to residuals of variables are same(trend and value) exactly.but global countinuity is lower at second one from -9 order to -10.has the problem converged in your opinion and your experiment?
Thank you.

msuaeronautics January 27, 2013 21:16

Personally, I prefer:

Ux, Ux, Uz = 1e-5 or 1e-6 if possible
p = 1e-3 or 1e-4 (it is usually quite difficult to get it lower than this)
Turbulent variables (k, omega, epsilon etc) 1e-5 or 1e-6

I think you're also asking where this is seen, so for example, you would look for your initial residuals as such:


DILUPBiCG: Solving for Ux, Initial residual = 3.90079e-05,
Your timestep continuity errors are okay as long as they're close to machine zero (in other words, 1e-10 or even smaller).

You may also track convergence if you see your residuals don't get any smaller or larger over a large period of time, though it is best to try and get the actual residual figure down as low is possible.

vatavuk January 28, 2013 15:21

Hi Ehsan,
About your question, I was suggesting that you compare the results of p,Ux, Uy etc, not the residuals.

immortality January 28, 2013 17:22


Originally Posted by vatavuk (Post 404597)
Hi Ehsan,
About your question, I was suggesting that you compare the results of p,Ux, Uy etc, not the residuals.

Hi Paulo
thank you again.i should compare results in folders?or another easier way is possible?:D
I use adjustableRunTime with automatic it better to change it to constant time step for more stability?

vatavuk January 29, 2013 07:19

Hi Ehsan,
To compare all results would be very difficult. I suggest that you choose some important locations in the flow and compare the results in the same locations. You could also draw some streamlines with paraview and compare their position using one tolerance or another. About the time step I think it would be better to use a constant time step for making comparisons, but if the results are similar the time steps would be equal in both simulations. I didn't understand what you mean by more instability, normally we want to avoid instabilities.

immortality January 29, 2013 09:14

thanks.sorry for the mistake!I corrected I don't know how to realize a number in the column list at each folder is related to which point.should i select randomly a number for instance 20th number at the list?

vatavuk January 30, 2013 08:01

Hi Ehsan,
If it's difficult to choose a few points, you could draw some velocity profiles using paraview and make comparisons between the profiles obtained with different tolerances.

diwakaranant February 2, 2013 04:21


I think for unsteady flow, the best way of monitoring convergence is to monitor the variation of time-averaged value of some parameter (eg. Cl_avg, Cd_avg etc.).


diwakaranant February 2, 2013 04:23


I think the best way of monitoring convergence in an unsteady flow is to monitor the variation of time-averaged quantity of some parameter, like Cl_avg, Cd_avg etc.


All times are GMT -4. The time now is 18:35.