Primary surface displacement models#
Chiou2025PrimaryFD#
- class openquake.pfd.primary_surf_displ.chiou2025.Chiou2025PrimaryFD(version=None, style=None)[source]#
Bases:
BasePrimarySurfDisplChiou et al. (2025) primary surface displacement exceedance model for sum-of-principal displacement on strike-slip faults.
- Parameters:
d – Target displacement threshold(s) in meters (float or array-like).
X_L_ratio – Normalized position x/L in [0, 1] (float or array-like). Supports vectorization over sites.
mag – Moment magnitude Mw (float). Recommended range is (6.0, 8.3); outside this range a warning is logged and the computation proceeds.
style – Must be “strike-slip” (case-insensitive), optional. If not, a ValueError is raised.
version – Model formulation, optional. One of {“model7”, “model8.1”, “model8.2”, “model8.3”}. Defaults to “model7”.
- Returns:
Exceedance probability(s) as an ndarray. Shape follows broadcasting of (n_sites, n_displacements) when X_L_ratio is a vector and d is a vector; otherwise reduced appropriately.
Model contract: DISPLACEMENT_DEFINITION = “sum-of-principal”, DISPLACEMENT_COMPONENT = “net” – Chiou et al. (2025, Earthquake Spectra, “Fault displacement model for surface principal rupture of strike-slip faults”) predict displacement summed across the PRINCIPAL strands crossed by a profile (distributed ruptures excluded, so the secondary slot remains legitimate alongside this model); Sarmiento et al. (2025) Table 1 lists CEA25 as D_SP,N* (sum-of-principal, pseudo-net component).
Kuehn2024PrimaryFD#
- class openquake.pfd.primary_surf_displ.kuehn2024.kuehn2024.Kuehn2024PrimaryFD(style=None, epistemic_uncertainty=None, folded=None, coefficient_type=None)[source]#
Bases:
BasePrimarySurfDisplAggregate fault-displacement model of Kuehn et al. (2024), run in the principal (primary_surf_displ) slot.
Bayesian hierarchical model of fault displacement as a function of magnitude, normalized along-strike position, and faulting style, with optional epistemic-uncertainty sampling over the posterior coefficients.
References#
Kuehn, N. M., Kottke, A. R., Sarmiento, A. C., Madugo, C. M., & Bozorgnia, Y. (2024). A fault displacement model based on the FDHI database. Earthquake Spectra, 41(4), 2783-2805. https://doi.org/10.1177/87552930241291077
Model contract: DISPLACEMENT_DEFINITION = “aggregate”, DISPLACEMENT_COMPONENT = “net” – Kuehn et al. (2024) fit the FDHI aggregate net displacement (total slip across principal and distributed ruptures within the measurement aperture); Sarmiento et al. (2025, Earthquake Spectra) Table 1 lists KEA24 under the aggregate definition, and there is no cross-definition conversion (ibid.). Because the prediction already contains the distributed contribution, the hazard kernel runs this model as a single bucket (rate * P_sr * P_fd_aggregate * W_p) and any secondary-slot model in the same chain is rejected (FDLT-013; docs/design/rupture_location_uncertainty.md, D8).
Lavrentiadis2023PrimaryFD_aggregate#
- class openquake.pfd.primary_surf_displ.lavrentiadis2023.Lavrentiadis2023PrimaryFD_aggregate(style=None, output_type=None, include_zero_slip=None)[source]#
Bases:
BasePrimarySurfDisplAggregate fault-displacement model of Lavrentiadis and Abrahamson (2023).
Model of aggregate fault displacement as a function of magnitude, normalized along-strike position, and faulting style, run in the principal (primary_surf_displ) slot.
Lavrentiadis, G., and Abrahamson, N.A. (2023). Fault-displacement models for aggregate and principal displacements. Earthquake Spectra, 41(4), 2806-2837. https://doi.org/10.1177/87552930231201531
Model contract: DISPLACEMENT_DEFINITION = “aggregate”, DISPLACEMENT_COMPONENT = “net” – STATIC, the class choice IS the definition. Lavrentiadis & Abrahamson (2023) develop their model on the FDHI aggregate displacement (net slip summed across principal and distributed ruptures in the measurement aperture); Sarmiento et al. (2025, Earthquake Spectra) Table 1 lists LA23 under the aggregate definition. This class serves ONLY the aggregate-definition variants:
output_type = "disp_agg_prime"(default, full rupture) or"disp_agg_seg"(single segment). The paper’s third variant,disp_prnc_prime(principal-strand slip summed within the aperture, WITHOUT distributed ruptures – a sum-of-principal definition), is a different physical quantity and lives in its own class,Lavrentiadis2023PrimaryFD_principal; requesting it here raises ValueError (and is rejected at logic-tree validation time, FDLT-015). As an aggregate model, this class runs single-bucket and forbids secondary-slot models (FDLT-013).
Lavrentiadis2023PrimaryFD_principal#
- class openquake.pfd.primary_surf_displ.lavrentiadis2023.Lavrentiadis2023PrimaryFD_principal(style=None, output_type=None, include_zero_slip=None)[source]#
Bases:
Lavrentiadis2023PrimaryFD_aggregateSum-of-principal variant of Lavrentiadis and Abrahamson (2023).
Identical regression machinery as
Lavrentiadis2023PrimaryFD_aggregate, hard-pinned to the paper’sdisp_prnc_primemetric: the principal- strand slip summed within the measurement aperture, WITHOUT distributed ruptures. Following the Petersen2011PrimaryFD_* variant idiom, the class choice IS the definition –output_typeis fixed by this class and passing any explicit value raises ValueError (also rejected at logic-tree validation time, FDLT-015).Model contract: DISPLACEMENT_DEFINITION = “sum-of-principal”, DISPLACEMENT_COMPONENT = “net” – Lavrentiadis & Abrahamson (2023) derive the principal-prime profile from the aggregate one (their b_2 offset and zero-slip probability); like Chiou et al. (2025)’s D_SP it excludes distributed ruptures, so secondary-slot models remain legitimate alongside this class (it is NOT aggregate; FDLT-013 does not apply).
Moss2022PrimaryFD#
- class openquake.pfd.primary_surf_displ.moss2022.Moss2022PrimaryFD[source]#
Bases:
BasePrimarySurfDisplMoss et al. (2022) principal surface fault displacement exceedance model for reverse faults.
Uses gamma-distributed D/MD (or D/AD) ratios convolved with log-normal MD(M) (or AD(M)) scaling to compute P(D > d₀ | M, x/L).
This class implements the GIRS-2022-05 report formulation of the Moss et al. reverse-fault principal displacement model. For the principal model, the AD/MD magnitude-scaling coefficients match the values reported in Moss et al. (2024) Table 3 for the implemented complete/all branches. The practical differences are that this class exposes report-specific options:
gamma_mode='global', the incomplete MD subset, and thesigma_typeselector. Use Moss2024PrimaryFD withsource='EQS'when benchmarking the Earthquake Spectra Table 2 normalized-displacement alpha/beta parameters.Reference: GIRS-2022-05 (Revised 1/17/2024). DOI: 10.34948/N3F595
Model contract: DISPLACEMENT_DEFINITION = “principal”, DISPLACEMENT_COMPONENT = “vertical” – GIRS-2022-05 Section 4 regresses principal reverse-fault displacement (D/MD, D/AD) from vertical-offset measurements on the principal scarp; component per the reverse-fault convention summarised in Valentini et al. (2025, Rev. Geophys.) Table 4.
Moss2024PrimaryFD#
- class openquake.pfd.primary_surf_displ.moss2024.Moss2024PrimaryFD(version=None, source=None, completeness=None, style=None)[source]#
Bases:
BasePrimarySurfDisplModel of Moss et al. (2024) for the probability of exceeding principal surface fault displacement thresholds [m] on reverse faults.
source='EQS'(the default) uses tabulated Earthquake Spectra Table 2 normalized-displacement alpha/beta parameters.source='GIRS'uses the GIRS-2022-05 Figures 4.3-4.4 gamma-parameter regressions instead. Both branches use the same implemented complete/all AD/MD magnitude-scaling coefficients from Moss et al. (2024) Table 3 / GIRS-2022-05 Table 4.4. Use Moss2022PrimaryFD if you needgamma_mode='global', the incomplete MD subset, or thesigma_typeselector.Model contract: DISPLACEMENT_DEFINITION = “principal”, DISPLACEMENT_COMPONENT = “vertical” – same principal reverse-fault vertical-offset dataset and metric as the GIRS-2022-05 formulation (see Moss2022PrimaryFD); Moss et al. (2024, Earthquake Spectra) Tables 2-3.
MossRoss2011PrimaryFD#
- class openquake.pfd.primary_surf_displ.moss_ross2011.MossRoss2011PrimaryFD(n_sigma=3.0, norm_disp_type=None)[source]#
Bases:
BasePrimarySurfDisplModel of Moss and Ross (2011) for exceedance probabilities of primary surface fault displacement thresholds.
The implementation restores the historical model that was removed during the May 2025 vectorization cleanup, while returning the current standard shape:
(n_displacements, n_sites).The conditional AD/MD log10-normal distribution is integrated over a truncation range of
mean ± n_sigma·sigma(in log10 space), consistent with the other primary FD models (Takao 2013, Youngs 2003). The truncation leveln_sigmadefaults to 3 and may be overridden from the logic tree via[MossRoss2011PrimaryFD] n_sigma = <value>.Model contract: DISPLACEMENT_DEFINITION = “principal”, DISPLACEMENT_COMPONENT = “vertical” – Moss & Ross (2011, BSSA 101) regress principal reverse-fault displacement measured as vertical separation (their D/AD, D/MD data are vertical offsets on the principal scarp); component per the reverse-fault convention summarised in Valentini et al. (2025, Rev. Geophys.) Table 4.
Petersen2011PrimaryFD#
- class openquake.pfd.primary_surf_displ.petersen2011.Petersen2011PrimaryFD(version=None)[source]#
Bases:
BasePrimarySurfDisplImplements the Petersen et al. (2011) primary fault displacement model.
Model contract: DISPLACEMENT_DEFINITION = “principal”, DISPLACEMENT_COMPONENT = “lateral” – Petersen et al. (2011) regress principal strike-slip displacement measured as the lateral (horizontal fault-parallel) component; Sarmiento et al. (2025, Earthquake Spectra) Table 1 lists PEA11 as D_P,L (principal, lateral).
The along-strike shape variant is selected with the
versionmodel parameter (‘quadratic’ (default), ‘bilinear’ or ‘elliptical’) – pin it on the logic-tree branch, e.g.:[Petersen2011PrimaryFD] version = bilinear
(all three variants share the same dataset and metric).
Takao2013PrimaryFD#
- class openquake.pfd.primary_surf_displ.takao2013.Takao2013PrimaryFD(n_sigma=3.0, norm_disp_type=None, style=None)[source]#
Bases:
BasePrimarySurfDisplPrincipal fault-displacement model of Takao et al. (2013).
Model of principal (reverse-faulting) fault displacement as a function of magnitude and normalized along-strike position.
Takao, M., et al. (2013). Application of probabilistic fault displacement hazard analysis in Japan.
The conditional AD/MD log10-normal distribution is integrated over a truncation range of
mean ± n_sigma·sigma(in log10 space). The truncation leveln_sigmadefaults to 3 and may be overridden from the logic tree via[Takao2013PrimaryFD] n_sigma = <value>.Model contract: DISPLACEMENT_DEFINITION = “principal”, DISPLACEMENT_COMPONENT = “net” – Takao et al. (2013, JAEE 13) model displacement on the principal fault only (their nu_p1 term, distributed faulting handled by the separate nu_d2 chain), normalised by the Wells & Coppersmith AD/MD which are net (resultant) slip measures; component per the summary in Valentini et al. (2025, Rev. Geophys.) Table 4.
Youngs2003PrimaryFD#
- class openquake.pfd.primary_surf_displ.youngs2003.Youngs2003PrimaryFD(n_sigma=6.0, scaling_model='WC1994', style=None, norm_disp_type=None)[source]#
Bases:
BasePrimarySurfDisplModel of Youngs et al. (2003) for the probability of exceeding principal surface fault displacement thresholds on normal faults.
This model uses the Wells & Coppersmith (1994) magnitude-displacement scaling relations. Two coefficient sets are available, selected with the
styleparameter:style="all": the “All styles” coefficients from WC94.style="normal": the “Normal faulting” coefficients from WC94.
Model contract: DISPLACEMENT_DEFINITION = “principal”, DISPLACEMENT_COMPONENT = “vertical” – Youngs et al. (2003) predict principal-fault displacement of normal-faulting earthquakes measured as vertical separation; Sarmiento et al. (2025, Earthquake Spectra) Table 1 lists YEA03 as D_P,V (principal, vertical).