nwhm/shallow_water

Some interesting related papers:

Github repo: https://github.com/ketch/shallow_water_periodic_bathymetry

Equations

\(\begin{align} h_t + (hu)_x + (hv)_y & = 0 \\ (hu)_t + (hu^2 + \frac{1}{2} gh^2)_x + (huv)_y & = -ghb_x \\ (hv)_t + (huv)_x + (hv^2 + \frac{1}{2}gh^2)_y & = -ghb_y \end{align}\) Here \(h\) is depth, \(u,v\) are velocity, \(g\) is the gravitational constant, and \(b(x,y)\) is bathymetry.

What I’ve done so far

Update a 2D Riemann solver (f-wave with well-balancing) that Matteo wrote. Normal solver only. I’m running this with classic in a c-dispersive setup and I see solitary wave formation under the right initial conditions. The structure of the waves looks essentially identical to c-solitary waves seen in the \(p\)-system.

Specifically, I’m using

\(\begin{align} b(x,y) = \begin{cases} 0 & x\ge0 \\ 1/2 & x< 0 \end{cases} \end{align}\) The domain is \([0,300]\times[-1/2,1/2]\), and the initial water surface height is \(h+b = 0.75 + 0.1 e^{-x^2/3}\). The left and right boundaries are reflecting. The top and bottom boundaries are periodic.

Solitary wave formation

Issues

An oscillation that may be a numerical instability or resonance appears after a while. It appears later if a more dissipative limiter is used. It might be related to the instability in Tiernan Fogarty’s thesis. Or it might be real (but I doubt it).

The following things may influence these oscillations:

  • The time step size
  • The use of dimensional splitting or a transverse solver
  • The mesh resolution (on coarse meshes, the oscillations don’t appear)
  • The length of the domain
  • The boundary conditions (periodic/reflecting/outflow)

Reflecting BCs

Using reflecting BCs at top and bottom, we still see solitary waves (though the number and shape of them changes). The instability mentioned above seems weaker in this case.

Development of a solitary wave with reflecting BCs.

Development of a solitary wave with reflecting BCs.

Solution at t=300, showing instability developing

Solution at t=300, showing instability developing

Planning experiments

We’ll use Aslan Kasimov’s wave tank to do some experiments in January. It may also be possible to do experiments in the channel behind the diner. For the bathymetry, we’ll cut some plexiglass. The channel has length 3m and width 80cm. We’ll need to make it narrower.

I have run some simulations with physical units, and observe solitary waves with (for instance) the following setup (units are cm):

  • Channel length (L) = 300
  • Channel width (W) = 10
  • bathymetry difference (B) = 5
  • ambient surface height (S) = 7.5 (so the depth is 7.5 in the deep part and 2.5 in the shallow part)

The initial wave is given by \(7.5 + 2 \exp(-(10 x)^2).\)

Some additional comments:

  • I used reflecting boundary conditions at all boundaries. The solitary waves don’t fully separate until the pulse has traveled about 4 lengths of the channel (bouncing back and forth). This is consistent with our estimate that the length should be about 100-200x the width.
  • Here “channel width” is really the period of the bathymetry variation. So we could use, say, a 20cm-wide channel with two periods, or a 10cm-wide channel with 1 period.
  • This pulse leads to two solitary waves. Taller/wider pulses would lead to more.
  • I think solitary wave formation occurs for a fairly wide range of parameters, so if any of this seems problematic for experiments, it can probably be adjusted.

Long time evolution

In some simulations, Manuel observed that the leading two waves eventually had the same amplitude (with \(n_x = n_y = 40\)). After refining by a factor of two, it seems that this observation was merely due to numerical damping:

enter image description here Green is lower resolution, blue is higher resolution.

Things to be done

  • Write transverse Riemann solver
  • Try running simulations with SharpClaw
  • Try a z-dispersive setup
  • Homogenize in 1D
  • Homogenize in 2D
  • Shock suppression
  • Solitary wave speed-amplitude relations, collisions, etc.
  • How physical is the whole setup? Can we do experiments? Talk to Aslan.
  • Dispersion relation for linearized homogenized SW equations
  • Finely resolved simulations on Shaheen
  • Write a 1D Riemann solver (or just use a thin 2D domain)
  • 1D simulations
  • Isolate some solitary waves and try to clean up the oscillations
  • Solitary wave interaction
  • Criterion for shock formation
  • Simulations with a few periods in \(y\)