pygmm.slope_displacement package

Submodules

pygmm.slope_displacement.bray_et_al_2017 module

Bray et al. (2017) displacement model for subduction-zone events.

pygmm.slope_displacement.bray_et_al_2017.calc_disp_bea17(yield_coef, period_slide, psa_dts, mag, **kwds)[source]

Bray et al. (2017) median non-zero displacement for subduction events.

Parameters:
  • yield_coef (float) – Slope yield coefficient [g].

  • period_slide (float) – Fundamental period of the sliding mass, \(T_s\) [s].

  • psa_dts (float) – 5%-damped spectral acceleration at the degraded period, \(1.5 T_s\) [g].

  • mag (float) – Moment magnitude.

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float

pygmm.slope_displacement.bray_et_al_2017.calc_prob_disp_bea17(yield_coef, period_slide, psa_dts, **kwds)[source]

Bray et al. (2017) probability of non-zero displacement.

Parameters are as for calc_disp_bea17().

Returns:

Probability of a non-zero displacement.

Return type:

float

Parameters:

pygmm.slope_displacement.bray_travasarou_2007 module

Bray and Travasarou (2007) displacement model for shallow crustal events.

pygmm.slope_displacement.bray_travasarou_2007.calc_disp_bt07(yield_coef, period_slide, psa_dts, **kwds)[source]

Bray and Travasarou (2007) median non-zero displacement.

Parameters:
  • yield_coef (float) – Slope yield coefficient [g].

  • period_slide (float) – Fundamental period of the sliding mass, \(T_s\) [s].

  • psa_dts (float) – 5%-damped spectral acceleration at the degraded period, \(1.5 T_s\) [g].

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float

pygmm.slope_displacement.bray_travasarou_2007.calc_prob_disp_bt07(yield_coef, period_slide, psa_dts, **kwds)[source]

Bray and Travasarou (2007) probability of non-zero displacement.

Parameters are as for calc_disp_bt07().

Returns:

Probability of a non-zero displacement.

Return type:

float

Parameters:

pygmm.slope_displacement.cho_rathje_2020 module

Cho and Rathje (2020) sliding-mass displacement model.

pygmm.slope_displacement.cho_rathje_2020.calc_disp_cr20(yield_coef, period_slide, pga=None, mag=None, pgv=None, **kwds)[source]

Calculate the displacement predicted by Cho and Rathje (2020).

Two models are provided, selected by the inputs:

  • PGV model: provide pgv only

  • PGA and magnitude model: provide pga and mag

The standard deviation is only provided for the PGV model; it is NaN for the PGA model.

Parameters:
  • yield_coef (float) – Yield coefficient of the slope [g].

  • period_slide (float) – Period of the sliding mass [s].

  • pga (float, optional) – Peak ground acceleration [g].

  • mag (float, optional) – Moment magnitude.

  • pgv (float, optional) – Peak ground velocity [cm/s].

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float

pygmm.slope_displacement.cho_rathje_2021 module

Cho and Rathje (2021) neural-network sliding-mass displacement model.

pygmm.slope_displacement.cho_rathje_2021.calc_disp_cr21(pgv, yield_coef, period_slide, height_ratio, **kwds)[source]

Artificial neural network Model 1 from Cho and Rathje (2021).

Parameters:
  • pgv (float) – Peak ground velocity [cm/s].

  • yield_coef (float) – Yield coefficient of the slope [g].

  • period_slide (float) – Period of the sliding mass [s].

  • height_ratio (float) – Height ratio of the sliding mass.

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float

pygmm.slope_displacement.cho_rathje_2022 module

Cho and Rathje (2022) sliding-mass displacement model.

pygmm.slope_displacement.cho_rathje_2022.calc_disp_cr22(yield_coef, period_slide, height_ratio, pgv=None, pga=None, mag=None, **kwds)[source]

Displacement model from Cho and Rathje (2022).

The PGV model is used unless pga (and mag) are provided.

Parameters:
  • yield_coef (float) – Yield coefficient of the slope [g].

  • period_slide (float) – Period of the sliding mass [s].

  • height_ratio (float) – Height ratio of the sliding mass.

  • pgv (float, optional) – Peak ground velocity [cm/s].

  • pga (float, optional) – Peak ground acceleration [g].

  • mag (float, optional) – Moment magnitude. Required with pga.

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float

pygmm.slope_displacement.hale_abrahamson_2019 module

Hale and Abrahamson (2019) flexible sliding-mass displacement of earth dams.

The model is described in the dissertation of Hale [2019].

Requires pyrotd (pip install pygmm[slope]).

class pygmm.slope_displacement.hale_abrahamson_2019.HaleTransferFunction(freqs, tf, damping, period_ratio, freq_first, freq_nat_eff)[source]

Bases: object

Transfer function of HaleAbrahamson19 and its parameters.

Variables:
  • freqs (np.ndarray) – Frequencies [Hz].

  • tf (np.ndarray) – Complex transfer function from the input motion to the average acceleration of the sliding mass.

  • damping (float) – Damping ratio of the dam (Eq. 4.9).

  • period_ratio (float) – Ratio of the first-mode period to the small-strain period (Eq. 4.4).

  • freq_first (float) – First-mode frequency of the dam [Hz], shortened by nonlinearity.

  • freq_nat_eff (float) – Natural frequency of the undamped system [Hz] (Eq. 4.2).

Parameters:
freqs: ndarray
tf: ndarray
damping: float
period_ratio: float
freq_first: float
freq_nat_eff: float
__init__(freqs, tf, damping, period_ratio, freq_first, freq_nat_eff)
Parameters:
Return type:

None

class pygmm.slope_displacement.hale_abrahamson_2019.HaleAbrahamson19(height, shear_vel=None, freq_nat=None, nl_model='darendeli')[source]

Bases: object

Hale and Abrahamson (2019) displacement of a flexible sliding mass.

The model is described in Hale [2019].

The input motion is filtered by a nonlinear transfer function of the dam before a rigid sliding-block analysis is performed.

The model works in feet; use from_metric() for meters. The transfer function to the average acceleration of the sliding mass is transfer_function().

Provide exactly one of shear_vel and freq_nat; the other is computed from \(f_n = V_S / (3 H)\). This is the empirical relation of the model; it differs from the \(V_S / (2.61 H)\) of a homogeneous shear wedge on a rigid base, see pystrata.dam.analytical.wedge_natural_freqs.

Parameters:
  • height (float) – Height [ft].

  • shear_vel (float, optional) – Shear-wave velocity [ft/s].

  • freq_nat (float, optional) – Natural frequency [Hz].

  • nl_model (str, default "darendeli") – Nonlinear model of the material: "darendeli" or "vucetic_dobry".

C = np.record((0.76, 0.35, -0.00049, 0.00329, -0.03558, 0.35297, -0.89726, 1.25375, 0.00024, -1.14426, 0.0009, -1.91824, 0.00145, -0.00993, 0.8656, 0.57934, 0.00172, 0.40392, 0.85), dtype=[('a1', '<f8'), ('a2', '<f8'), ('a3', '<f8'), ('a4', '<f8'), ('a5', '<f8'), ('a6', '<f8'), ('a7', '<f8'), ('a8', '<f8'), ('a9', '<f8'), ('a10', '<f8'), ('a11', '<f8'), ('a12', '<f8'), ('a13', '<f8'), ('a14', '<f8'), ('a15', '<f8'), ('a16', '<f8'), ('a17', '<f8'), ('a18', '<f8'), ('alpha', '<f8')])
NL_MODELS = ('darendeli', 'vucetic_dobry')
__init__(height, shear_vel=None, freq_nat=None, nl_model='darendeli')[source]
Parameters:
classmethod from_metric(height, shear_vel=None, freq_nat=None, nl_model='darendeli')[source]

Create the model from a height and velocity in meters.

Parameters:
  • height (float) – Height [m].

  • shear_vel (float, optional) – Shear-wave velocity [m/s].

  • freq_nat (float, optional) – Natural frequency [Hz]; it does not depend on the units.

  • nl_model (str, default "darendeli") – Nonlinear model of the material, see the class.

Returns:

Model with the height and velocity converted to feet.

Return type:

HaleAbrahamson19

property freq_nat: float

Natural frequency of the dam [Hz].

property height: float

Height of the dam [ft].

property shear_vel: float

Shear-wave velocity of the dam [ft/s].

__call__(time_step, accels, yield_coef)[source]

Compute the sliding displacements.

Parameters:
  • time_step (float) – Time step [s].

  • accels (array_like) – Acceleration time series [g].

  • yield_coef (float) – Yield coefficient [g].

Returns:

Final displacement [cm] for the inverted and the original polarity of the motion.

Return type:

list of float

property period_nl: float

Nonlinear period [s] of the dam (Eq. 4.3 of Hale [2019]).

This is the period at which the 5% damped pseudo-spectral acceleration is computed, \(\ln T_{NL} = a_1 \ln T_o + a_2\), where \(T_o = 1 / f_n\) is the small-strain period.

transfer_function(freqs, spec_accel)[source]

Compute the transfer function to the average sliding-mass acceleration.

This is Equation 4.1 of Hale [2019], with the first-mode frequency from Equations 4.2 and 4.4. The transfer function is nonlinear: it depends on the strength of the input motion through its spectral acceleration at the nonlinear period of the dam.

Parameters:
  • freqs (array_like) – Frequencies [Hz].

  • spec_accel (float) – 5% damped pseudo-spectral acceleration [g] of the input motion at period_nl.

Returns:

The transfer function and the parameters that define it.

Return type:

HaleTransferFunction

pygmm.slope_displacement.park_kishida_2019 module

Park and Kishida (2019) fundamental period of earth dams.

pygmm.slope_displacement.park_kishida_2019.calc_dam_period_pk19(height, direction='transverse', **kwds)[source]

Fundamental period of an earth dam from Park and Kishida (2019).

Parameters:
  • height (float) – Height of the dam [m].

  • direction (str, default "transverse") – Direction of the mode: "longitudinal", "transverse", or "vertical" (or the abbreviations "lon", "trans", "vert").

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median period [s], or (ln_mean, ln_std) if stats is True.

Return type:

float

pygmm.slope_displacement.rathje_antonakos_2011 module

Rathje and Antonakos (2011) flexible sliding-mass displacement model.

pygmm.slope_displacement.rathje_antonakos_2011.calc_disp_ra11(yield_coef, pga, period_slide, period_mean, mag=None, pgv=None, **kwargs)[source]

Rathje and Antonakos (2011) slope displacement model.

Extends calc_disp_rs08() to flexible sliding masses by scaling PGA (and PGV) to the maximum seismic coefficient (and its velocity) of the sliding mass.

Parameters:
  • yield_coef (float) – Slope yield coefficient [g].

  • pga (float or array_like) – Peak ground acceleration [g].

  • period_slide (float) – Fundamental period of the sliding mass [s].

  • period_mean (float) – Mean period of the ground motion [s].

  • mag (float, optional) – Moment magnitude. Selects the scalar (PGA, M) model.

  • pgv (float, optional) – Peak ground velocity [cm/s]. Selects the vector (PGA, PGV) model.

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float or numpy.ndarray

pygmm.slope_displacement.rathje_saygili_2008 module

Rathje and Saygili (2008) rigid sliding-block displacement model.

pygmm.slope_displacement.rathje_saygili_2008.calc_disp_rs08(yield_coef, pga, mag=None, pgv=None, **kwargs)[source]

Rathje and Saygili (2008) slope displacement model.

Two models are provided, selected by which of mag and pgv is given:

  • scalar model: PGA and magnitude

  • vector model: PGA and PGV

Parameters:
  • yield_coef (float) – Slope yield coefficient [g].

  • pga (float or array_like) – Peak ground acceleration [g].

  • mag (float, optional) – Moment magnitude.

  • pgv (float, optional) – Peak ground velocity [cm/s].

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float or numpy.ndarray

pygmm.slope_displacement.rigid_block module

Newmark rigid sliding-block analysis of an acceleration time series.

Uses numba to compile the integration when it is installed (pip install pygmm[slope]); otherwise a pure-Python loop is used, which gives the same result more slowly.

pygmm.slope_displacement.rigid_block.njit(func)[source]

Return the function unchanged, as numba is not installed.

pygmm.slope_displacement.rigid_block.calc_rigid_disp(time_step, accels, yield_coef, invert=False)[source]

Compute the displacement and velocity of a rigid sliding mass.

Parameters:
  • time_step (float) – Time step [s].

  • accels (array_like) – Acceleration time series [g].

  • yield_coef (float) – Yield coefficient of the slope [g].

  • invert (bool, default False) – If the acceleration time series should be inverted.

Returns:

"disps": displacement time series of the sliding mass [cm], and "vels": velocity time series of the sliding mass [cm/s].

Return type:

dict

pygmm.slope_displacement.watson_lamprey_abrahamson_2006 module

Watson-Lamprey and Abrahamson (2006) sliding-block displacement model.

pygmm.slope_displacement.watson_lamprey_abrahamson_2006.calc_disp_wla06(yield_coef, pga, psa_1s, mag, **kwds)[source]

Watson-Lamprey and Abrahamson (2006) slope displacement model.

The model is not valid for PGA less than the yield coefficient, where NaN is returned.

Parameters:
  • yield_coef (float) – Slope yield coefficient [g].

  • pga (float or array_like) – Peak ground acceleration [g].

  • psa_1s (float or array_like) – 5%-damped spectral acceleration at 1 s [g].

  • mag (float) – Moment magnitude.

  • stats (bool, default False) – If True, return (ln_mean, ln_std) instead of the median.

Returns:

Median displacement [cm], or (ln_mean, ln_std) if stats is True.

Return type:

float or numpy.ndarray