Time-step size for coupled implicit simulations

 Register Blogs Members List Search Today's Posts Mark Forums Read

 March 15, 2022, 15:26 #2 Senior Member   Lucky Join Date: Apr 2011 Location: Orlando, FL USA Posts: 5,146 Rep Power: 61 Knowing that you can always lower your time-step size to make the solution more stable and more accurate, you almost never want to use a high number of inner iterations. A Courant number of 50 is equivalent to an under-relaxation factor of ~0.98. So after 2 inner iterations you are more than 0.9996 of your time-step size and after 3 inner iterations you are more than 0.999992 of your time-step size. If the solver was not stable enough, it would've blown up already around here. If you set the number of inner iterations to 15, you are spending another 12 inner iterations to advance the simulation by a tiny fraction of the time-step size at hopes of achieving.... what? It's better to spend those 12 inner iterations doing another 4 time-steps. You could have even done 4 smaller time-steps and gotten a more accurate solution in the same time. Now this situation holds when the solution can converge fast with a high Courant number. So when do we absolutely need a high number of iterations possibly with a lower Courant number? You need this to make sure non-linearities between equations are properly coupled together, i.e. when non-linear coupling is stalling your convergence.

March 16, 2022, 05:59
#3
Member

Pietro
Join Date: Jun 2021
Location: London
Posts: 40
Rep Power: 3
Hi Lucky Tran,

Thanks for the answer. While I agree that for lower time-step size you gain accuracy, I cannot understand how you link the pseudo time-step size (i.e. CFL number of steady simulation, or under-relaxation factor, which at the end represent all the same thing) to the physical time inside a time-step of the implicit simulation, writing that 'after 2 iterations you are already at 0.9996 of the time-step size'.

From how I understand it (and I am probably missing something!) the pseudo-transient simulations occurring at each time-level are solved with algorithms such as SIMPLE. These are iterative algorithms that require under-relaxation to be stable. The lower CFL, the more 'under-relaxed' and therefore stable will be the pseudo-transient simulation.

The SIMPLE algorithm needs a (usually) relatively high number of iterations to converge, depending on the physics of the problem and on the initial conditions. For example, when you run with the steady solver on STAR-CCM+, you usually run for 200-1000 iterations at least before reaching convergence.

I cannot immagine a steady simulation converging in only 2 or 3 iterations (unless the initial conditions are basically the same of the converged solution). I attach as an example the pseudo-transient result inside a time-step of my implicit simulation, showing how the shear moment converges only after 200 inner iterations and how for 50 iterations is not converged.

Long story short: I agree that low time-step size = higher accuracy, but it seems to me that you should always make sure that your pseudo-transient simulation has converged inside such time-level and 2-3 iterations sound very low for that.

Pietro
Attached Images
 iter_study.jpg (81.6 KB, 22 views)

 March 16, 2022, 21:08 #4 Senior Member   Lucky Join Date: Apr 2011 Location: Orlando, FL USA Posts: 5,146 Rep Power: 61 I recommend to read up on implicit underrelaxation. There is an algebraic relation between Courant number, an implicit under-relaxation factor, and the physical timestep. For implicit solvers, even steady equations have a time-step under-the-hood which is related to the Courant number. SIMPLE is just one specific algorithm for solving the pressure-velocity coupling problem, i.e. the continuity and momentum equations. SIMPLE does not do non-orthogonal corrections, relying on outer iterations to do this. Because of this, it's naturally very unstable and requires a lot of under-relaxation. There are other algorithms that are much less unstable (various SIMLPE variants, and non-SIMPLE approaches). You can do transient simulations with 1 inner iteration per time-step. That's exactly what PISO is designed to do for example. You can do this with a pseudo-transient solver if you crank up your Courant number to very large values towards infinity (some texts recommend 1e6, I personally use 2e6). Of course your time-step size needs to be small enough or it blows up. You say you can't imagine it... But people do this all the time. Steady simulations don't reach their steady solution in 1 iteration because the solution is not simply not steady. If you guess the solution as the initial guess, it does converge in 1 iteration. Your plots show the classical problem of stable but not accurate. You converge within each time-step by doing a billion iterations, and it is meaningless because the solution is inaccurate anyway. That's why we recommend not to do too many. If there is ever a situation where you need that many inner iterations per time-step, then you are probably already doing something wrong. That is, you should repeat that plot with the same CFL number and inner iterations, but lower the physical time-step size. pi120 likes this.

 Tags courant number, implicit, pseudo time dual time, time accuracy