-
Notifications
You must be signed in to change notification settings - Fork 1
smt_model
The SMT modeling team developed probabilistic susceptibility, triggering, and manifestation models that are implemented using the functions below. The SMT model is described by Ulmer et al. (2024)
| function | description |
|---|---|
get_pfs(Ic) |
Computes probability factor for liquefaction susceptibility |
get_pfts(csrm_hat, crr_hat) |
Computes probability factor for liquefaction triggering conditional on susceptibility |
get_pfmt(ztop, Ic) |
Computes probability factor for manifestation of a layer conditional on triggering of the layer |
get_pmp(pfmt, pfts, pfs, Ksat, t) |
Computes probability of manifestation at surface of profile |
The functions developed by the SMT use the following helper functions.
| function | description |
|---|---|
get_FC_from_Ic(Ic, epsilon=0.0) |
Computes fines content from soil behavior type index following the method by Hudson et al. (2024) |
get_Ic_Qtn_Fr(qt, fs, sigmav, sigmavp, pa=101.325, maxiter=30) |
computes soil behavior type index, Ic, overburden-corrected dimensionless cone tip resistance, Qtn, and dimensionless friction ratio, Fr |
get_qc1N_qc1Ncs(qt, fs, sigmav, sigmavp, FC, pa=101.325, maxiter=30) |
computes overburden-corrected dimensionless cone tip resistance qc1N that uses qc1Ncs to set exponent for overburden correction, and overburden- and fines-corrected cone tip resistance qc1Ncs |
box_cox(x, lam) |
Computes Box-Cox transform |
inv_box_cox(x_hat, lam) |
Computes inverse Box-Cox transform |
get_crr_hat(qc1Ncs) |
Computes Box-Cox transformed cyclic resistance ratio |
get_csrm(amax, m, sigmav, sigmavp, depth, qc1Ncs, pa=101.325) |
Computes cyclic stress ratio corrected for magnitude and overburden |
This function computes the probability of liquefaction susceptibility conditioned on soil behavior type index. Equations are from Ulmer et al. (2024).
| argument | format | description |
|---|---|---|
| Ic | float or Numpy array [dtype = float] | Soil behavior type index |
| variable | format | description |
|---|---|---|
| pfs | float or Numpy array [dtype = float] | Probability factor for susceptibility. |
Note
This function returns the probability factor of liquefaction triggering conditional on susceptibility. Equations are from Ulmer et al. (2024).
| argument | format | description |
|---|---|---|
| csrm_hat | float or Numpy array [dtype=float] | Box-Cox transformed overburden- and magnitude-corrected cyclic stress ratio |
| crr_hat | float or Numpy array [dtype=float] | Box-Cox transformed cyclic resistance ratio |
| variable | format | description |
|---|---|---|
| pfts | float or Numpy array [dtype=float] | Probability factor for liquefaction triggering conditional on susceptibility |
Note
This function returns the probability factor for manifestation conditional on liquefaction triggering. Equations are from Ulmer et al. (2024).
| argument | format | description |
|---|---|---|
| ztop | float or Numpy array [dtype=float] | Depth to the top of the layer of interest in meters |
| Ic | float or Numpy array [dtype=float] | Median soil behavior type index of the layer of interest |
Note
| variable | format | description |
|---|---|---|
| pfmt | float or Numpy array [dtype=float] | Probability factor for manifestation of a layer conditional on liquefaction triggering of the layer |
This function returns the probability of manifestation of a profile. Equations are from Ulmer et al. (2024).
| argument | format | description |
|---|---|---|
| pfmt | Numpy array [dtype=float] | Probability factor of manifestation conditional on triggering |
| pfts | Numpy array [dtype=float] | Probability factor of triggering conditional on susceptibility |
| pfs | Numpy array [dtype=float] | Probability factor of susceptibility |
| Ksat | Numpy array [dtype=float] | Saturation factor. Ksat = 0.0 above groundwater table and 1.0 below groundwater table |
| t | Numpy array [dtype=float] | Layer thickness in meters |
| argument | format | description |
|---|---|---|
| pmp | float | Probability of manifestation of the profile in percent |
Note
This function computes fines content from soil behavior type index following the method by Hudson et al. (2024).
| argument | format | description |
|---|---|---|
| Ic | float, or Numpy array [dtype = float] | Soil behavior type index |
| <epsilon> | float, or Numpy array [dtype = float] | Number of standard deviations. Optional. Default = 0.0 |
| variable | format | description |
|---|---|---|
| FC | float, or Numpy array [dtype = float] | Fines content in percent |
Note
FC will be a scalar valued float if Ic and epsilon are scalar valued floats, and will be a Numpy array if either Ic and / or epsilon are Numpy arrays. If Ic and epsilon are both Numpy arrays, they must have the same length or an error will be returned.
This function computes Ic, Qtn, Fr, qc1N, and qc1Ncs. Iterations are required to solve for these parameters because relationships among Ic, Qtn, Fr, qc1N, and qc1Ncs are implicit. Equations are from Robertson (2016).
| argument | format | description |
|---|---|---|
| qt | Numpy array [dtype = float] | Cone tip resistance |
| fs | Numpy array [dtype = float] | Cone sleeve friction |
| sigmav | Numpy array [dtype = float] | Vertical total stress |
| sigmavp | Numpy array [dtype = float] | Vertical effective stress |
| <pa> | float | Atmospheric pressure in same units as qt, fs, sigmav, and sigmavp. Optional. Default = 101.325 kPa |
| <maxiter> | int | Maximum number of iterations |
| variable | format | description |
|---|---|---|
| Ic | Numpy array [dtype = float] | Soil behavior type index. |
| Qtn | Numpy array [dtype = float] | Dimensionless cone tip resistance. |
| Fr | Numpy array [dtype = float] | Dimensionless cone sleeve friction. |
Note
Values of qt, fs, sigmav, and sigmavp that are less than or equal to zero will cause errors due to the logarithms that must be computed. Such values are set to 0.001*pa before computing Ic, Qtn, and Fr. A warning is not issued when this occurs.
This function computes qc1N, and qc1Ncs. Iterations are required to solve for these parameters. The equations are implicit because the stress normalization exponent depends on the fines correction. Equations used herein are from Boulanger and Idriss (2016).
| argument | format | description |
|---|---|---|
| qt | Numpy array [dtype = float] | Cone tip resistance |
| fs | Numpy array [dtype = float] | Cone sleeve friction |
| sigmav | Numpy array [dtype = float] | Vertical total stress |
| sigmavp | Numpy array [dtype = float] | Vertical effective stress |
| FC | Numpy array [dtype = float] | Fines content in percent |
| <pa> | float | Atmospheric pressure in same units as qt, fs, sigmav, and sigmavp. Optional. Default = 101.325 kPa |
| <maxiter> | int | Maximum number of iterations |
| variable | format | description |
|---|---|---|
| qc1N | Numpy array [dtype = float] | Overburden corrected cone tip resistance, where exponent for overburden correction is a function of qc1Ncs. |
| qc1Ncs | Numpy array [dtype = float] | Overburden- and fines-corrected cone tip resistance |
Note
Values of qt, fs, sigmav, and sigmavp that are less than or equal to zero will cause errors due to the logarithms that must be computed. Such values are set to 0.001*pa before computing qc1N, and qc1Ncs. A warning is not issued when this occurs.
This function computes the Box-Cox transformation of a variable following Box and Cox (1964).
| argument | format | description |
|---|---|---|
| x | float or Numpy array [dtype = float] | Variable to be transformed |
| labmda | float | Exponent term used in transform |
| variable | format | description |
|---|---|---|
| x_hat | float or Numpy array [dtype = float] | Transformed variable |
Note
x_hat will have the same type as x.
This function computes the inverse Box-Cox transformation of a variable following Box and Cox (1964).
| argument | format | description |
|---|---|---|
| x_hat | float or Numpy array [dtype = float] | Variable to be inverse transformed |
| labmda | float | Exponent term used in transform |
| variable | format | description |
|---|---|---|
| x | float or Numpy array [dtype = float] | Inverse transformed variable |
Note
x will have the same type as x_hat.
This function computes the Box-Cox transformed value of cyclic resistance ratio based on overburden- and fines-corrected cone tip resistance. qc1Ncs is converted to relative density using equations from Idriss and Boulanger (2008), and cyclic resistance is computed using equations from Ulmer et al. (2024).
| argument | format | description |
|---|---|---|
| qc1Ncs | float or Numpy array [dtype = float] | Overburden- and fines-corrected cone tip resistance |
| variable | format | description |
|---|---|---|
| crr_hat | float or Numpy array [dtype = float] | Box-Cox transformed cyclic resistance ratio |
Note
crr_hat will have the same type as qc1Ncs.
This function returns magnitude- and overburden corrected cyclic stress ratio. Depth-reduction factor,
| argument | format | description |
|---|---|---|
| amax | float | Peak horizontal surface acceleration in g |
| m | float | Earthquake magnitude |
| sigmav | Numpy array [dtype = float] | Vertical total stress |
| sigmavp | Numpy array [dtype = float] | Vertical effective stress |
| depth | Numpy array [dtype = float] | Depth values |
| qc1Ncs | Numpy array [dtype = float] | Overburden- and fines-corrected cone tip resistance |
| <pa> | float | Atmospheric pressure in same units as sigmav and sigmavp. Optional. Default = 101.325 kPa |
Note
*sigmav, sigmavp, depth and qc1Ncs must be Numpy arrays of the same length. An error will result if they are not Numpy arrays or if they are Numpy arrays of different length.
| variable | format | description |
|---|---|---|
| csrm | Numpy array [dtype = float] | Peak horizontal surface acceleration in g |