Skip to content

Leeside Armor Damage Progression LCS CSR

FGM edited this page Oct 19, 2026 · 4 revisions

Leeside (Rear-Side) Armor Damage Progression (LCS Coastal Structure Reliability)

Source: CHESS_Library/Structure_Reponses/Equations/leeside_armor_stone_damage.m, called from CHESS_Library/Structure_Reponses/LCS_CSR/chess_csr_dpa.m inside the per-timestep, per-life-cycle loop. Depends on Wave Runup Exceedance z1p and Crest Velocity Exceedance u1p (z1p_calc.m and u1p_calc.m). Applies to: struc_type = 3 (Rubblemound) only. This is the LCS Coastal Structure Reliability — Damage Progression Analysis (CSR-DPA) workflow, a distinct code path from the PROS/RB dispatch documented on Van Gent Leeside Armor Stone Stability Dn50. Enable flag: config.csr_call_dpa (activates the CSR-DPA module); config.csr_compute_S_submerged additionally gates the (currently unimplemented) submerged-crest handling within this function.

What it models

This equation tracks the cumulative leeside (rear-side) armor damage number S for a structure with an already-specified leeside stone size, across the overtopping-driven crest flow generated by each storm timestep in a simulated life cycle. It is the damage-accumulation counterpart to Van Gent Leeside Armor Stone Stability Dn50, which instead solves for the required stone size at a target damage level.

Note on recent changes: this file (and its caller, chess_csr_dpa.m) was modified in commit c9d6466 ("Fixed wave period inputs for response equations") to correct a wave-period variable-naming issue — the function signature explicitly documents that the period input arrives already converted to the spectral mean period Tm-1,0 by the caller (see in-code comment: "Inside CHESS the input for period is already converted with parent code chess_csr_dpa.m /1.1"). It was further modified in a later commit (c639475, "Fixed missing seaward slope input for z1% & u1%") to add a dedicated seaside-slope parameter Sslp to the function signature; see the equation section below for what that fixed.

Conceptual model

  • Loaded by overtopping flow. As in Van Gent Leeside Armor Stone Stability Dn50: the 1% run-up overshoots the crest, the overtopping flow reaches the landward edge at velocity u1%, and that flow moves the rear-side stones (LDn from leeside_mass).
  • Initiation versus progression. On an undamaged rear side the damage law uses the exponent r = 6 (constant wave conditions); once damage exists (S > 0) it switches to r = 1 with K_ls2 = 0.04, so damage on an already-damaged rear side grows more readily.
  • Square root of time. As on the seaside, each time step's waves are added to the equivalent number of waves that would have produced the current damage.
  • No overtopping, no damage. When the run-up does not reach the crest (z1% ≤ Rc) or the crest velocity is zero, damage is carried over. A submerged crest (Rc < 0 with csr_compute_S_submerged = 1) also carries damage over.
  • Cutoff correction. With csr_apply_cutoff_correction = 1, z1% and u1% are computed for a crest raised by csr_cutoff_offset.
  • Repairs follow the seaside rule with the leeside limits (leeside_design_S, leeside_S_uls); see Seaside Armor Damage Progression LCS CSR and CHESS LCS.

Conceptual diagram

Two-panel figure: left panel is a full cross-section (seaside slope, crest with z1% run-up and u1% crest velocity, leeside slope) with the existing (fixed) leeside armor stone size LDn; right panel is a schematic S(t) damage-accumulation curve over a life cycle, following the same pattern as the seaside version, with a repair event

The equation

Source: file header states "Armor damage based on Melby revision of van Gent, M., and Pozueta, B. (2004). Proc. of Coastal Structures 2003, ASCE, Reston, VA." — this is a direct, explicit in-code citation. chess_csr_dpa.m's "RELEVANT PUBLICATIONS" list additionally cites: Van Gent, M. R. A., and B. Pozueta. 2005. "Rear-Side Stability of Rubble Mound Structures." Coastal Engineering 2004, 3481–93, and the same Melby (1999, 2009) damage-progression publications cited on Seaside Armor Damage Progression LCS CSR.

1%-exceedance run-up and crest velocity — computed via the same Wave Runup Exceedance z1p / Crest Velocity Exceedance u1p helper functions used by Van Gent Leeside Armor Stone Stability Dn50. The function signature takes both slopes separately: Lslp (leeside slope) and Sslp (seaside slope). chess_csr_dpa.m binds Sslp to structure.seaside_slope at both call sites, and the run-up/crest-velocity calc uses that seaside slope — consistent with the PROS/RB Dn50 equation on Van Gent Leeside Armor Stone Stability Dn50 and with chess_csr_dpa.m's own diagnostic pre-loop computation described below:

z1% = z1p_calc(H, Tm-1,0, Rc, cot(seaside_slope), g)
u1% = u1p_calc(crest_width, Rc, z1%, Tm-1,0, H, cot(seaside_slope), g)

(If config.csr_apply_cutoff_correction = 1, both are instead evaluated against an artificially raised freeboard, Rc_artificial = (crest_elevation + cutoff) − WL.) Lslp (leeside slope) is not used in the run-up/velocity calc — it is used further down, in the leeside damage-progression formula itself (the a_ls term below).

Separately-computed diagnostic-only z1%/u1%: before the per-timestep loop begins, chess_csr_dpa.m also computes an initial z1p/u1p pair directly (not through this function) using cot(seaside_slope) — the same slope now used inside this function. This diagnostic version is zeroed out for invalid forcing timesteps and exported into the module's diagnostics output table under the z1p column; the u1p column in that same diagnostics table gets overwritten, timestep by timestep, by this function's own return value. Since both are now computed from the same (seaside) slope, the exported diagnostic z1p and u1p columns are a consistent run-up/velocity pair.

Damage number:

r = 6                                if S_last = 0   (initial/first-time damage)
r = 1, K_ls2 = 0.04                  if S_last > 0    (progressive damage — coefficients change)

if Rc < 0 and compute_S_submerged = 1:
    S = S_last                        (submerged-crest leeside damage not currently computed — see Notes)
elseif (z1% − Rc) > 0 and u1% > 0:     (crest is overtopped and flow reaches the leeside armor)
    a_ls = cot(leeside_slope)^(-2.5/r) · (1 + 10·exp(-Rc/H))^(1/r)
    Nls  = u1% · Tm-1,0 / √Δ / LDn / K_ls1
    Nze  = ( S_last / K_ls2 / (a_ls·Nls)^r )^2
    S    = K_ls2 · √(Nze + Nz) · (a_ls·Nls)^r
else:
    S = S_last     (no overtopping flow reaching the leeside armor this timestep)

Parameters

Symbol Meaning Units Source
H (Hm0) Zero-moment significant wave height for the current timestep m Sampled LC forcing, column 6
Tm-1,0 (Tmm1) Spectral mean wave period, Tp/1.1 s Sampled LC forcing, column 7, pre-divided by chess_csr_dpa.m
Rc Freeboard: crest_elevation − WL m structure.crest_elevation, LC forcing SWL
WL Storm water level m Sampled LC forcing, column 5
crest_width Structure crest width m structure.crest_width
crest_elevation Structure crest elevation m structure.crest_elevation
cot(seaside_slope) (Sslp) Cotangent of the seaward slope — passed into z1p_calc/u1p_calc inside this function (see equation note above), and also used by chess_csr_dpa.m's separate, diagnostic-only pre-loop z1p/u1p computation — structure.seaside_slope
cot(leeside_slope) (Lslp) Cotangent of the landward slope — not used in the run-up/velocity calc; used directly in the a_ls damage-number term of the leeside damage-progression formula — structure.leeside_slope
LDn Existing leeside armor stone nominal diameter, from stone mass: (leeside_mass/((1+Δ)·ρw))^(1/3) m structure.leeside_mass, structure.armor_delta, config.water_density
Δ (Delta) Armor stone immersed relative density — structure.armor_delta
Nz Number of waves in the current timestep — Sampled LC forcing (storm increment duration / mean period)
K_ls1, K_ls2 Empirical leeside stability coefficients (K_ls2 overridden to 0.04 once damage has initiated, S_last > 0) — emp_coeff.k_ls1 (125), emp_coeff.k_ls2 (1)
cutoff, cutoff_switch Cutoff elevation delta and enable flag for the artificial-freeboard correction m, — config.csr_cutoff_offset, config.csr_apply_cutoff_correction
compute_S_submerged Whether to attempt a submerged-crest damage treatment (see Notes) — config.csr_compute_S_submerged
g Gravitational acceleration m/s² config.gravity_constant

Notes / limitations

  • Submerged-crest leeside damage is not actually computed, mirroring the seaside equation: the Rc < 0 && compute_S_submerged == 1 branch only carries the previous damage state forward (S = S_last); the referenced submerged_armor_stone_damage.m call is present only as a commented-out line describing an intended (but unimplemented) "potential damage" scaling approach.
  • A block of additional validity-range checks (Nz ≥ 4000, 0.3 ≤ Rc/H ≤ 6, 1.3 ≤ crest_width/H ≤ 1.6, stability-number bounds, relative-run-up bounds) is present in the file but entirely commented out — none of these bounds are enforced in the active calculation.
  • This function is called twice per timestep in chess_csr_dpa.m — once for the "with repairs" damage track and once for the "no repairs" track — each maintaining an independent damage-state and u1p_last history.

References

  • Van Gent, M., and B. Pozueta. 2004. Cited by title "?" — the literal title field is left as an unfilled placeholder ("?"), as is the page range (?) — in the header of leeside_armor_stone_damage.m: "Armor damage based on Melby revision of van Gent, M., and Pozueta, B. (2004). '?,' Proc. of Coastal Structures 2003, ASCE, Reston, VA, ?." This is a direct in-code citation, but it is genuinely incomplete in the source itself (not just abbreviated here) — the title and page numbers were never filled in.
  • Van Gent, M. R. A., and B. Pozueta. 2005. "Rear-Side Stability of Rubble Mound Structures." Coastal Engineering 2004, 3481–93. World Scientific Publishing Company. — a complete citation, transcribed from chess_csr_dpa.m's "RELEVANT PUBLICATIONS" list.
  • Melby, J. A. 1999. Damage Progression on Breakwaters. PhD dissertation. Newark, Delaware: University of Delaware. — same damage-progression methodology family cited on Seaside Armor Damage Progression LCS CSR; reproduced here since both seaside and leeside CSR-DPA functions are documented in the same chess_csr_dpa.m header block.
  • Melby, J. A. 2009. "Time-Dependent Life-Cycle Analysis of Coastal Structures." Proceedings of Coastal Structures 2007, 1842–1853. Singapore: World Scientific.
  • Applied in: Gonzalez, Victor M., et al. 2020. "Alabama Barrier Island Restoration Assessment Life-Cycle Structure Response Modeling." ERDC/CHL TR-20-5. Vicksburg, MS: U.S. Army Engineer Research and Development Center.

Clone this wiki locally