4
$\begingroup$

I am interested, how can we get CFL condition for every type of PDE? It's known that for 1st order linear equation $$\frac{\partial u}{\partial t}+a\frac{\partial u}{\partial x}=0 $$ CFL is get from characteristics method, but how can we get in general? Any your advise will be welcome.

$\endgroup$
1
  • $\begingroup$ I don't have permissions to add tags yet. Would someone please add a tag for CFL? I recommend "The CFL condition, named for its originators Courant, Friedrichs, and Lewy, requires that the domain of dependence of the PDE must lie within the domain of dependence of the finite difference scheme for each mesh point of an explicit finite difference scheme for a hyperbolic PDE." from cs.illinois.edu/~heath/iem/pde/wavecfl $\endgroup$
    – David J.
    Mar 7, 2014 at 15:28

1 Answer 1

9
$\begingroup$

For a hyperbolic system of equations, you can write your equation as

$$ \frac{\partial \mathbf{u}}{\partial t} + [\mathbf{A}] \frac{\partial \mathbf{u}}{\partial x} = 0$$

and then perform an eigendecomposition $\mathbf{A} = \mathbf{Q} \mathbf{\Lambda} \mathbf{Q}^{-1} $ where $ \mathbf{\Lambda} $ is a diagonal matrix of the eigenvalues, then defining $\mathbf{w} = \mathbf{Q}^{-1} \mathbf{u}$ you get

$$ \frac{\partial \mathbf{w}}{\partial t} + [\mathbf{\Lambda}] \frac{\partial \mathbf{w}}{\partial x} = 0$$

and the diagonal elements (eigenvalues) are analogous to the wave speed $a$ in your 1D equation.

As for general non-hyperbolic PDEs, you take the same approach and determine the eigenvalues of your operator to determine a stability limit. I think Hirsch's CFD book has a pretty lucid elaboration on the subject.

As a matter of semantics, authors often refer to any non-dimensional step size limit as a "CFL number" (e.g. even for an elliptic equation).

$\endgroup$
2
  • 1
    $\begingroup$ Actually, Section 1 of the CFL paper is titled "The elliptic case". $\endgroup$ Mar 7, 2014 at 7:46
  • $\begingroup$ Ah, quite right, redacted. $\endgroup$
    – Aurelius
    Mar 7, 2014 at 12:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.