CFL number insight

456 views
Skip to first unread message

S.Desanghere

unread,
Dec 16, 2009, 3:29:20 AM12/16/09
to FDS and Smokeview Discussions
Recently, I had a discussion with colleagues concerning the CFL number
(Courant Friedlich and Levi numerical stability criterion).

Some argue that having a CFL number close to unity is an indicator of
a "good numerical resolution" because if the CFL number is too low,
then the time steps are small and resulting numerical diffusion can
introduce errors. But other say that using smaller time steps leads to
better time accuracy. To my opinion, it depends on the numerical
schemes used in the code.

I know that in FDS the time step is calculated in order to have a CFL
number close to unity. Is this done only to reduce computational
time ? Before performing any sensivity study myself, I would like to
hear from you what could be the effect of reducing time step in a FDS
simulation (except increasing computational time !).

Thanks

Sylvain

rmcdermo

unread,
Dec 16, 2009, 10:18:22 AM12/16/09
to FDS and Smokeview Discussions
Sylvain,

The right way to think about this question is in terms of 'Ordinary
Difference Equations' as discussed in Lomax (Springer, 1999). We
first discretize the right-hand-side in space. In FDS, these
approximations are generally second order. You are left with an
ordinary difference equation (ODE) of the form

du/dt = F

As you correctly stated, the accuracy of the solution to this ODE
depends on both the temporal integration scheme and the CFL. FDS uses
a second order scheme (MacCormack's predictor-corrector, a.k.a. SSP-
RK2), meaning that the leading order error term contains an odd power
of the time derivative, which is dispersive, not diffusive.

Now, you are welcome to crank down on the CFL (just about) as tightly
as you want and the best you can ever achieve is to approach the
solution of the ordinary difference equation, which contains an O
(dx^2) error. So, the sensible approach is to set CFL so that the
temporal and spatial errors are roughly equivalent. CFL=1 probably
gets you close, but of course when you look at the modified equation
you will see that this depends on local values of both spatial and
temporal derivatives, and is therefore problem dependent. In my
experience with well-characterized turbulent flows where we
interrogate the entire energy spectrum (see the decaying turbulence
tests in the verification guide) using CFL=1 did not adversely affect
the results (but CFL=0.25 works well too).

What your colleagues said about small time steps causing too much
numerical diffusion is not correct. Decreasing the CFL improves the
temporal accuracy of the solution to the ODE. What they may be
confusing this with (and the reason I said 'just about' above) is that
there is some small value of dt for which numerical round off error
(which accumulates) can become significant. But for all practical
purposes we do not come anywhere close to this in FDS. Consider that
in a compressible formulation, which is totally viable, we would be
stepping at the acoustic CFL and our time steps could be potentially
orders of magnitude smaller.

Hope this is helpful.
Randy

S.Desanghere

unread,
Dec 16, 2009, 12:11:50 PM12/16/09
to FDS and Smokeview Discussions
Randy,

thank you very much for your answer.

So, one can say that the magnitude of the CFL number cannot be seen as
an indicator of the quality of the numerical resolution of the
equation ?


Thanks

Sylvain

rmcdermo

unread,
Dec 16, 2009, 5:05:23 PM12/16/09
to FDS and Smokeview Discussions
That's right. It measures the quality of the temporal resolution of
the 'ordinary difference equation', not the true PDE. If the CFL=>0,
your numerical result will still have O(dx^2) error. If CFL>>1, your
result will be unstable.
Reply all
Reply to author
Forward
0 new messages