nwhm/shallow_water
Some interesting related papers:
- Bandgaps for water waves
- Effects of orientation and shape of holes on the band gaps in water waves over periodically drilled bottoms
- Water Surface Wave in a Trough with Periodical Topographic Bottom
- Negative Effective Gravity in Water Waves by Periodic Resonator Arrays
- Multiple resonant scattering of water waves by a two-dimensional array of vertical cylinders: Linear aspects
- Hamiltonian long–wave expansions for water waves over a rough bottom
- Refraction of Water Waves by Periodic Cylinder Arrays
- The long-distance propagation of shallow water waves over an ocean of random depth
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.
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:
Green is lower resolution, blue is higher resolution.
Things to be done
Write transverse Riemann solverTry running simulations with SharpClaw- Try a z-dispersive setup
Homogenize in 1DHomogenize 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\)