This question concerns the 1-dimensional (i.e. only one spatial dimension) shallow water equations (SWE) shown below and how to find initial conditions such that we obtain a travelling pulse/wave instead of the typical water droplet scenario that yields two travelling waves in opposite directions (this corresponds to setting the momentum $m$ to zero everywhere as initial condition). Also, I use the Roe scheme to solve this problem numerically.

The SWEs are

$$ \begin{align} \begin{pmatrix} h \\ m \end{pmatrix}_{t} + \begin{pmatrix} m \\ \frac{m^{2}}{h} + \frac{1}{2} gh^{2} \end{pmatrix}_{x} = \begin{pmatrix} 0 \\ -ghB_{x} \end{pmatrix}, \end{align} $$

where $B(x)$ denotes the bottom's elevation (over the $x$-axis), or the bathymetry if you will. I will set $B=0$, so we do not have to worry about reflections. Let's say I set the initial data for the state variable $h$ to $h(x,0)=\phi(x)$, where $\phi$ denotes some Gaussian. How do I construct a intitial condition for $m$ such that I obtain a single travelling pulse in my simulation? See figure below of the results I obtain for zero momentum initial data.

enter image description here

What I would like is just one "bump". I have tried setting the initial momentum as large as possible for the higher water staples and also positive, so that (in my mind) we will get a right-going wave. This led to spurious solutions unfortunately. I read somewhere that you have to consider eigenvectors to obtain such initial data, but I don't understand what they mean. Eigenvectors of the Roe-average-matrix?

Reply to Ketcheson's answer:

Yes, this is what I found in LeVeque's book (right after I posted my question). I am looking at those integral curves in Figure 13.12. Is it the case that $u_{0}(0)$ and $h_{0}(0)$ are always equal to zero, or can be set to any point in the state space, e.g. zero? What I am looking for specifically is a closed expression for $u_{0}(x)$ (or $m_{0}(x)$) given $h_{0}(x)$, so if I understand this correctly I would obtain

$$ \begin{align} &\text{Given:}& h_{0}(x) &= H + a\exp\left(-\frac{(x-L/2)^{2}}{w^{2}}\right), \\[3mm] &\text{simple wave going rightwards}\implies& u_{0}(x) &= 2\sqrt{gh_{0}(x)}. \end{align} $$

Here I have just set $h_{0}(0)=0$ and $u_{0}(0)=0$, but this seems unsatisfactory since $h_{0}(0)=H\equiv1$ with my initial data. Now, according to the integral curves in Fig 13.12, I may choose $h_{*}=h_{0}(0)=1$ and $m_{*}=m_{0}(0)=0$. I then obtain as a closed expression for $u_{0}$ (or $m_{0}(0)$ rather)

$$ \begin{align} m_{0}(x) = 2h_{0}(x)\left(\sqrt{g}-\sqrt{gh_{0}(x)}\right). \end{align} $$

This is according to equation (13.31) in LeVeque's book. Is this the correct formulation? Thank you for your time.


What you are looking for is known as a simple wave solution, in which the variation in the solution belongs entirely to one characteristic family. If you had a linear hyperbolic system, this would just mean that your initial data should be proportional to a particular eigenvector of the flux Jacobian. Since you have a nonlinear system, it's a bit more complicated. You want your initial data to all lie along a singe integral curve of the shallow water system.

What this means specifically is that your initial data should satisfy $$ u_0(x) \pm 2\sqrt{gh_0(x)} = u_0(0) \pm 2\sqrt{gh_0(0)}. $$ Here $h_0(x), u_0(x)$ are the initial depth and velocity. If you take "+" the solution will go left, and if you take "-" it will go right.

If you want to understand this better, I recommend Chapter 13 of LeVeque's finite volumes book and the shallow water equations chapter of this book on Riemann problems written by LeVeque, del Razo, and myself.

| cite | improve this answer | |
  • $\begingroup$ This is exactly what I found upon revisiting LeVeque's book. I have edited my answer above, please take a look at my reply to you. $\endgroup$ – SimpleProgrammer May 6 at 14:36
  • $\begingroup$ I tried a simulation using the second proposed formulation of $m_{0}(x)$ and it worked perfectly! It gave me a simple wave without any backwards travelling wavelets. $\endgroup$ – SimpleProgrammer May 6 at 14:48
  • $\begingroup$ The values $h_0(0)$ and $u_0(0)$ are just the depth and momentum at a particular point (I took $x=0$ but since this relation holds for all points, you can pick any point). There is no need to choose specifically $h_0(0)=0$. $\endgroup$ – David Ketcheson May 7 at 17:51

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.