CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   implementing the CFL criterion (https://www.cfd-online.com/Forums/main/5496-implementing-cfl-criterion.html)

Ben Houston December 3, 2002 18:14

implementing the CFL criterion
 
Hi all,

I am currently exploring how I should convert my current NS solver to more strictly step within the CFL criterion. Currently I have to generate CFD results at specified times (i.e t0, t1, t2, ... tN) but sometimes I need to make smaller steps.

I know that the CFL condition is determined by the velocity feild. But I am thinking that the CFL condition is also determined by the output of the mass conservation calculation -- unfortunately the way that I have implemented the mass conversation calculation I have to give it a time step. It seems that I should iteratively adjust the time step size by seeing what the results of the mass conservation calculation are for each of the time step sizes. This seems a bit wasteful though.

How do other people determine what the CFL condition is for their simulations?

PS. I am using dt < dc / |u|, where dt is the time step, dc is the cell width and |u| is the maximum velocity in the velocity field after the mass conservation correction.

Thanks for any suggestions

-ben houston.

http://www.exocortex.org/ben

Jim Park December 4, 2002 11:16

Re: implementing the CFL criterion
 
You need to look at the smallest time step over the entire mesh including all flow directions. As in dtmin = min[(dx/|u|), (dy/|v|),(dz/|w|)].

I can usually get away with running a practical time step that's a fraction of the result,

dtuseful = c*dtmin, 0.4 < c < 0.8 typically.

Unless your flow is very time-dependent, you should be able to do a time step with dtuseful, accept the result, then use that result to determine dtuseful for the next time step. That is, you normally won't need to iterate within a time step to change the time step.

Hope this helps.


All times are GMT -4. The time now is 22:38.