Skip to content

Structure Response Equations

FGM edited this page Oct 19, 2026 · 5 revisions

Structure Response Equations

This page lists the response functions by code path and the symbols they share. For which responses apply to which structure type, grouped by physical process, start at PSE Hydraulic Responses.

CHESS computes coastal structure responses (run-up, overtopping, wall pressures, armor stone stability, damage progression, etc.) from two distinct code paths:

  1. compute_structure_response.m — the per-timestep/per-storm response dispatcher used by the PROS (workflow 1), DET (workflow 2), LCS (workflow 3, hydrodynamic response step) and PROS-FB (workflow 4) workflows. It is gated by config.struc_type (1=Levee, 2=Floodwall, 3=Rubblemound, 4=Low-Crested Breakwater) and by a set of per-equation config.compute_* boolean switches.
  2. chess_csr_dpa.m (CHESS Coastal Structure Reliability — Damage Progression Analysis) — the LCS life-cycle armor damage accumulation path for Type 3 (Rubblemound) structures, activated by config.csr_call_dpa. This is a distinct workflow from (1): it tracks cumulative armor damage number S storm-by-storm across simulated life cycles rather than computing a single-storm/single-timestep response.

Each equation below has its own page with a conceptual diagram, the governing formula(s) as implemented in the source, and a parameter table tracing each symbol back to config/structure/forcing data.

PROS / RB Response Dispatch (compute_structure_response.m)

Page Response Applies to (struc_type) Enable flag
EurOtop Wave Runup R2p 2% wave run-up height (R2%) 1 (Levee), 3 (Rubblemound), 4 (LCBW) config.compute_r2p
EurOtop Overtopping Discharge q Mean overtopping discharge rate per unit crest length 1, 2 (Floodwall), 3, 4 config.compute_q (also forced on by compute_nappe)
EurOtop Overtopping Discharge Volume Q vol Cumulative overtopping volume per unit crest length over a storm/timeseries 1, 2, 3, 4 (Timeseries only; off in PROS-FB) config.compute_q_vol
Goda Vertical Wall Pressures P1 P2 P3 Pu Wave-induced hydrodynamic/hydrostatic pressure distribution on a vertical wall (P1, P2, P3) and uplift (Pu) 2 (Floodwall) config.compute_p1, config.compute_p2_p3
Floodwall Nappe Flow Response Geometry, velocity, and impact force of the overtopping jet ("nappe") landing behind a floodwall 2 (Floodwall) config.compute_nappe
Melby Seaside Armor Stone Stability Dn50 Required seaside armor stone nominal diameter (Dn50) for a target damage level S 3 config.compute_dn50_seaside
Van Gent Leeside Armor Stone Stability Dn50 Required leeside (rear-side) armor stone nominal diameter (Dn50) 3 config.compute_dn50_leeside
Submerged Armor Stone Stability Dn50 Armor stone sizing correction when the structure crest is submerged (Rc < 0) 3 (with the seaside/leeside Dn50) config.compute_dn50_submerged
Melby Low Crested Breakwater Stability Low-crested breakwater (LCBW) armor stone size or stability factor (FS) 4 config.compute_dn50_lcbw
EurOtop Wave Transmission Kt Wave transmission coefficient (Kt) and transmitted wave height behind the structure 1, 2, 3, 4 (floodwall: seaward slope tan α = 1, the hidden-berm value) config.compute_wave_transmission
Damaging Depth Damaging depth: water column from the offshore bed (offshore elevation) to the controlling wave crest All config.compute_damaging_depth

LCS Coastal Structure Reliability — Damage Progression (chess_csr_dpa.m)

Page Response Applies to Enable flag
Seaside Armor Damage Progression LCS CSR Incremental/cumulative seaside armor damage number S(t) across a simulated life cycle 3 (Rubblemound) config.csr_call_dpa
Leeside Armor Damage Progression LCS CSR Incremental/cumulative leeside (rear-side) armor damage number S(t) across a simulated life cycle 3 (Rubblemound) config.csr_call_dpa

These two damage-progression equations reuse the same underlying Melby momentum-flux (seaside) and Van Gent & Pozueta rear-side (leeside) stability formulations as the PROS Dn50 pages above, but solve them "in reverse" — given a fixed existing stone size (structure.seaside_mass / structure.leeside_mass), they solve for the damage number S produced by each storm and accumulate it, timestep by timestep, life cycle by life cycle, optionally applying structure repairs (config.csr_apply_structure_repair) when a limit state is exceeded.

Leeside helper equations (shared by both dispatch paths)

These two functions have no config.compute_* enable flag of their own — they run as helper building blocks wherever their caller runs — but each has its own page because both the Van Gent Dn50 equation and the CSR-DPA leeside damage equation depend on them. All current callers pass the seaside slope into these helpers (an earlier version of the CSR-DPA leeside damage function passed the leeside slope here instead; that inconsistency was fixed in commit c639475, "Fixed missing seaward slope input for z1% & u1%"):

Page Response Applies to Called from
Wave Runup Exceedance z1p 1%-exceedance run-up elevation (z1%) 3 (Rubblemound) Van Gent Leeside Armor Stone Stability Dn50, Leeside Armor Damage Progression LCS CSR, chess_csr_dpa.m's own diagnostic-only pre-loop computation — all three pass the seaside slope
Crest Velocity Exceedance u1p 1%-exceedance crest overtopping velocity (u1%) 3 (Rubblemound) Same three call sites as z1p, immediately after each one's z1p_calc call

Common Parameters

The individual equation pages each carry their own parameter table, but a handful of symbols recur across most of them. This glossary collects only the parameters that actually show up in two or more of the equation source files/wiki pages — it is not a re-statement of every symbol on every page, and it does not replace the per-equation tables (always defer to a given page's own table for that equation's exact usage; where two pages genuinely disagree on what a symbol means, that is called out below rather than papered over).

Symbol Meaning Typical units CHESS source (config/forcing field) Used in
Hm0 (Hsig, H) Zero-moment significant wave height, generally at the structure toe m Project forcing (project_forcing.Hm0, or LCS/CSR sampled forcing column 6) EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, EurOtop Wave Transmission Kt, Goda Vertical Wall Pressures P1 P2 P3 Pu, Floodwall Nappe Flow Response, Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50, Submerged Armor Stone Stability Dn50, Melby Low Crested Breakwater Stability, Damaging Depth, Seaside Armor Damage Progression LCS CSR, Leeside Armor Damage Progression LCS CSR, Wave Runup Exceedance z1p, Crest Velocity Exceedance u1p
SWL (WL) Storm/still water level for the current timestep, assumed inclusive of surge, tide, and wave setup m, datum Project forcing (project_forcing.SWL, or LCS/CSR sampled forcing column 5) Nearly every page above — most directly named in EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, Floodwall Nappe Flow Response, Damaging Depth; it is also the reference elevation baked into every Rc and h below
Rc Freeboard: structure.crest_elevation − SWL, the same for every structure type (for floodwalls the wall bottom enters only through the toe depth). Negative for a submerged crest (adds the EurOtop weir overflow term) m structure.crest_elevation, forcing SWL EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, EurOtop Wave Transmission Kt, Goda Vertical Wall Pressures P1 P2 P3 Pu, Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50, Submerged Armor Stone Stability Dn50, Melby Low Crested Breakwater Stability, Wave Runup Exceedance z1p, Crest Velocity Exceedance u1p, Seaside Armor Damage Progression LCS CSR, Leeside Armor Damage Progression LCS CSR
h (depth, hs) Water depth at the structure toe, SWL − toe_elevation. Elevations are signed (no abs()), so h < 0 means a dry toe: the forcing sets Hm0 = 0, wave responses are NaN (Kt is 0) and surge responses are still computed. For floodwalls without a toe berm the toe is wall_bottom_elevation. Goda also uses d = SWL − berm_crest_elevation, which equals h while toe berms are hidden m structure.toe_elevation (structure.wall_bottom_elevation for floodwalls), forcing SWL Melby Seaside Armor Stone Stability Dn50, Goda Vertical Wall Pressures P1 P2 P3 Pu, Submerged Armor Stone Stability Dn50, Seaside Armor Damage Progression LCS CSR, Damaging Depth
Tp Peak wave period as received directly from forcing, before any period-averaging conversion s Project forcing (project_forcing.Tp) EurOtop Wave Transmission Kt, Damaging Depth, Submerged Armor Stone Stability Dn50; also the source value that Tm-1,0 and Tm below are both derived from
Tm-1,0 (Tmm1) Spectral mean wave period, computed as Tp / 1.1 (done once in the calling dispatcher — compute_structure_response.m or chess_csr_dpa.m — not inside the individual equation files) s Derived from project_forcing.Tp EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, Wave Runup Exceedance z1p, Crest Velocity Exceedance u1p, Van Gent Leeside Armor Stone Stability Dn50, Leeside Armor Damage Progression LCS CSR
Tm Mean wave period, computed as Tp / 1.2 — a different derived period from Tm-1,0 above, used specifically for wave-count (Nz) and momentum-flux calculations rather than run-up/overtopping s Derived from project_forcing.Tp Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50 (for Nz only), Seaside Armor Damage Progression LCS CSR
cot(α) — seaside slope (Sslp) Cotangent of the seaward structure face slope. All current call sites that need "the" structure slope for run-up/overtopping/momentum-flux physics — including the z1p/u1p helpers used by the leeside equations — use this seaside slope, not the leeside one (see the note on commit c639475 in the "Leeside helper equations" section below) — structure.seaside_slope EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, EurOtop Wave Transmission Kt (as tan α), Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50, Wave Runup Exceedance z1p, Crest Velocity Exceedance u1p, Seaside Armor Damage Progression LCS CSR, Leeside Armor Damage Progression LCS CSR
cot(β_lee) — leeside slope (Lslp) Cotangent of the landward (rear-side) structure face slope — a genuinely distinct config field from the seaside slope above. Used only in the final rear-side stability/damage term (a_ls), never in the run-up/velocity (z1p/u1p) calculation itself, even for the leeside equations — structure.leeside_slope Van Gent Leeside Armor Stone Stability Dn50, Leeside Armor Damage Progression LCS CSR
γf, γβ, γb, γv, γ* EurOtop influence factors (roughness, wave obliquity, berm, wall-on-slope/wall-on-levee) from call_eurotop_ifactors.m, seeded largely by config.roughness_ifactor and structure geometry. Not the same computation as the piecewise-in-surf-similarity γf that Wave Runup Exceedance z1p and Crest Velocity Exceedance u1p compute internally for the leeside family — the two γfs should not be assumed numerically equal for the same physical slope — call_eurotop_ifactors.m, config.roughness_ifactor EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, EurOtop Wave Transmission Kt (γf/γβ only used indirectly via commented-out branches), Van Gent Leeside Armor Stone Stability Dn50 (γf passed in but currently inert — see that page's Notes)
g (grav, gravity_constant) Gravitational acceleration m/s² config.gravity_constant (9.80665 m/s², set in call_input_parser.m) Every equation page in this section
Δ (delta) Armor stone immersed relative density, Δ = (ρs − ρw)/ρw — structure.armor_delta (from config.armor_delta, default 1.65) Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50, Submerged Armor Stone Stability Dn50, Melby Low Crested Breakwater Stability, Seaside Armor Damage Progression LCS CSR (as SG = 1 + Δ), Leeside Armor Damage Progression LCS CSR
Dn50 Nominal armor stone diameter — either the required size solved for a target damage level (Melby/Van Gent/Submerged/LCBW pages), or the existing/fixed size back-computed from stone mass (SDn, LDn on the CSR-DPA damage-progression pages: (mass / ((1+Δ)·ρw))^(1/3)) — these are two different roles for the same symbol and should not be conflated m Computed (design mode) or structure.seaside_mass/structure.leeside_mass + config.water_density (existing-size mode) Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50, Submerged Armor Stone Stability Dn50, Melby Low Crested Breakwater Stability, Seaside Armor Damage Progression LCS CSR, Leeside Armor Damage Progression LCS CSR
S Armor damage number — either a fixed design/target value the Dn50 equations solve against (structure.seaside_design_S / leeside_design_S), or the storm-by-storm accumulated state the CSR-DPA equations track and carry forward (S_last → S) — again, two distinct roles sharing one symbol — config.seaside_design_S / config.leeside_design_S (design mode); accumulated internally (CSR-DPA mode) Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50, Submerged Armor Stone Stability Dn50, Seaside Armor Damage Progression LCS CSR, Leeside Armor Damage Progression LCS CSR
P Notional permeability coefficient (CEM Fig. VI-5-11) — structure.cem_P (from config.cem_P, default 0.4) EurOtop Overtopping Discharge q (caps γf_orBB), Melby Seaside Armor Stone Stability Dn50, Seaside Armor Damage Progression LCS CSR
k, L Local wave number / wavelength. Two distinct computations share these letters: (1) the deep-water approximation L = g·T²/(2π) used directly inline wherever a surf-similarity parameter is needed (EurOtop run-up/overtopping/transmission, z1p/u1p); and (2) the actual finite-depth linear dispersion relation, solved numerically by wavnum1_VG.m for a local wave number k at a given depth — used by the Goda pressure and Melby/Submerged stability equations, which need the toe-depth-dependent wave number rather than a deep-water estimate m⁻¹ (k), m (L) wavnum1_VG.m (dispersion form); inline g·T²/(2π) (deep-water form) Goda Vertical Wall Pressures P1 P2 P3 Pu, Melby Seaside Armor Stone Stability Dn50, Submerged Armor Stone Stability Dn50, Seaside Armor Damage Progression LCS CSR (dispersion form); EurOtop Wave Runup R2p, EurOtop Overtopping Discharge q, EurOtop Wave Transmission Kt, Wave Runup Exceedance z1p, Crest Velocity Exceedance u1p (deep-water form)
crest_width (B, wdth) Structure crest width m structure.crest_width EurOtop Wave Transmission Kt, Van Gent Leeside Armor Stone Stability Dn50, Crest Velocity Exceedance u1p, Leeside Armor Damage Progression LCS CSR
duration Storm duration, used to derive the number of waves Nz = duration / T for wave-count-dependent formulas hrs (config.storm_duration), converted to s at the call site config.storm_duration Melby Seaside Armor Stone Stability Dn50, Van Gent Leeside Armor Stone Stability Dn50
ρw Water density kg/m³ config.water_density (default 1000 kg/m³) Goda Vertical Wall Pressures P1 P2 P3 Pu, Floodwall Nappe Flow Response, Melby Low Crested Breakwater Stability (back-computing SDn), Seaside Armor Damage Progression LCS CSR, Leeside Armor Damage Progression LCS CSR
z1% / u1% 1%-exceedance run-up elevation and crest overtopping velocity — themselves shared building blocks with their own pages (see Wave Runup Exceedance z1p, Crest Velocity Exceedance u1p), reused as direct inputs by both the PROS/RB leeside Dn50 equation and the LCS-CSR leeside damage-progression equation m (z1%), m/s (u1%) Computed (see linked pages) Van Gent Leeside Armor Stone Stability Dn50, Leeside Armor Damage Progression LCS CSR

Shared building blocks

A few other helper routines are reused across nearly all of the pages above and are noted on each page rather than documented separately:

  • wavnum1_VG.m — solves the linear (Airy) wave theory dispersion relation for wave number k, with an explicit estimate per Guo (2002), "Simple and explicit solution of wave dispersion equation," Coastal Engineering, Vol 45, No. 2, pp 71–74. Used wherever a local wavelength/wave number is needed (Melby stability equations, Goda pressures).
  • call_eurotop_ifactors.m — computes the EurOtop influence factors (gamma_f roughness, gamma_beta obliquity, gamma_b berm, gamma_v/gamma_star wall-on-slope) consumed by the run-up/overtopping equations.

Clone this wiki locally