Source code for liquepy.field.correlations

import numpy as np


[docs]def calc_shear_vel_mcgann_2015_cpt(cpt): """ Computes the shear wave velocity profile according to :cite:`McGann:2015fd` Parameters ---------- cpt: liquepy.field.CPT object Returns ------- array_like Shear wave velocity profile corresponding to the depths in the CPT. """ return 18.4 * cpt.q_c ** 0.144 * cpt.f_s ** 0.0832 * cpt.depth ** 0.278
[docs]def calc_shear_vel_andrus_and_stokoe_2000_spt_values(n_1_60): """ Eq 98 in Pm4Sand v3.1 manual :param n_1_60: :return: float or array_like """ return 85.8 * (n_1_60 + 2.5) ** 0.25
[docs]def calc_relative_density_idriss_and_boulanger_2008_spt_values(n_1_60, c_d=46): """ Calculate the relative density from SPT normalised blow count (Eq. 35 :cite:`Idriss:2008ua`) Parameters ---------- n_1_60: array_like Corrected normalised SPT values c_d: float Correlation factor, default=46 (from :cite:`Idriss:2008ua`) other proposals: * Meyerhof (1957): 41 * Skempton (1986): 55 fine and 65 coarse natural norm-consolidated sand, 35 lab, 40 recent fills * Cubrinovski and Ishihara (1999): 51 clean sand, 26 silty sand, 39 all samples Returns ------- array_like """ return np.sqrt(n_1_60 / c_d)
[docs]def calc_relative_density_salgado_et_al_1997_cpt_values(q_c1n, c_dq=0.9): """ Eq. 95 in PM4Sand v3.1 manual Parameters ---------- q_c1n: array_like Normalised cone penetration resistance c_dq: float, default=0.9 (from :cite:`Idriss:2008ua`) Correlation factor, (range 0.64-155 from Salgado (1997) Returns ------- array_like """ return 0.465 * np.sqrt(q_c1n / c_dq) - 1.063
[docs]def calc_relative_density_boulanger_et_al_2014_cpt_values(q_c1n, c_dq=0.9): """ Table 4.1 in PM4Sand v3.1 manual Parameters ---------- q_c1n: array_like Normalised cone penetration resistance c_dq: float, default=0.9 (from :cite:`Idriss:2008ua`) Correlation factor, (range 0.64-1.55 from Salgado (1997) Returns ------- array_like """ return 0.465 * (q_c1n / c_dq) ** 0.264 - 1.063
[docs]def calc_q_c1n_via_inverse_d_r_boulanger_et_al_2014(d_r, c_dq=0.9): """ Table 4.1 in PM4Sand v3.1 manual Parameters ---------- d_r: array_like Relative density c_dq: float, default=0.9 (from :cite:`Idriss:2008ua`) Correlation factor, (range 0.64-155 from Salgado (1997) Returns ------- array_like """ return c_dq * ((d_r + 1.063) / 0.465) ** (1. / 0.264)
[docs]def calc_g0_mod_boulanger_and_ziotopoulou_2015_spt_values(n_1_60): """ Calculate the normalised shear modulus :cite:`Boulanger:2017pm4_v3p1` Parameters ---------- n_1_60: array_like Corrected normalised SPT values Returns ------- array_like """ return 167. * np.sqrt(n_1_60 + 2.5)
[docs]def est_permeability_robertson_and_cabal_2012(i_c): """ Estimates the soil permeability based on the soil behaviour index :cite: `Robertson:2012cpt` Parameters ---------- i_c: float or array_like Returns ------- """ if np.min(i_c) < 1: raise ValueError return np.where(i_c < 3.27, 10.0 ** (0.952 - 3.04 * i_c), 10.0 ** (-4.52 - 1.37 * i_c))
[docs]def est_shear_vel_hegazy_and_mayne_2006(q_c1n, i_c, esig_v0, p_a): """ Estimates the soil shear wave velocity from CPT :cite: `Hegazy:2012bs` Eq 6. Parameters ---------- q_c1n i_c esig_v0 p_a Returns ------- """ return 0.0831 * q_c1n * np.exp(1.7861 * i_c) * (esig_v0 / p_a) ** 0.25
[docs]def est_g_mod_robertson_2009(i_c, big_q, unit_weight): """Set normalised shear modulus using Robertson (2009).""" alpha_vs = 10 * (0.55 * i_c + 1.68) # Eq 11 [m/s] big_q = np.clip(big_q, 0.001, None) vs1 = (alpha_vs * big_q) ** 0.5 # Eq 9 [m/s] return unit_weight * vs1 ** 2
[docs]def est_g0_mod_robertson_2009(i_c, big_q, unit_weight, esig_v, pa=101000, n=0.5): """Set normalised shear modulus using Robertson (2009).""" g_mod = est_g_mod_robertson_2009(i_c, big_q, unit_weight) return g_mod / pa / (esig_v / pa) ** n
[docs]def est_undrained_strength_ratio_robertson_2009(big_q, n_kt=14): """determine normalised undrained strength using Robertson (2009).""" return big_q / n_kt # =(su / esig_v) Eq 33
[docs]def set_strength_props(sl, vert_eff_stress, i_c, big_q, n_kt=14): if i_c > 2.6: sl.cohesion = est_undrained_strength_ratio_robertson_2009(big_q, n_kt=n_kt) * vert_eff_stress sl.phi = 0.0 else: sl.phi = np.arctan(est_undrained_strength_ratio_robertson_2009(big_q, n_kt=n_kt)) sl.cohesion = 0.0