Is this the correct derivation of the CFL condition and how can I interpret the error

finite differencesnumerical methodsstability-theorywave equation

Consider the non-dimensionalised form of the wave equation:

$$ u_{xx} = u_{tt} \tag 1$$

Let $e^n_j$ be the difference between the numerical grid point and the function value at that point:

$$ e^n_j = U^n_j – u(x_j,t_n) \Rightarrow U^n_j = e^n_j + u(x_j,t_n)\tag2$$

where $U^n_j$ is the numerical grid point value at $(j,n)$. Using the central difference approximation, equation $(1)$ can be written as:

$$ {U^{n+1}_j-2U^n_j + U^{n-1}_j \over \Delta t^2} – {U^n_{j+1}-2U^n_j + U^n_{j-1} \over \Delta x^2} = 0 \tag 3$$

Insering expression $(2)$ into equation $(3)$ yields:

$$ {e^{n+1}_j-2e^n_j + e^{n-1}_j \over \Delta t^2} – {e^n_{j+1}-2e^n_j + e^n_{j-1} \over \Delta x^2} + T^n_j= 0 \tag 4 $$

where $T^n_j$ represents the truncation error. The above equation can be reformulated as:

$$ e^{n+1}_j = -e^{n-1}_j + ke^n_{j-1} + 2(1-k)e^n_j + ke^n_{j+1} – \Delta t^2 \Delta x^2 T^n_j \tag 5 $$

where $k = (\Delta t/ \Delta x)^2$. The maximum error at a time step is defined as:

$$E^n = \max(|e^n_j|), j = 0, 1, …,j_{max} \tag 6$$

Now, neglecting the term $\Delta t^2 \Delta x^2 T^n_j$, I wrote:

$$E^{n+1} \leq |-1|E^{n-1} + 2|k|E^n + 2|1-k|E^n \tag 7$$

If $0 \leq \sqrt{k} \leq 1$, then:

$$E^{n+1} \leq E^{n-1} + 2E^n \tag 8$$

I know that $0 \leq \sqrt{k} \leq 1$ represents the CFL condition, so I am not sure the above expression is correct. The way I understand this method, the coefficients of the maximum error values should add up to one. In this case, they add up to three. Doesn't that mean that the error gets bigger and bigger? That means there is no upper bound on the maximum error, right?

Next, if $ \sqrt{k} \geq 1$, then:

$$ E^{n+1} \leq E^{n-1} + 2(2k – 1)E^n \tag 9$$

This means there is no upper bound on the maximum error. This makes sense to me because the summ of the maximum error coefficients is greatter than one.

To summarise, I am trying to understand how to derive the CFL condition using the wave equation. My questions are:

  1. Is expression $(8)$ correct?
  2. If it is correct, then how do I intepretate it? The way I understand it, it means that the error gets bigger with each iteration without a bound, which is probably not correct.
  3. If it is not correct, where did I make a mistake and how should I correct it in order to derive the CFL condition?

Best Answer

I am not sure if you can show it like this. You would probably require to consider e.g. the energy of the solution

$$ E^n = \frac12 \Delta x \sum_j (u_j^n)^2 $$ and show that it stays bounded. This will get quite messy since you have three timestamps: $n-1, n, n+1$.

For an alternative approach you can consult this resource showing stability via von Neumann stability Analysis.

Related Question