I'm looking for a simple, right-traveling wave for the linear shallow water equations (1D). My question: what are the initial conditions (velocity $U_0(x)$ and/or average water height, average velocity) for a simple (single!) right-traveling wave?

I want to create a simple wave solution for the 1D shallow water equations by choosing appropriate initial conditions, just like in this other post. I'm comparing a staggered grid with a non-staggered grid. On the staggered grid, if I have a simple wave traveling to the right, there should not be a left-traveling wave, whereas on the non-staggered grid, there can still be a component with negative group velocity. Just like in the other question, I'm also working with a Gaussian initial wave profile. The problem is that when I use their equation for $m_0(x)$, I still get a (small) left-traveling component on both grids. I don't have access to the book by Leveque, so I don't understand where the equation for $m_0(x)$ comes from. Could someone please tell me what the reasoning behind $m_0(x)$ is or share with me the relevant page(s) from Leveque?

I'm working with linearized shallow water equations, which, I think, is different from their example. It's pretty much the simplest case of shallow water equations: linear equations and no bottom topography. On the staggered grid, the dispersion relation with my discretization scheme (centered-space, leapfrog-time) is

$$\sin(\omega\Delta t) = \frac{(U \pm 2c)\Delta t}{\Delta x}\sin\Big(\frac{k\Delta x}{2}\Big)$$

Where $c = \sqrt{gH}$ with $H$ the average water height and $g$ the gravitational constant. I thought I could just set my initial velocity $U_0(x)$ equal to $2\sqrt{g H}$ or to $2\sqrt{g H_0(x)}$ to eliminate the "-" solution, and have only the right-traveling wave left, but when I do there is a left-traveling trough and I don't know what to make of it. The pictures below are for $U_0(x) = 2\sqrt{g H_0(x)}$. The other thing I tried gives a forward and a backward wave.

Beginning of the solution After a while it looks like this

What are the initial conditions for a simple (single!) right-traveling wave?

Your insights will be very much appreciated.

  • $\begingroup$ Could you please rephrase your question so that it includes at least one question mark "?" making it clear what it is you are asking? $\endgroup$
    – Richard
    Dec 14, 2021 at 21:11

1 Answer 1


The other question you have referred to is about the (nonlinear) shallow water equations. Here you are just asking about the linear wave equation, which is quite different.

To get a purely right-going solution of the 1D wave equation, your initial condition $(\eta, u)^T$ at each value of $x$ should be a multiple of a certain vector. For the linearized shallow water equations with gravitational constant $g$, that vector is

\begin{pmatrix} 1 \\ \sqrt{g/H(x)} \end{pmatrix}

Thus if $\eta(x)$ and $u(x)$ are your initial surface height and velocity, you should have $u(x) = \eta(x)\sqrt{g/H(x)}$. For this initial condition, the exact solution is purely right-going. Numerically, if you are using a multistep method (it sounds like you are) then you may see a very small part going to the left. The magnitude of that part will decrease as you refine your grid.

  • $\begingroup$ are you sure it's division under the square root? If so, where does that come from? $\endgroup$ Dec 15, 2021 at 10:35
  • 1
    $\begingroup$ It comes from linearizing the shallow water equations and computing the eigenvectors of the resulting coefficient matrix. You can find some details for instance in this paper: link.springer.com/article/10.1007/s00024-019-02316-y $\endgroup$ Dec 15, 2021 at 12:12

Your Answer

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

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