2

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.

1 Answers1

4

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.

David Ketcheson
  • 16,522
  • 4
  • 54
  • 105
  • 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. – SimpleProgrammer May 06 '20 at 14:36
  • 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. – SimpleProgrammer May 06 '20 at 14:48
  • 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$. – David Ketcheson May 07 '20 at 17:51