How can we determine the numerical dispersion relation of a Spectral Element Method which leads to coupled systems of algebraic equations?

What approaches to do analysis of dispersion relations is available?


The key steps are to consider the advection equation $u_t + au_x = 0$ where $a=\omega/k$ is the advection speed. Exact solutions to this equation is of the form $u(x,t) = f(x-at)$, where $f(y)$ is an arbitrary function.

For example, discretize using a standard Galerkin method we derive the weak form $\int_\Omega v u_t dx + \int_\Omega a u_x = 0$

Assuming that the SEM solution is of the form $u(x,t) = \sum_j u_j N_j(x)$

and selecting the test functions $v=N_i(x)$, we can derive the algebraic system of equations $M \frac{d}{dt} {\bf u} + a S {\bf u} = 0$

where $M_{ij} = \int_\Omega N_i N_j dx, \quad S_{ij} = \Omega N_i N_j' dx$

Assuming the solution ansatz $u(x,t) = A \exp( i (k x - \omega t) )$ we can insert this in the solution vector to derive a generalised eigenvalue problem of the form $-i \omega M {\bf u} + a S {\bf u} = 0$

We can introduce a dimensionless variable $-i \Omega M {\bf u} + S {\bf u} = 0$

where $\Omega = \frac{\omega h}{a}$, $h$ is the element size and $a$ is the advection speed.

By solving for the eigenpairs $(v,\lambda)$ of the generalised eigenvalue problem $Av=Bv\lambda$, we can obtain estimates of the angular frequency $\omega$ which can be used to characterise the numerical dispersion. The $\lambda\approx \Omega$.

In Matlab this can be implemented as

B = 1i*M; A = S; [V,D] = eig(A,B);

where D contains the eigenvalues of the system and V the eigenvectors. The numerical value contained in D that matches the analytical the closest is assumed to be the approximation to the physical eigenmode.

Also, it is noted that Both M and S is constructed to be periodic.

  • $\begingroup$ In your second equation, what is "c"? You seem to be switching between "S" and "A" (which is also used in your Ansatz); is there a difference? $\endgroup$ Feb 6 '15 at 16:02
  • $\begingroup$ Made some minor corrections, to fix the small errors in notation. Than you. $\endgroup$ Feb 7 '15 at 20:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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