Is there a problem with the residual control mechanisms?

Hi people,

I have been some testing simulations for a new case I am working in and one of the things I tested was the residual control values. Here you can find the case. It is a simple incompressible simulation so for the first run I used the default numerical settings and after that I started to play with it. Residual control is supposed to be used to stop iterating once the given values of residuals are reached. However, this is not happening in the simulations I have been doing, I tried the original 1e-5 first, then I jumped to 5e-4 and then 5e-5. In all these simulations I got exactly the same results, shown below. Actually the log file is exactly the same for all the cases I tried.

As you can see, omega should have stopped iterating once residual control values were reached (5e-5 or 5e-4), but it didn’t happen. What’s the reason for this malfunctioning? Some time ago it was working fine in other simulations I did…

Thanks in advance for the help.



Hi @alexroque, the control items you are talking about actually works slightly different than you expect. Just because omega drops below the termination residual doesn’t mean it stops iterating, the meaning of the control is that when all residuals are below their respective value then the simulation terminates and results are written.

Hope this clears that up,

Hi Darren!

Thanks for your help. But if I am not wrong, which is totally possible, in OpenFOAM (and even here in SimScale some time ago) it didn’t work this way, did it? I think it was independent from the other variable values so if omega reaches the desired residual it simply stops iteratig for this variable but the others keep iterating. Only when all of them are below their respective value the simulation stops, as you pointed out. Am I right with that? Or am I living in a kind of parallel world where things worked as I wanted to? I think some months ago it worked this other way here, didn’t it?

I hope you can resolve this existential doubt I have…



Hi @alexroque, I don’t think this ever working this way (at least as far as I remember), maybe your thinking about the tolerances in the solvers? here you can stop iterating if the tolerances reach a relative or absolute tolerance.