This question is a continuation of one of my other questions. I've been trying to show that collocated (non-staggered) grids can suffer from negative group speeds in the linearized shallow water system. I do this by solving the equations for a simple, right-traveling wave crest, so that any left-traveling component can be identified as having negative group-speed. For my initial conditions I use a Gaussian wave profile with initial velocities $u_0(x) = h_0(x)\sqrt{g/h_0(x)}$.
My wave indeed moves in the right direction, but I have trouble with the interpretation. To the left of the crest, a trough appears with a small bump in the middle. This trough moves to the left. I see the same thing on a staggered grid. I can't spot a clear difference between the staggered and the non-staggered grid and I can't see negative group speed.
Is this trough normal? How can I identify the negative group speeds?
EDIT: A comment suggests that I split the wave up into modes and calculate the speed of the modes separately. I'm not really familiar with such decompositions in practice, so I used the discrete fourier transform from this post. I use $2\pi$freqs as the wavenumbers, but I'm not sure if that's correct? If I then use this function on a snapshot of the wave and plug my "wavenumbers" into the formula for the group speed (according to the discretization scheme), I get the following:
I like this because the group speeds on the staggered grid are non-negative. Does this look right? Also, since I'm using the formula for the group speed, does that not make this exercise a circular reasoning? Because even when the numerical solution is exactly the same on both grids, my computation of the group speeds would still get me a different result on both grids.


Aside from a bug, the peft-going part is likely to be the result of using a multistep time discretization. You can avoid it by writing the wave equation in first-order form and applying a Runge-Kutta method in time.
– David Ketcheson Dec 18 '21 at 10:42