Skip to content

CHESS LCS

FGM edited this page Oct 19, 2026 · 1 revision

CHESS: LCS Workflow

Workflow selector: config.workflow = 3 (Life Cycle Simulation, with Coastal Structure Reliability, CSR). Main functions: chess_lcs.m (sampling), chess_csr.m (responses and reliability), chess_csr_dpa.m (damage progression).

What question LCS answers

CHESS PROS asks "what response level has a given annual chance of being exceeded?" and treats the structure as unchanging. LCS asks "how does this structure perform over its service life?" It simulates many possible futures, life cycles of mcs_nYears years each, built from storms drawn at their natural rates. Each storm is run through the structure response equations, and the results are summarised across life cycles:

  • Response per storm and per year (e.g. the expected yearly maximum overtopping).
  • Reliability and probability of failure of rubble mound armor (CSR Peaks).
  • Damage progression: how armor damage S accumulates storm by storm, with optional repair (CSR DPA).

The spread across life cycles is the aleatory variability: which storms arrive, when and in what order.

Building a life cycle

For each life cycle and each simulated year:

  1. Storm count. A Poisson draw with the storm type's annual rate λ: XC Nstm_XC / Nyrs_XC (record length); TC prob_mass.TC_SRR(end) (CHS storm recurrence rate).
  2. Which storms.
    • TC: an intensity bin is drawn from the bin rates (TC_SRR(1:3)), then a storm from that bin, weighted by its discrete storm weight (TC_Freq).
    • XC: storms are drawn from the record, and their peak values (SWL, Hm0, Tp, direction) are resampled from a Gaussian copula fitted to the record (kernel marginals, Kendall's τ). This gives new, statistically consistent combinations instead of repeating the record.
  3. CC combines the TC and XC life cycles.
  4. Timeseries life cycles use each sampled storm's full hydrograph from the storm database. WLP/WHP life cycles hold the same sampled storms with their WLP/WHP values (for XC they are copies of the copula values).

Each life cycle is a table with one row per storm (Peaks) or per hourly time step (Timeseries): storm ID, type or intensity bin, year, order in the year, SWL, Hm0, Tp, direction, duration and a time step counter.

Sampling modes (lcs_restrict_sampling_rate, hidden field)

Mode Storm counts Use
0, full Poisson (default) Each year's count is a Poisson draw, kept as drawn. A life cycle can have no storms (reliability 1, no damage) Captures storm-count variability. Needs enough life cycles to converge
1, rate matched (ERDC/CHL TR-20-5) Yearly counts are redrawn until the life-cycle total is within λ·N ± 1 The previous behaviour. Percentiles exclude storm-count variability, and a notice says so

Convergence check (mode 0)

Before sampling, lcs_convergence_check.m computes how many life cycles a full Poisson run needs for stable storm-count statistics: the mean rate and the Poisson(λ·N) percentiles in project_CLs, within lcs_convergence_tol (default 5%) at lcs_convergence_confidence (default 95%). When mcs_nLC is lower, the library asks to proceed or cancel (lcs_convergence_prompt); the GUI shows its own dialog. Mode 1 runs no check.

Reproducibility and reuse

Every run saves <db>_LCS_sampling_seed.mat: the effective sampling mode, the sampled storm IDs per life cycle (including empty life cycles) and the raw XC copula samples.

  • Hotstart. A rerun that changes only geometry, adjustments or storm duration keeps the same life cycles (Hotstart Levels).
  • Reference case. load_project_forcing = 1 with ref_case_name reuses another alternative's life cycles, so alternatives are compared under the same storms. The reference's sampling mode takes priority.

Responses

Each storm of each life cycle goes through compute_structure_response.m with the same equations as PROS (PSE Hydraulic Responses). The storm duration is config.storm_duration (hours).

Yearly curves (compute_lcs_yearly_curve.m): for each simulated year, the maximum response of every storm in that year across all life cycles gives the mean and the 10/16/84/90th percentiles. Years without storms have no value.

CSR: reliability (Peaks, rubble mound)

chess_csr_peaks.m, for struc_type = 3. For each storm, two limit states compare the resistance of the existing armor (from seaside_mass / leeside_mass and the design damage levels) with the storm load:

  • Seaside (Melby and Kobayashi 2011, momentum flux): G_ss = R_ss − F_ss.
  • Leeside (Van Gent and Pozueta 2004; Melby 2009): G_ls = R_ls − F_ls, using z1% and u1%.
  • Overall: G = min(G_ss, G_ls).

A storm fails when G < 0. The reliability of a life cycle is the fraction of its storms that do not fail; a life cycle without storms has reliability 1. Reliab_Summary and PF_Summary (PF = 1 − reliability) report the mean, the project_CLs percentiles and the standard deviation across life cycles, for overall, seaside and leeside.

CSR: damage progression (Timeseries, rubble mound)

chess_csr_dpa.m (csr_call_dpa = 1) follows the armor damage number S through each life cycle, time step by time step, for the existing stone size. Damage accumulates storm after storm. With repairs on, the structure is repaired at the end of the storm in which S exceeds the repair limit: csr_apply_structure_repair = 1 repairs at the service limit (seaside_design_S, leeside_design_S), 2 at the ultimate limit (seaside_S_uls, leeside_S_uls), 3 at either. Reliability is the share of life cycles without a repair (repairs on) or that never reach the ultimate limit (repairs off). Life cycles without storms keep their initial damage. Equations: Seaside Armor Damage Progression LCS CSR and Leeside Armor Damage Progression LCS CSR.

Inputs

Field Meaning
mcs_nLC Number of life cycles
mcs_nYears Years per life cycle
storm_sampling XC, TC or CC
use_peaks, use_timeseries, create_wlp, create_whp Datasets to build life cycles for
csr_call_dpa, csr_apply_structure_repair, csr_compute_S_submerged, csr_apply_cutoff_correction, csr_cutoff_offset Damage progression
seaside_S_uls, leeside_S_uls, seaside_mass, leeside_mass Rubble mound limit states and existing armor
load_project_forcing, ref_case_name Reuse another alternative's life cycles
lcs_restrict_sampling_rate, lcs_convergence_* Hidden sampling settings

Details: config_reference.

Outputs and plots

Files are in PSE/<struc_id>/<case_name>/LCS/ (Model Outputs). Plots come from Visualization/lcs_methods.m: armor damage, event sampling distribution, annual response distribution, the sampling scheme dashboard (with the convergence panel) and the damage dashboard. See Visualization for each plot with an example.

References

  • Gonzalez, V. 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.
  • Melby, J. A., and N. K. Kobayashi. 2011. "Stone Armor Damage Initiation and Progression." Journal of Coastal Research 27(1): 110–119 (as listed in chess_csr_dpa.m).
  • Van Gent and Pozueta (2004); Melby (2009): leeside limit state, cited in-code in chess_csr_peaks.m without full titles. See Van Gent Leeside Armor Stone Stability Dn50.

Clone this wiki locally