Drag to orbit, wheel / pinch to zoom. Change any slider and press Simulate Tsunami again: the ocean model, the coastal flood model and the damage model are all recomputed.
Sea level at the coast gauge (m): the wave the city receives
Maximum flow depth (blue) and momentum flux h u^2 (orange, /10) along a street, distance inland
Buildings by damage state over time and people who reached safety
Experiment result
Experiment 1 - benchmark. A solitary wave runs up a 1:10 plane beach in this same flood solver (three amplitudes). Measured run-up is compared with the closed-form Synolakis (1987) law R/d = 2.831 sqrt(cot b) (H/d)^1.25.
Experiment 2 - how far does the water go? Runs the selected coast as a street transect for wave heights 2-50 m (same inflow shape, built-up roughness) and plots inundation distance and run-up height. Does the answer scale linearly with height?
The earthquake magnitude sets the size of the seabed source; the water depth sets the speed of the wave; the topography decides how the wave climbs ashore. Two models run in your browser: a linear shallow-water model for the ocean (2 km cells, 280 by 200 km) and a nonlinear shallow-water model for the coast (10 m cells, 1.5 by 0.9 km, every building is a solid obstacle). The ocean wave measured at a gauge off the city is scaled to the Wave Height you chose and used as the inflow of the coastal model. Buildings, trees, cars and people respond to the computed flow.
Seismic moment M0 = 10^(1.5 Mw + 9.1) N m; rupture length and width from Wells and Coppersmith (1994) regressions, mean slip s = M0 / (mu L W) with mu = 30 GPa, seabed uplift about 0.35 s (typical for a shallow-dipping thrust, illustrative). Long waves travel at c = sqrt(g h): 198 m/s (713 km/h) in 4000 m of water. A magnitude 9.0 rupture is about 560 km long, so this lab uses a smaller idealised source patch.
d eta/dt + div(h u) = 0, du/dt + g grad eta = 0 on a staggered grid, forward-backward time stepping, absorbing sponge on the open edges. Shoaling follows Green's law eta2 / eta1 = (h1/h2)^(1/4) (checked below). Dispersion, Earth curvature and the Coriolis force are ignored, which is fine for a basin this size.
h_t + (hu)_x + (hv)_y = 0, (hu)_t + (hu^2 + g h^2/2)_x + (huv)_y = -g h z_x - g n^2 u |u| / h^(1/3). Finite volumes with an HLL Riemann solver, hydrostatic reconstruction (so a lake at rest stays at rest over any bed) and wetting/drying. n is the Manning roughness: 0.02 sea, 0.025-0.04 open land, 0.045 built-up, 0.12 forest. Buildings are solid cells. The offshore boundary uses Riemann invariants fed by the gauge series. The leading bore is captured as a shock (no breaking-wave turbulence or air entrainment); the white water you see is a visual cue computed from Froude number and depth gradient, not a fluid simulation of spray.
Each building keeps the largest momentum flux M = h u^2 in its neighbouring cells and a depth term; demand ratio r = M / Mc + k h. Mc (a capacity in m^3/s^2) is typical-order but illustrative: wood house 90-100, masonry 140-260, reinforced concrete 1000-4000, steel tower 5000, each multiplied by a random strength factor. r >= 1 means collapse; 0.15 / 0.4 / 0.7 are minor / moderate / extensive damage. Loss ratios 5 / 25 / 60 / 100 % of an illustrative value. Residents leave on foot after the warning plus 1-4 minutes decision time, walking straight inland at the chosen speed; tall reinforced buildings are counted as vertical refuges. Dots stand for about 25 people each. These numbers show how lead time, wall height and forest change results; they are not a forecast.
Made with Three.js and Blender (models and baked textures). Water shading is procedural at run time. An independent educational model.