WW3 → SWAN nested wave model · grid intercomparison

Hurricane Harvey (2017)

Structured vs. unstructured regional grid sensitivity for a Gulf-of-Mexico–to–Galveston nested wave forecast — Hs, wave period, and mean direction at four locations spanning deep water to the harbor entrance, over a 72-hour window bracketing landfall.

Landfall
08/26 03:00 UTC
Intensity at landfall
115 kt / 937 mb
Saffir–Simpson
Category 4
Location
28.0°N 96.9°W

Key finding

After correcting a depth sign-convention bug in the unstructured WW3 grid setup (UNST%SF), the structured and unstructured regional grids agree closely across the full model chain for Harvey: within 3.8% at the deep-water reference point and 2.5% at the Galveston harbor entrance, for peak significant wave height. Harvey intensified rapidly just before landfall and came ashore well southwest of Galveston, so the city felt its wind field's northeast quadrant rather than a direct strike.

WW3 · Gulf of Mexico
structured 0.1° grid
→ boundary spectra
149 nest points
→ SWAN · Galveston
28,834-node mesh
WW3 · Gulf of Mexico
unstructured 55,691-node mesh
→ boundary spectra
149 nest points
→ SWAN · Galveston
28,834-node mesh (same)

Grids & meshes

Both grid types, for both models. WW3's two regional Gulf of Mexico grids (top row) are the actual grids used in this study's WW3 stage. SWAN's unstructured Galveston nest (bottom right) is the actual mesh used in this study's SWAN stage — SWAN's structured Gulf grid (bottom left) is shown for completeness (pywaves supports it) but was not part of the nested pipeline in this study, which always feeds SWAN the unstructured Galveston mesh regardless of WW3's grid type. Markers show the reference points sampled below.

WW3 structured Gulf of Mexico grid
WW3 · structured · 181×131 rectilinear, 0.1° (~10 km)
WW3 unstructured Gulf of Mexico mesh
WW3 · unstructured · 55,691 nodes, 108,734 elements
SWAN structured Gulf of Mexico grid
SWAN · structured · 181×131 rectilinear, 0.1° (illustrative, not used in the nest)
SWAN Galveston unstructured mesh
SWAN · unstructured · 28,834 nodes, 50,841 elements

Wind forcing

Both grids share identical forcing: a GAHM-style asymmetric parametric vortex fit to the HURDAT2 best track, blended with ERA5 ambient wind and pressure. Harvey made landfall near Rockport, TX, roughly 280 km southwest of Galveston.

Run design: cold start

Both WW3 and SWAN start from zero wave energy at 08/24 12:00 UTC, and every statistic below covers the full 72-hour window, including the first hours.

How much the cold start matters here. Harvey was still a developing storm at the start (about 60 kt), but the buoys already read 0.6–1.4 m of ambient sea, against 0.0–0.3 m modeled in the first hour. Averaged over the first 12 hours the buoys read 1.1 m (Mid Gulf), 1.4 m (Freeport) and 0.7 m (Galveston), against 0.5, 0.6 and 0.01 m modeled, with a largest early deficit of 0.7–1.3 m. After the first 24 hours the structured-grid Hs bias is −0.01, +0.21 and −0.38 m (RMSE 0.22, 0.48 and 0.45 m) at the same three buoys.

Wave parameters by location

Hs, period, and mean wave direction (MWD, 0–360° raw — a jump across the wrap point is not a real direction change) at each of four locations, from deep Gulf water through the SWAN nest boundary to the harbor entrance. Period uses Tp (peak period, from WW3's peak frequency output) for the two Gulf points and T01 (mean period) for the two Galveston points, the field SWAN's own output carried for this run. Hover any chart for hourly values.

Deep water

WW3 · Gulf of Mexico

92.5°W, 26.5°N · regional WW3 grid, open water (~2,900 m)

Structured Unstructured

Hs · significant wave height

peak 3.77 / 3.91 m

Tp · wave period

peak 11.8 / 11.8 s

MWD · mean direction

0–360°, circular

Continental shelf

WW3 · Gulf of Mexico

94.5°W, 28.5°N · regional WW3 grid, shelf water (~30-35 m)

Structured Unstructured

Hs · significant wave height

peak 4.79 / 4.98 m

Tp · wave period

peak 13.5 / 12.8 s

MWD · mean direction

0–360°, circular

Open boundary

SWAN · Galveston

94.28°W, 28.51°N · SWAN mesh, nest boundary node (~35 m)

Structured Unstructured

Hs · significant wave height

peak 3.04 / 3.23 m

T01 · wave period

peak 8.4 / 9.9 s

MWD · mean direction

0–360°, circular

Harbor entrance

SWAN · Galveston

94.79°W, 29.285°N · SWAN mesh, nearshore node (~1.8 m)

Structured Unstructured

Hs · significant wave height

peak 0.95 / 0.97 m

T01 · wave period

peak 7.0 / 8.0 s

MWD · mean direction

0–360°, circular

Peak value summary

LocationHs struct. (m)Hs unstruct. (m) DifferencePeriod struct. (s)Period unstruct. (s)
Deep water3.773.91+3.8%11.811.8
Continental shelf4.794.98+3.8%13.512.8
Open boundary3.043.23+6.5%8.49.9
Harbor entrance0.950.97+2.5%7.08.0
Reading the difference column: a few percent is the expected, physically reasonable sensitivity to regional grid resolution — the unstructured mesh resolves shelf and nearshore bathymetry more finely than the 0.1° (~10 km) structured grid. Before the UNST%SF fix, the same comparison showed the unstructured grid underestimating the structured grid by a factor of 5–6×, caused by ~98% of the unstructured mesh's nodes being silently marked dry.

Observed vs. modeled — NDBC buoys

Real wave-height observations from three NDBC buoys spanning the same range as the synthetic reference points above, compared against both grid types at their nearest node. Bias, RMSE, and correlation computed on hourly-matched Hs over the run window; the lower-RMSE grid at each buoy is marked.

Mid Gulf

NDBC 42001 · -89.64°W 25.92°N

Compared against the regional WW3 Gulf grid, hourly, nearest valid observation within 30 min.

NDBC observed Structured Unstructured

Hs · wave height

struct: bias -0.11m rmse 0.31m corr 0.81 (n=72)
unstruct: bias -0.08m rmse 0.32m corr 0.79 (n=72)

Wind speed

struct: bias +0.03m/s rmse 0.68m/s corr 0.92 (n=73)
unstruct: bias -0.03m/s rmse 0.69m/s corr 0.91 (n=73)

Tp · peak period

struct: bias -0.22s rmse 2.10s corr 0.74 (n=72)
unstruct: bias -0.01s rmse 2.41s corr 0.63 (n=72)

MWD · direction

circular; bias/RMSE only

struct: bias -36.14deg rmse 52.93deg (n=72)
unstruct: bias -35.90deg rmse 53.16deg (n=72)

Freeport, TX

NDBC 42019 · -95.34°W 27.91°N

Compared against the regional WW3 Gulf grid, hourly, nearest valid observation within 30 min.

NDBC observed Structured Unstructured

Hs · wave height

struct: bias -0.01m rmse 0.52m corr 0.97 (n=72)
unstruct: bias +0.17m rmse 0.67m corr 0.98 (n=72)

Wind speed

struct: bias +1.42m/s rmse 2.25m/s corr 0.89 (n=72)
unstruct: bias +1.50m/s rmse 2.31m/s corr 0.89 (n=72)

Tp · peak period

struct: bias -0.16s rmse 2.06s corr 0.83 (n=72)
unstruct: bias +0.18s rmse 2.32s corr 0.82 (n=72)

MWD · direction

circular; bias/RMSE only

struct: bias -1.06deg rmse 30.37deg (n=72)
unstruct: bias +0.86deg rmse 30.43deg (n=72)

Galveston, TX

NDBC 42035 · -94.41°W 29.23°N

Compared against the SWAN Galveston mesh, hourly, nearest valid observation within 30 min.

NDBC observed Structured Unstructured

Hs · wave height

struct: bias -0.54m rmse 0.63m corr 0.95 (n=71)
unstruct: bias -0.48m rmse 0.59m corr 0.96 (n=71)

Wind speed

read from the actual GAHM+ERA5 forcing field, not SWAN's own BLOCK wind output -- that diagnostic was found not to reflect the input forcing at all (verified by injecting an extreme value into the wind file and confirming it never appeared in the output)

struct: bias +0.40m/s rmse 1.56m/s corr 0.90 (n=71)
unstruct: bias +0.40m/s rmse 1.56m/s corr 0.90 (n=71)

RTP · peak period

struct: bias -0.83s rmse 2.90s corr 0.68 (n=71)
unstruct: bias +0.02s rmse 3.32s corr 0.63 (n=71)

MWD · direction

circular; bias/RMSE only

struct: bias +2.92deg rmse 51.97deg (n=71)
unstruct: bias +9.35deg rmse 51.06deg (n=71)

Accuracy and runtime, summarized

Raw comparison stats, no verdict — structured and unstructured each win some buoy/parameter comparisons and lose others; see the buoy cards above for the full breakdown per location and parameter.

Buoys where structured has lower RMSE
2 / 3
against NDBC Hs
Buoys where unstructured has lower RMSE
1 / 3
against NDBC Hs
Structured runtime
44 min
WW3 regional, 72h window
Unstructured runtime
176 min
4.0× the structured runtime
Why does peak-period correlation differ between the two grids, when Hs correlation barely does? For Harvey, correlation against NDBC's peak/dominant period is consistently higher for the structured grid across the 3 buoys with enough valid pairs to compute it (mean gap 0.05), while Hs correlation between the two grids differs by only 0.01 on average at the same buoys. That gap is consistent with what the two metrics actually measure: Hs is an integral over the full frequency spectrum, so small differences in local spectral shape between the structured (uniform 0.1°) and unstructured (55,691-node, spatially varying resolution and triangle geometry) WW3 solutions mostly average out. Peak period instead picks a single frequency bin — the one with the most energy — so the same small shape differences can shift which bin wins, producing a larger, noisier swing in the period time series without any corresponding change in wave energy. This is a property of peak-period as a diagnostic (sensitive to spectral discretization noise), not a demonstrated general accuracy advantage of either grid type; a single storm cannot show one grid to be generally more accurate at peak period.