Skip to content

cpt.py

subsurfaceio.functions.cpt

CPT functions.

Classes:

Name Description
ReferenceFigureRegistry

Pre-instantiated reference figures

Functions:

Name Description
get_alternative_normalized_cone_resistance

Calculation function.

get_alternative_normalized_friction_ratio

Calculation function.

get_behaviour_correction_factor__robertson2022evaluation

Calculation function.

get_clean_sand_normalized_cone_resistance_1atm_sr__idriss2003estimating

Calculation function.

get_clean_sand_normalized_cone_resistance__robertson2009interpretation

Calculation function.

get_clean_sand_normalized_cone_resistance__robertson2012interpretation

Calculation function.

get_constrained_modulus__robertson2009interpretation

Calculation function.

get_constrained_modulus__robertson2022evaluation

Calculation function.

get_corrected_blow_count__robertson2012interpretation

Calculation function.

get_corrected_cone_tip_resistance

Calculation function.

get_cyclic_resistance_ratio_magnitude_7_5__robertson2009interpretation

Calculation function.

get_cyclic_resistance_ratio_magnitude_7_5__saye2021common

Calculation function.

get_cyclic_resistance_ratio_magnitude_7_5_cpt__boulanger2014cpt

Calculation function.

get_cyclic_resistance_ratio_magnitude_7_5_cpt__idriss2006semi

Calculation function.

get_cyclic_resistance_ratio_slope__saye2021common

Calculation function.

get_diameter_at_50_percent_finer__saye2017linear

Calculation function.

get_dry_unit_weight__barounis2018estimation

Calculation function.

get_effective_cone_resistance__eslami1997pile

Calculation function.

get_effective_cone_resistance_geometric_mean__eslami1997pile

Calculation function.

get_elasticity_modulus__robertson2012interpretation

Calculation function.

get_equivalent_cone_resistance__bustamante1982pile

Calculation function.

get_fines_content__boulanger2014cpt

Calculation function.

get_fines_content__idriss2008soil

Calculation function.

get_fines_content__robertson1998evaluating

Calculation function.

get_fines_content__saye2017linear

Calculation function.

get_friction_angle__kulhawy1990manual

Calculation function.

get_friction_angle__robertson2012interpretation

Calculation function.

get_friction_ratio

Calculation function.

get_is_fine_soil_bustamante1982fellenius

Calculation function.

get_is_fine_soil_cpt

Calculation function.

get_is_invalid_data

Calculation function.

get_is_potentially_liquefiable_cpt

Calculation function.

get_iterative_parameters_cpt__boulanger2014cpt

Calculation function.

get_iterative_parameters_cpt__idriss2008soil

Calculation function.

get_magnitude_scaling_factor_max_cpt__boulanger2014cpt

Calculation function.

get_max_shear_strain__zhang2004estimating

Calculation function.

get_max_shear_strain__zhang2004estimating_scalar

Calculation function.

get_max_shear_strain_f_alpha_term_cpt__idriss2008soil

Calculation function.

get_mean_corrected_cone_tip_resistance

Calculation function.

get_modified_soil_behavior_type

Calculation function.

get_modified_soil_behavior_type_index

Calculation function.

get_modified_soil_behavior_type_label

Calculation function.

get_nature_of_soil__bustamante1982pile

Calculation function.

get_non_normalized_soil_behavior_type_index

Calculation function.

get_normalized_cone_resistance

Calculation function.

get_normalized_cone_resistance_fines_inc_sr__seed1987design

Calculation function.

get_normalized_friction_ratio

Calculation function.

get_normalized_pore_pressure

Calculation function.

get_normalized_pore_pressure_ratio

Calculation function.

get_normalized_residual_shear_strength__robertson2022evaluation

Calculation function.

get_normalized_residual_shear_strength_cpt__idriss2007spt

Calculation function.

get_normalized_residual_shear_strength_cpt__idriss2008soil

Calculation function.

get_normalized_residual_shear_strength_liq__robertson2022evaluation

Calculation function.

get_normalized_soil_behavior_type

Calculation function.

get_normalized_soil_behavior_type_label

Calculation function.

get_overburden_correction_coefficient_cpt__idriss2006semi

Calculation function.

get_overburden_correction_coefficient_cpt__idriss2008soil

Calculation function.

get_overburden_normalized_cone_resistance__saye2021common

Calculation function.

get_overburden_stress_exponent__robertson2009interpretation

Calculation function.

get_overconsolidation_ratio__robertson2012interpretation

Calculation function.

get_overconsolidation_ratio_factor__robertson2012interpretation

Calculation function.

get_peak_friction_angle__mayne2005integrated

Calculation function.

get_peak_undrained_shear_strength_ratio__idriss2008soil

Calculation function.

get_peak_undrained_shear_strength_ratio__robertson2022evaluation

Calculation function.

get_permeability__robertson2010estimatingb

Calculation function.

get_pile_friction_coefficient__bustamante1982fellenius

Calculation function.

get_pile_friction_coefficient__bustamante1982pile

Calculation function.

get_pile_tip_resistance_coefficient__eslami1997pile

Calculation function.

get_pile_tip_resistance_factor__bustamante1982fellenius

Calculation function.

get_pile_tip_resistance_factor__bustamante1982pile

Calculation function.

get_pile_unit_tip_resistance__bustamante1982pile

Calculation function.

get_pile_unit_tip_resistance__eslami1997pile

Calculation function.

get_plasticity_index__ramsey2023estimating

Calculation function.

get_porosity__barounis2018estimation

Calculation function.

get_relative_density__robertson2012guide

Calculation function.

get_relative_density__robertson2024guide

Calculation function.

get_relative_density__tatsuoka1990evaluation

Calculation function.

get_sensitivity__robertson2009interpretation

Calculation function.

get_shear_modulus__robertson2009interpretation

Calculation function.

get_shear_strain_limit_cpt__idriss2008soil

Calculation function.

get_shear_velocity__robertson2022evaluation

Calculation function.

get_soil_behavior_type

Calculation function.

get_soil_behavior_type_index

Calculation function.

get_soil_behavior_type_label

Calculation function.

get_soil_behavior_type_schneider

Calculation function.

get_soil_behavior_type_schneider_label

Calculation function.

get_soil_classification_index__saye2017linear

Calculation function.

get_soil_classification_index_label__saye2017linear

Calculation function.

get_soil_classification_index_uscs_symbol__saye2017linear

Calculation function.

get_soil_transition

Calculation function.

get_soil_type_index

Calculation function.

get_soil_type_index_label

Calculation function.

get_state_parameter__robertson2012interpretation

Calculation function.

get_stress_normalized_cone_resistance

Calculation function.

get_ultimate_bearing_capacity_cpt

Calculation function.

get_undrained_shear_strength__robertson2012interpretation

Calculation function.

get_undrained_shear_strength_factor__robertson2012interpretation

Calculation function.

get_unit_side_friction__bustamante1982pile

Calculation function.

get_unit_side_friction__eslami1997pile

Calculation function.

get_unit_side_friction_coefficient__eslami1997pile

Calculation function.

get_unit_side_friction_limit__bustamante1982fellenius

Calculation function.

get_unit_side_friction_limit__bustamante1982pile

Calculation function.

get_unit_weight__robertson2010estimatinga

Calculation function.

get_void_ratio__barounis2018estimation

Calculation function.

get_void_ratio_cpt__barounis2018estimation

Calculation function.

get_volumetric_strain__zhang2002estimating

Calculation function.

get_volumetric_strain_cpt__idriss2008soil

Calculation function.

get_water_content__barounis2018estimation

Calculation function.

ReferenceFigureRegistry

Pre-instantiated reference figures

get_alternative_normalized_cone_resistance

get_alternative_normalized_cone_resistance(
    corrected_cone_tip_resistance,
    total_stress,
    effective_stress,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_alternative\_normalized\_cone\_resistance}(q_t, σ_v, σ_v') \\ \hspace{1em} Q_{t1} \gets \frac{q_t \cdot 1000 - σ_v}{σ_v'} \\ \hspace{1em} \mathbf{return} \ Q_{t1} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
effective_stress float

Effective vertical stress in soil

required

Returns:

Name Type Description
alternative_normalized_cone_resistance float

Alternative normalized cone resistance from CPT

get_alternative_normalized_friction_ratio

get_alternative_normalized_friction_ratio(
    sleeve_friction, cone_tip_resistance, total_stress
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_alternative\_normalized\_friction\_ratio}(f_s, q_c, σ_v) \\ \hspace{1em} F \gets \mathrm{get\_normalized\_friction\_ratio} \mathopen{}\left( f_s, q_c, σ_v \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ F \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
sleeve_friction float

Sleeve friction from CPT

required
cone_tip_resistance float

Cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required

Returns:

Name Type Description
alternative_normalized_friction_ratio float

Normalized friction ratio from cone tip resistance

get_behaviour_correction_factor__robertson2022evaluation

get_behaviour_correction_factor__robertson2022evaluation(
    soil_behavior_type_index,
    remove_loose_sand_criteria,
    soil_transition,
    normalized_friction_ratio=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_behaviour\_correction\_factor\_\_robertson2022evaluation}(I_c, \mathrm{remove\_loose\_sand\_criteria}, \mathrm{soil\_transition}, F_r) \\ \hspace{1em} \mathrm{condition\_1} \gets I_c \ge 1.7 \\ \hspace{1em} \mathrm{choice\_1} \gets 1.8346 I_c^{5} - 23.673 I_c^{4} + 124.02 I_c^{3} - 320.616 I_c^{2} + 405.821 I_c - 199.97 \\ \hspace{1em} \mathrm{condition\_2} \gets I_c < 1.7 \\ \hspace{1em} \mathrm{choice\_2} \gets 1 \\ \hspace{1em} K_c \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( K_c, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{if} \ \lnot \mathrm{remove\_loose\_sand\_criteria} \\ \hspace{2em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( K_c, \mathopen{}\left( I_c > 1.64 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_c < 2.36 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( F_r < 0.5 \mathclose{}\right), 1 \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ K_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
remove_loose_sand_criteria bool

Sets K_c = 1.00 for I_c between 1.64 and 2.36 and F_r < 0.5

required
soil_transition bool

Flag for soil type transition

required
normalized_friction_ratio float

Normalized friction ratio from CPT

float('nan')

Returns:

Name Type Description
behaviour_correction_factor float

Correction factor for soil behavior

get_clean_sand_normalized_cone_resistance_1atm_sr__idriss2003estimating

get_clean_sand_normalized_cone_resistance_1atm_sr__idriss2003estimating(
    normalized_cone_resistance_1atm,
    normalized_cone_resistance_fines_inc_sr,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_clean\_sand\_normalized\_cone\_resistance\_1atm\_sr\_\_idriss2003estimating}(q_{c1N}, Δq_{c1N-Sr}) \\ \hspace{1em} q_{c1Ncs-Sr} \gets q_{c1N} + Δq_{c1N-Sr} \\ \hspace{1em} \mathbf{return} \ q_{c1Ncs-Sr} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_cone_resistance_1atm float

Normalized cone resistance at 1 atm

required
normalized_cone_resistance_fines_inc_sr float

Fines content increment to normalized cone resistance for residual shear strength

required

Returns:

Name Type Description
clean_sand_normalized_cone_resistance_1atm_sr float

Equivalent clean sand normalized cone resistance at 1 atm for residual shear strength

get_clean_sand_normalized_cone_resistance__robertson2009interpretation

get_clean_sand_normalized_cone_resistance__robertson2009interpretation(
    behaviour_correction_factor,
    stress_normalized_cone_resistance,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_clean\_sand\_normalized\_cone\_resistance\_\_robertson2009interpretation}(K_c, Q_{tn}, \mathrm{soil\_transition}) \\ \hspace{1em} \textrm{" Performance based earthquake design using the CPT by robertson (2009) "} \\ \hspace{1em} \textrm{" Evaluating cyclic liquefaction potential using the cone penetration test by robertson \& Wride (1998) "} \\ \hspace{1em} Q_{tncs} \gets K_c \cdot Q_{tn} \\ \hspace{1em} Q_{tncs} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( Q_{tncs} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Q_{tncs}, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ Q_{tncs} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
behaviour_correction_factor float

Correction factor for soil behavior

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

get_clean_sand_normalized_cone_resistance__robertson2012interpretation

get_clean_sand_normalized_cone_resistance__robertson2012interpretation(
    horizontal_stress_index, material_index
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_clean\_sand\_normalized\_cone\_resistance\_\_robertson2012interpretation}(K_d, I_D) \\ \hspace{1em} Q_{tncs} \gets 25 K_d \\ \hspace{1em} Q_{tncs} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( Q_{tncs} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Q_{tncs}, \mathord{\sim} \mathopen{}\left( \mathopen{}\left( K_d > 2 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( K_d < 6 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_D > 1.2 \mathclose{}\right) \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ Q_{tncs} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
horizontal_stress_index float

Horizontal stress index from DMT

required
material_index float

Dilatometer material index

required

Returns:

Name Type Description
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

get_constrained_modulus__robertson2009interpretation

get_constrained_modulus__robertson2009interpretation(
    soil_behavior_type_index,
    stress_normalized_cone_resistance,
    corrected_cone_tip_resistance,
    total_stress,
    small_strain_shear_modulus,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_constrained\_modulus\_\_robertson2009interpretation}(I_c, Q_{tn}, q_t, σ_v, G_o) \\ \hspace{1em} \mathrm{condition\_1} \gets I_c > 2.2 \\ \hspace{1em} \mathrm{choice\_1} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( Q_{tn}, \mathrm{None}, 14 \mathclose{}\right) \cdot \mathopen{}\left( q_t - σ_v \cdot 0.001 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_2} \gets I_c \le 2.2 \\ \hspace{1em} \mathrm{choice\_2} \gets 1.6 G_o \\ \hspace{1em} M \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ M \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
small_strain_shear_modulus float

Small strain shear modulus of soil

required

Returns:

Name Type Description
constrained_modulus float

Constrained modulus of soil

get_constrained_modulus__robertson2022evaluation

get_constrained_modulus__robertson2022evaluation(
    soil_behavior_type_index,
    stress_normalized_cone_resistance,
    corrected_cone_tip_resistance,
    total_stress,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_constrained\_modulus\_\_robertson2022evaluation}(I_c, Q_{tn}, q_t, σ_v, \mathrm{soil\_transition}) \\ \hspace{1em} α_M \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( I_c > 2.2, Q_{tn}, 0.0188 \cdot 10^{0.55 I_c + 1.68} \mathclose{}\right) \\ \hspace{1em} α_M \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( α_M, \mathrm{None}, 8 \mathclose{}\right) \\ \hspace{1em} M \gets α_M \cdot \mathopen{}\left( q_t - σ_v \cdot 0.001 \mathclose{}\right) \\ \hspace{1em} M \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( M \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( M, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ M \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
constrained_modulus float

Constrained modulus of soil

get_corrected_blow_count__robertson2012interpretation

get_corrected_blow_count__robertson2012interpretation(
    corrected_cone_tip_resistance,
    soil_behavior_type_index,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_corrected\_blow\_count\_\_robertson2012interpretation}(q_t, I_c, \mathrm{soil\_transition}) \\ \hspace{1em} N_{60} \gets \frac{1000 q_t}{101.325} \frac{1}{10^{1.1268 - 0.2817 I_c}} \\ \hspace{1em} N_{60} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( N_{60} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( N_{60}, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} N_{60} \gets \mathrm{np}.\mathrm{round} \mathopen{}\left( N_{60}, 0 \mathclose{}\right) \\ \hspace{1em} N_{60} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( N_{60}, \mathrm{None}, 100 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ N_{60} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
corrected_blow_count float

Blow count corrected for field conditions

get_corrected_cone_tip_resistance

get_corrected_cone_tip_resistance(
    cone_tip_resistance,
    pore_pressure,
    cone_area_ratio,
    is_invalid_data,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_corrected\_cone\_tip\_resistance}(q_c, u, a, \mathrm{is\_invalid\_data}) \\ \hspace{1em} q_t \gets q_c + 0.001 u \cdot \mathopen{}\left( 1 - a \mathclose{}\right) \\ \hspace{1em} q_t \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( q_t \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_t, \mathrm{is\_invalid\_data}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ q_t \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required
pore_pressure float

Pore pressure in soil

required
cone_area_ratio float

Net area ratio for CPT cone

required
is_invalid_data bool

Indicates invalid input data

required

Returns:

Name Type Description
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

get_cyclic_resistance_ratio_magnitude_7_5__robertson2009interpretation

get_cyclic_resistance_ratio_magnitude_7_5__robertson2009interpretation(
    clean_sand_normalized_cone_resistance,
    is_potentially_liquefiable,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_cyclic\_resistance\_ratio\_magnitude\_7\_5\_\_robertson2009interpretation}(Q_{tncs}, \mathrm{is\_potentially\_liquefiable}) \\ \hspace{1em} \textrm{" Performance based earthquake design using the CPT by robertson (2009) "} \\ \hspace{1em} \textrm{" Evaluating cyclic liquefaction potential using the cone penetration test by robertson \& Wride (1998) "} \\ \hspace{1em} \mathrm{condition\_1} \gets \mathopen{}\left( Q_{tncs} < 50 \mathclose{}\right) \mathbin{\&} \mathrm{is\_potentially\_liquefiable} \\ \hspace{1em} \mathrm{choice\_1} \gets 0.833 \frac{Q_{tncs}}{1000} + 0.05 \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( Q_{tncs} \ge 50 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} < 160 \mathclose{}\right) \mathbin{\&} \mathrm{is\_potentially\_liquefiable} \\ \hspace{1em} \mathrm{choice\_2} \gets 93 \mathopen{}\left( \frac{Q_{tncs}}{1000} \mathclose{}\right)^{3} + 0.08 \\ \hspace{1em} CRR_{7.5} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ CRR_{7.5} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
is_potentially_liquefiable bool

Indicates if soil is potentially liquefiable

required

Returns:

Name Type Description
cyclic_resistance_ratio_magnitude_7_5 float

Cyclic resistance ratio adjusted to moment magnitude 7.5

get_cyclic_resistance_ratio_magnitude_7_5__saye2021common

get_cyclic_resistance_ratio_magnitude_7_5__saye2021common(
    cyclic_resistance_ratio_slope,
    overburden_normalized_cone_resistance,
    standard_deviation=0.24,
    liquefaction_probability=35.0,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_cyclic\_resistance\_ratio\_magnitude\_7\_5\_\_saye2021common}(m_{CRR}, q_{c1}, σ, PL_{liq}) \\ \hspace{1em} \textrm{" From author: σ = standard deviation and is equal to 0.24 if input parameters for a given soil layer are uncertain, or 0.20 if input parameters for a given soil layer are certain. For most typical engineering applications, input parameters for liquefaction triggering assessment are based on limited site exploration and laboratory testing data and therefore justify σ = 0.24 Here, we recommend using PL = 35\% with crr7.5 in Eq. (24) to define a deterministic liquefaction resistance boundary for use in design "} \\ \hspace{1em} CRR_{7.5} \gets 10^{\frac{m_{CRR} \cdot q_{c1}}{101.325} - 1.34 + σ \cdot \mathrm{norm} \mathopen{}\left( \mathclose{}\right).\mathrm{ppf} \mathopen{}\left( \frac{PL_{liq}}{100} \mathclose{}\right)} \\ \hspace{1em} CRR_{7.5} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( CRR_{7.5} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( CRR_{7.5}, \mathopen{}\left( m_{CRR} > 0.1 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( \frac{q_{c1}}{101.325} > 180 \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} CRR_{7.5} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( CRR_{7.5}, \mathrm{None}, 4 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ CRR_{7.5} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cyclic_resistance_ratio_slope float

Slope of liquefaction resistance boundaries

required
overburden_normalized_cone_resistance float

Overburden normalized cone resistance from CPT

required
standard_deviation float

Standard deviation for statistical analysis

0.24
liquefaction_probability float

Probability of liquefaction occurrence

35.0

Returns:

Name Type Description
cyclic_resistance_ratio_magnitude_7_5 float

Cyclic resistance ratio adjusted to moment magnitude 7.5

get_cyclic_resistance_ratio_magnitude_7_5_cpt__boulanger2014cpt

get_cyclic_resistance_ratio_magnitude_7_5_cpt__boulanger2014cpt(
    clean_sand_normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_cyclic\_resistance\_ratio\_magnitude\_7\_5\_cpt\_\_boulanger2014cpt}(q_{c1Ncs}) \\ \hspace{1em} CRR_{7.5} \gets \exp \mathopen{}\left( \frac{q_{c1Ncs}}{113} + \mathopen{}\left( \frac{q_{c1Ncs}}{1000} \mathclose{}\right)^{2} - \mathopen{}\left( \frac{q_{c1Ncs}}{140} \mathclose{}\right)^{3} + \mathopen{}\left( \frac{q_{c1Ncs}}{137} \mathclose{}\right)^{4} - 2.8 \mathclose{}\right) \\ \hspace{1em} CRR_{7.5} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( CRR_{7.5} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( CRR_{7.5}, q_{c1Ncs} \ge 211, 2 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ CRR_{7.5} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required

Returns:

Name Type Description
cyclic_resistance_ratio_magnitude_7_5 float

Cyclic resistance ratio adjusted to moment magnitude 7.5

get_cyclic_resistance_ratio_magnitude_7_5_cpt__idriss2006semi

get_cyclic_resistance_ratio_magnitude_7_5_cpt__idriss2006semi(
    clean_sand_normalized_cone_resistance_1atm,
    is_potentially_liquefiable,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_cyclic\_resistance\_ratio\_magnitude\_7\_5\_cpt\_\_idriss2006semi}(q_{c1Ncs}, \mathrm{is\_potentially\_liquefiable}) \\ \hspace{1em} CRR_{7.5} \gets \exp \mathopen{}\left( \frac{q_{c1Ncs}}{540} + \mathopen{}\left( \frac{q_{c1Ncs}}{67} \mathclose{}\right)^{2} - \mathopen{}\left( \frac{q_{c1Ncs}}{80} \mathclose{}\right)^{3} + \mathopen{}\left( \frac{q_{c1Ncs}}{114} \mathclose{}\right)^{4} - 3 \mathclose{}\right) \\ \hspace{1em} CRR_{7.5} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( CRR_{7.5} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( CRR_{7.5}, q_{c1Ncs} \ge 211, 2 \mathclose{}\right) \\ \hspace{1em} CRR_{7.5} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{np}.\mathrm{isnan} \mathopen{}\left( CRR_{7.5} \mathclose{}\right) \mathbin{|} \mathord{\sim} \mathrm{is\_potentially\_liquefiable}, 2, CRR_{7.5} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ CRR_{7.5} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required
is_potentially_liquefiable bool

Indicates if soil is potentially liquefiable

required

Returns:

Name Type Description
cyclic_resistance_ratio_magnitude_7_5 float

Cyclic resistance ratio adjusted to moment magnitude 7.5

get_cyclic_resistance_ratio_slope__saye2021common

get_cyclic_resistance_ratio_slope__saye2021common(
    soil_classification_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_cyclic\_resistance\_ratio\_slope\_\_saye2021common}(ΔQ) \\ \hspace{1em} m_{CRR} \gets \frac{ΔQ}{178 ΔQ - 3349} \\ \hspace{1em} m_{CRR} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( m_{CRR}, \mathrm{None}, 0.1 \mathclose{}\right) \\ \hspace{1em} m_{CRR} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( m_{CRR} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( m_{CRR}, ΔQ < 20, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ m_{CRR} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_classification_index float

Soil classification index per Saye

required

Returns:

Name Type Description
cyclic_resistance_ratio_slope float

Slope of liquefaction resistance boundaries

get_diameter_at_50_percent_finer__saye2017linear

get_diameter_at_50_percent_finer__saye2017linear(
    soil_classification_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_diameter\_at\_50\_percent\_finer\_\_saye2017linear}(ΔQ) \\ \hspace{1em} D_{50} \gets \mathrm{ReferenceFigureRegistry}.\mathrm{DiameterAt50PercentFinerSaye2017}.\mathrm{interpolate\_at\_x} \mathopen{}\left( ΔQ \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ D_{50} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_classification_index float

Soil classification index per Saye

required

Returns:

Name Type Description
diameter_at_50_percent_finer float

Diameter at 50% finer from sieve analysis

get_dry_unit_weight__barounis2018estimation

get_dry_unit_weight__barounis2018estimation(
    unit_weight, water_content, soil_transition
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_dry\_unit\_weight\_\_barounis2018estimation}(γ, w_c, \mathrm{soil\_transition}) \\ \hspace{1em} γ_{dry} \gets \frac{γ}{1 + 0.01 w_c} \\ \hspace{1em} γ_{dry} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( γ_{dry} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( γ_{dry}, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ γ_{dry} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
unit_weight float

Unit weight of soil

required
water_content float

Natural water content of soil

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
dry_unit_weight float

Unit weight of soil under dry conditions

get_effective_cone_resistance__eslami1997pile

get_effective_cone_resistance__eslami1997pile(
    corrected_cone_tip_resistance,
    pore_pressure,
    is_invalid_data,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_effective\_cone\_resistance\_\_eslami1997pile}(q_t, u, \mathrm{is\_invalid\_data}) \\ \hspace{1em} q_E \gets \mathopen{}\left| q_t - \frac{u}{1000} \mathclose{}\right| \\ \hspace{1em} q_E \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( q_E \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_E, \mathrm{is\_invalid\_data}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} q_E \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( q_E \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ q_E \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
pore_pressure float

Pore pressure in soil

required
is_invalid_data bool

Indicates invalid input data

required

Returns:

Name Type Description
effective_cone_resistance float

Effective cone resistance from CPT

get_effective_cone_resistance_geometric_mean__eslami1997pile

get_effective_cone_resistance_geometric_mean__eslami1997pile(
    depth,
    effective_cone_resistance,
    pile_diameter,
    pile_toe_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_effective\_cone\_resistance\_geometric\_mean\_\_eslami1997pile}(z, q_E, D, \mathrm{pile\_toe\_transition}) \\ \hspace{1em} \mathrm{z\_top} \gets \mathrm{None} \\ \hspace{1em} \mathbf{if} \ \mathrm{pile\_toe\_transition} = \textrm{"weak\_to\_dense"} \\ \hspace{2em} \mathrm{z\_top} \gets 8 D \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{pile\_toe\_transition} = \textrm{"dense\_to\_weak"} \\ \hspace{3em} \mathrm{z\_top} \gets 2 D \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathrm{z\_bottom} \gets 4 D \\ \hspace{1em} \mathopen{}\left( \mathrm{z\_top\_array}, \mathrm{z\_bottom\_array} \mathclose{}\right) \gets \mathopen{}\left( z - \mathrm{z\_top}, z + \mathrm{z\_bottom} \mathclose{}\right) \\ \hspace{1em} q_{Eg} \gets \mathopen{}\left[ \mathclose{}\right] \\ \hspace{1em} \mathbf{for} \ \mathopen{}\left( \mathrm{z\_top\_}, \mathrm{z\_bottom\_} \mathclose{}\right) \in \mathrm{zip} \mathopen{}\left( \mathrm{np}.\mathrm{atleast\_1d} \mathopen{}\left( \mathrm{z\_top\_array} \mathclose{}\right), \mathrm{np}.\mathrm{atleast\_1d} \mathopen{}\left( \mathrm{z\_bottom\_array} \mathclose{}\right) \mathclose{}\right) \ \mathbf{do} \\ \hspace{2em} \mathrm{effective\_cone\_resistance\_bin} \gets \mathrm{np}.\mathrm{extract} \mathopen{}\left( \mathopen{}\left( \mathrm{z\_top\_} \le z \mathclose{}\right) \mathbin{\&} \mathopen{}\left( z \le \mathrm{z\_bottom\_} \mathclose{}\right), q_E \mathclose{}\right) \\ \hspace{2em} \mathbf{if} \ \mathrm{z\_top\_} \le 0 \\ \hspace{3em} \mathrm{effective\_cone\_resistance\_bin} \gets \mathrm{np}.\mathrm{insert} \mathopen{}\left( \mathrm{effective\_cone\_resistance\_bin}, 0, 0 \mathclose{}\right) \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{2em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( \mathrm{effective\_cone\_resistance\_bin}, \mathrm{effective\_cone\_resistance\_bin} = 0, 1e-06 \mathclose{}\right) \\ \hspace{2em} \mathrm{effective\_cone\_resistance\_bin} \gets \mathrm{np}.\mathrm{extract} \mathopen{}\left( \mathrm{effective\_cone\_resistance\_bin} > 0, \mathrm{effective\_cone\_resistance\_bin} \mathclose{}\right) \\ \hspace{2em} \mathrm{effective\_cone\_resistance\_geometric\_mean\_bin} \gets \mathrm{gmean} \mathopen{}\left( \mathrm{effective\_cone\_resistance\_bin} \mathclose{}\right) \\ \hspace{2em} q_{Eg}.\mathrm{append} \mathopen{}\left( \mathrm{effective\_cone\_resistance\_geometric\_mean\_bin} \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ for} \\ \hspace{1em} \mathbf{return} \ q_{Eg} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
depth float

Depth below ground surface to bottom of layer

required
effective_cone_resistance float

Effective cone resistance from CPT

required
pile_diameter float

Outside diameter of pile

required
pile_toe_transition str

Transition type at pile toe

required

Returns:

Name Type Description
effective_cone_resistance_geometric_mean float

Geometric mean of effective cone resistance over influence zone

get_elasticity_modulus__robertson2012interpretation

get_elasticity_modulus__robertson2012interpretation(
    corrected_cone_tip_resistance,
    total_stress,
    soil_behavior_type_index,
    is_invalid_data,
    is_fine_soil,
    soil_transition,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_elasticity\_modulus\_\_robertson2012interpretation}(q_t, σ_v, I_c, \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}, SBT_n) \\ \hspace{1em} E_s \gets \mathopen{}\left( q_t - 0.001 σ_v \mathclose{}\right) \cdot 0.015 \cdot 10^{0.55 I_c + 1.68} \\ \hspace{1em} E_s \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( E_s \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( E_s, \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition} \mathbin{|} \mathopen{}\left( SBT_n = \textrm{"0"} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ E_s \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
elasticity_modulus float

Modulus of elasticity of soil

get_equivalent_cone_resistance__bustamante1982pile

get_equivalent_cone_resistance__bustamante1982pile(
    depth, corrected_cone_tip_resistance, pile_diameter
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_equivalent\_cone\_resistance\_\_bustamante1982pile}(z, q_t, D) \\ \hspace{1em} \mathrm{z\_offset} \gets 1.5 D \\ \hspace{1em} \mathrm{primed} \gets \mathrm{np}.\mathrm{full\_like} \mathopen{}\left( z \mathclose{}\right) \\ \hspace{1em} \mathrm{normal} \gets \mathrm{np}.\mathrm{full\_like} \mathopen{}\left( z \mathclose{}\right) \\ \hspace{1em} \mathbf{for} \ \mathopen{}\left( i, z \mathclose{}\right) \in \mathrm{enumerate} \mathopen{}\left( z \mathclose{}\right) \ \mathbf{do} \\ \hspace{2em} z_{top} \gets z - \mathrm{z\_offset} \\ \hspace{2em} z_{bottom} \gets z + \mathrm{z\_offset} \\ \hspace{2em} \mathrm{mask} \gets \mathopen{}\left( z_{top} \le z \mathclose{}\right) \mathbin{\&} \mathopen{}\left( z \le z_{bottom} \mathclose{}\right) \\ \hspace{2em} \mathrm{qt\_in\_window} \gets \mathrm{np}.\mathrm{extract} \mathopen{}\left( \mathrm{mask}, q_t \mathclose{}\right) \\ \hspace{2em} q'_{ca} \gets \mathrm{np}.\mathrm{mean} \mathopen{}\left( \mathrm{qt\_in\_window} \mathclose{}\right) \\ \hspace{2em} q_{ca} \gets \mathrm{np}.\mathrm{mean} \mathopen{}\left( \mathrm{np}.\mathrm{clip} \mathopen{}\left( \mathrm{qt\_in\_window}, 0.7 q'_{ca}, 1.3 q'_{ca} \mathclose{}\right) \mathclose{}\right) \\ \hspace{2em} \mathrm{primed}_{i} \gets q'_{ca} \\ \hspace{2em} \mathrm{normal}_{i} \gets q_{ca} \\ \hspace{1em} \mathbf{end \ for} \\ \hspace{1em} \mathbf{return} \ \mathopen{}\left( \mathrm{primed}, \mathrm{normal} \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
depth float

Depth below ground surface to bottom of layer

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
pile_diameter float

Outside diameter of pile

required

Returns:

Name Type Description
equivalent_cone_resistance_primed float

LCPC method mean cone resistance between -a and +a (a = 1.5D)

equivalent_cone_resistance float

LCPC method equivalent average cone resistance

get_fines_content__boulanger2014cpt

get_fines_content__boulanger2014cpt(
    soil_behavior_type_index,
    fines_content_fitting_parameter=0.0,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_fines\_content\_\_boulanger2014cpt}(I_c, C(FC)) \\ \hspace{1em} FC \gets 80 \mathopen{}\left( I_c + C(FC) \mathclose{}\right) - 137 \\ \hspace{1em} FC \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( FC, 0, 100 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ FC \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
fines_content_fitting_parameter float

Fines content fitting parameter for liquefaction

0.0

Returns:

Name Type Description
fines_content float

Percentage of fines passing No. 200 sieve

get_fines_content__idriss2008soil

get_fines_content__idriss2008soil(soil_behavior_type_index)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_fines\_content\_\_idriss2008soil}(I_c) \\ \hspace{1em} FC \gets 2.8 I_c^{2.6} \\ \hspace{1em} FC \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( FC, 0, 100 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ FC \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required

Returns:

Name Type Description
fines_content float

Percentage of fines passing No. 200 sieve

get_fines_content__robertson1998evaluating

get_fines_content__robertson1998evaluating(
    soil_behavior_type_index, normalized_friction_ratio
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_fines\_content\_\_robertson1998evaluating}(I_c, F_r) \\ \hspace{1em} \mathrm{condition\_1} \gets I_c \le 1.26 \\ \hspace{1em} \mathrm{choice\_1} \gets 0 \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( I_c > 1.26 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_c \le 3.5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets 1.75 I_c^{3.25} - 3.7 \\ \hspace{1em} \mathrm{condition\_3} \gets I_c > 3.5 \\ \hspace{1em} \mathrm{choice\_3} \gets 100 \\ \hspace{1em} \mathrm{condition\_4} \gets \mathopen{}\left( I_c \ge 1.64 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_c \le 2.36 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( F_r < 0.5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_4} \gets 5 \\ \hspace{1em} FC \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} FC \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( FC, \mathrm{None}, 100 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ FC \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
normalized_friction_ratio float

Normalized friction ratio from CPT

required

Returns:

Name Type Description
fines_content float

Percentage of fines passing No. 200 sieve

get_fines_content__saye2017linear

get_fines_content__saye2017linear(
    soil_classification_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_fines\_content\_\_saye2017linear}(ΔQ) \\ \hspace{1em} FC \gets \mathrm{ReferenceFigureRegistry}.\mathrm{FinesContentSaye2017}.\mathrm{interpolate\_at\_x} \mathopen{}\left( ΔQ \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ FC \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_classification_index float

Soil classification index per Saye

required

Returns:

Name Type Description
fines_content float

Percentage of fines passing No. 200 sieve

get_friction_angle__kulhawy1990manual

get_friction_angle__kulhawy1990manual(
    stress_normalized_cone_resistance, is_fine_soil
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_friction\_angle\_\_kulhawy1990manual}(Q_{tn}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} ϕ \gets 17.6 + 11 \log_{10} Q_{tn} \\ \hspace{1em} ϕ \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( ϕ \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( ϕ, \mathrm{is\_fine\_soil}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ϕ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
friction_angle float

Friction angle of soil

get_friction_angle__robertson2012interpretation

get_friction_angle__robertson2012interpretation(
    constant_volume_friction_angle,
    clean_sand_normalized_cone_resistance,
    is_invalid_data,
    is_fine_soil,
    soil_transition,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_friction\_angle\_\_robertson2012interpretation}(ϕ_{cv}, Q_{tncs}, \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}, SBT_n) \\ \hspace{1em} ϕ \gets ϕ_{cv} + 15.84 \log_{10} Q_{tncs} - 26.88 \\ \hspace{1em} ϕ \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( ϕ \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( ϕ, \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition} \mathbin{|} \mathopen{}\left( SBT_n = \textrm{"0"} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} ϕ \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( ϕ, ϕ_{cv}, \mathrm{None} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ϕ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
constant_volume_friction_angle float

Constant volume friction angle of soil

required
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
friction_angle float

Friction angle of soil

get_friction_ratio

get_friction_ratio(
    sleeve_friction, corrected_cone_tip_resistance
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_friction\_ratio}(f_s, q_t) \\ \hspace{1em} R_f \gets \frac{0.1 f_s}{q_t} \\ \hspace{1em} \mathbf{return} \ R_f \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
sleeve_friction float

Sleeve friction from CPT

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required

Returns:

Name Type Description
friction_ratio float

Friction ratio from CPT

get_is_fine_soil_bustamante1982fellenius

get_is_fine_soil_bustamante1982fellenius(soil_type_index)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_is\_fine\_soil\_bustamante1982fellenius}(\mathrm{soil\_type\_index}) \\ \hspace{1em} \mathrm{is\_fine\_soil} \gets \mathrm{np}.\mathrm{isin} \mathopen{}\left( \mathrm{soil\_type\_index}, \mathopen{}\left[ \textrm{"0"}, \textrm{"1"}, \textrm{"2"}, \textrm{"3"} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{is\_fine\_soil} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_type_index str

Index for soil type classification

required

Returns:

Name Type Description
is_fine_soil bool

Indicates if soil is fine-grained

get_is_fine_soil_cpt

get_is_fine_soil_cpt(
    is_fine_soil_criteria,
    normalized_soil_behavior_type=STRING_DTYPE_NA,
    soil_behavior_type_index=float("nan"),
    soil_behavior_type_index_cutoff=2.6,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_is\_fine\_soil\_cpt}(\mathrm{is\_fine\_soil\_criteria}, SBT_n, I_c, I_{c\ cutoff}) \\ \hspace{1em} \mathrm{is\_fine\_soil} \gets \mathrm{None} \\ \hspace{1em} \mathbf{if} \ \mathrm{is\_fine\_soil\_criteria} = \textrm{"sbtn"} \\ \hspace{2em} \mathrm{is\_fine\_soil} \gets \mathrm{np}.\mathrm{isin} \mathopen{}\left( SBT_n, \mathopen{}\left[ \textrm{"1"}, \textrm{"2"}, \textrm{"3"}, \textrm{"4"}, \textrm{"9"} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{is\_fine\_soil\_criteria} = \textrm{"ic\_cutoff"} \\ \hspace{3em} \mathrm{is\_fine\_soil} \gets I_c > I_{c\ cutoff} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ \mathrm{is\_fine\_soil} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
is_fine_soil_criteria str

Criteria for fine soil classification

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

STRING_DTYPE_NA
soil_behavior_type_index float

Normalized soil behavior type index from CPT

float('nan')
soil_behavior_type_index_cutoff float

Cutoff for fine soil criteria and transition layer detection

2.6

Returns:

Name Type Description
is_fine_soil bool

Indicates if soil is fine-grained

get_is_invalid_data

get_is_invalid_data(cone_tip_resistance)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_is\_invalid\_data}(q_c) \\ \hspace{1em} \mathrm{is\_invalid\_data} \gets \mathrm{np}.\mathrm{isin} \mathopen{}\left( q_c, \mathopen{}\left[ -9999, -8888, -7777, -9876 \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{is\_invalid\_data} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required

Returns:

Name Type Description
is_invalid_data bool

Indicates invalid input data

get_is_potentially_liquefiable_cpt

get_is_potentially_liquefiable_cpt(
    below_water_table,
    depth,
    liquefaction_max_depth,
    is_fine_soil,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_is\_potentially\_liquefiable\_cpt}(\mathrm{below\_water\_table}, z, LIQ_{max\ z}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}) \\ \hspace{1em} \mathrm{is\_potentially\_liquefiable} \gets \mathrm{get\_is\_potentially\_liquefiable} \mathopen{}\left( \mathrm{below\_water\_table}, z, LIQ_{max\ z} \mathclose{}\right) \\ \hspace{1em} \mathrm{is\_potentially\_liquefiable} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( \mathrm{is\_potentially\_liquefiable} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( \mathrm{is\_potentially\_liquefiable}, \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition}, \mathrm{False} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{is\_potentially\_liquefiable} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
below_water_table bool

Indicates if soil layer is below water table

required
depth float

Depth below ground surface to bottom of layer

required
liquefaction_max_depth float

Maximum depth for liquefaction analysis

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
is_potentially_liquefiable bool

Indicates if soil is potentially liquefiable

get_iterative_parameters_cpt__boulanger2014cpt

get_iterative_parameters_cpt__boulanger2014cpt(
    cone_tip_resistance,
    fines_content,
    effective_stress,
    is_invalid_data,
    is_fine_soil,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_iterative\_parameters\_cpt\_\_boulanger2014cpt}(q_c, FC, σ_v', \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} n \gets \mathrm{None} \\ \hspace{1em} C_n \gets \mathrm{None} \\ \hspace{1em} Δq_{c1N} \gets \mathrm{None} \\ \hspace{1em} q_{c1Ncs} \gets \mathrm{None} \\ \hspace{1em} q_{c1N} \gets \mathrm{np}.\mathrm{ones\_like} \mathopen{}\left( q_c \mathclose{}\right) \\ \hspace{1em} \mathbf{for} \ \mathrm{\_} \in \mathrm{range} \mathopen{}\left( \mathrm{MAX\_ITER} \mathclose{}\right) \ \mathbf{do} \\ \hspace{2em} \mathrm{normalized\_cone\_resistance\_1atm\_old} \gets \mathrm{np}.\mathrm{copy} \mathopen{}\left( q_{c1N} \mathclose{}\right) \\ \hspace{2em} Δq_{c1N} \gets \mathopen{}\left( 11.9 + \frac{q_{c1N}}{14.6} \mathclose{}\right) \exp \mathopen{}\left( 1.63 - \frac{9.7}{FC + 2} - \mathopen{}\left( \frac{15.7}{FC + 2} \mathclose{}\right)^{2} \mathclose{}\right) \\ \hspace{2em} Δq_{c1N} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( Δq_{c1N} \mathclose{}\right) \\ \hspace{2em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Δq_{c1N}, \mathrm{np}.\mathrm{isclose} \mathopen{}\left( Δq_{c1N}, 0 \mathclose{}\right), 0 \mathclose{}\right) \\ \hspace{2em} q_{c1Ncs} \gets q_{c1N} + Δq_{c1N} \\ \hspace{2em} n \gets 1.338 - 0.249 \mathopen{}\left( \mathrm{np}.\mathrm{clip} \mathopen{}\left( q_{c1Ncs}, 21, 254 \mathclose{}\right) \mathclose{}\right)^{0.264} \\ \hspace{2em} C_n \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( \mathopen{}\left( \frac{101.325}{σ_v'} \mathclose{}\right)^{n}, 0, 1.7 \mathclose{}\right) \\ \hspace{2em} q_{c1N} \gets \frac{q_c \cdot 1000}{101.325} \cdot C_n \\ \hspace{2em} \mathbf{if} \ \mathrm{np}.\mathrm{nanmax} \mathopen{}\left( \mathopen{}\left| q_{c1N} - \mathrm{normalized\_cone\_resistance\_1atm\_old} \mathclose{}\right| \mathclose{}\right) < \mathrm{TOL} \\ \hspace{3em} \mathbf{break} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ for} \\ \hspace{1em} n \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( n \mathclose{}\right) \\ \hspace{1em} C_n \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( C_n \mathclose{}\right) \\ \hspace{1em} q_{c1N} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( q_{c1N} \mathclose{}\right) \\ \hspace{1em} Δq_{c1N} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( Δq_{c1N} \mathclose{}\right) \\ \hspace{1em} q_{c1Ncs} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( q_{c1Ncs} \mathclose{}\right) \\ \hspace{1em} \mathrm{nan\_mask} \gets \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( n, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( C_n, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_{c1N}, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Δq_{c1N}, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_{c1Ncs}, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathopen{}\left( n, C_n, q_{c1N}, Δq_{c1N}, q_{c1Ncs} \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required
fines_content float

Percentage of fines passing No. 200 sieve

required
effective_stress float

Effective vertical stress in soil

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
overburden_stress_exponent float

Stress exponent for overburden correction

overburden_correction float

Overburden correction factor for SPT

normalized_cone_resistance_1atm float

Normalized cone resistance at 1 atm

normalized_cone_resistance_fines_inc float

Fines content dependent increment to normalized cone resistance

clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

get_iterative_parameters_cpt__idriss2008soil

get_iterative_parameters_cpt__idriss2008soil(
    cone_tip_resistance,
    fines_content,
    effective_stress,
    is_invalid_data,
    is_fine_soil,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_iterative\_parameters\_cpt\_\_idriss2008soil}(q_c, FC, σ_v', \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} n \gets \mathrm{None} \\ \hspace{1em} C_n \gets \mathrm{None} \\ \hspace{1em} Δq_{c1N} \gets \mathrm{None} \\ \hspace{1em} q_{c1Ncs} \gets \mathrm{None} \\ \hspace{1em} q_{c1N} \gets \mathrm{np}.\mathrm{ones\_like} \mathopen{}\left( q_c \mathclose{}\right) \\ \hspace{1em} \mathbf{for} \ \mathrm{\_} \in \mathrm{range} \mathopen{}\left( \mathrm{MAX\_ITER} \mathclose{}\right) \ \mathbf{do} \\ \hspace{2em} \mathrm{normalized\_cone\_resistance\_1atm\_old} \gets \mathrm{np}.\mathrm{copy} \mathopen{}\left( q_{c1N} \mathclose{}\right) \\ \hspace{2em} Δq_{c1N} \gets \mathopen{}\left( 5.4 + \frac{q_{c1N}}{16} \mathclose{}\right) \exp \mathopen{}\left( 1.63 + \frac{9.7}{FC + 0.01} - \mathopen{}\left( \frac{15.7}{FC + 0.01} \mathclose{}\right)^{2} \mathclose{}\right) \\ \hspace{2em} Δq_{c1N} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( Δq_{c1N} \mathclose{}\right) \\ \hspace{2em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Δq_{c1N}, \mathrm{np}.\mathrm{isclose} \mathopen{}\left( Δq_{c1N}, 0 \mathclose{}\right), 0 \mathclose{}\right) \\ \hspace{2em} q_{c1Ncs} \gets q_{c1N} + Δq_{c1N} \\ \hspace{2em} n \gets 1.338 - 0.249 \mathopen{}\left( \mathrm{np}.\mathrm{clip} \mathopen{}\left( q_{c1Ncs}, 21, 254 \mathclose{}\right) \mathclose{}\right)^{0.264} \\ \hspace{2em} C_n \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( \mathopen{}\left( \frac{101.325}{σ_v'} \mathclose{}\right)^{n}, 0, 1.7 \mathclose{}\right) \\ \hspace{2em} q_{c1N} \gets \frac{q_c \cdot 1000}{101.325} \cdot C_n \\ \hspace{2em} \mathbf{if} \ \mathrm{np}.\mathrm{nanmax} \mathopen{}\left( \mathopen{}\left| q_{c1N} - \mathrm{normalized\_cone\_resistance\_1atm\_old} \mathclose{}\right| \mathclose{}\right) < \mathrm{TOL} \\ \hspace{3em} \mathbf{break} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ for} \\ \hspace{1em} n \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( n \mathclose{}\right) \\ \hspace{1em} C_n \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( C_n \mathclose{}\right) \\ \hspace{1em} q_{c1N} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( q_{c1N} \mathclose{}\right) \\ \hspace{1em} Δq_{c1N} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( Δq_{c1N} \mathclose{}\right) \\ \hspace{1em} q_{c1Ncs} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( q_{c1Ncs} \mathclose{}\right) \\ \hspace{1em} \mathrm{nan\_mask} \gets \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( n, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( C_n, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_{c1N}, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Δq_{c1N}, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_{c1Ncs}, \mathrm{nan\_mask}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathopen{}\left( n, C_n, q_{c1N}, Δq_{c1N}, q_{c1Ncs} \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required
fines_content float

Percentage of fines passing No. 200 sieve

required
effective_stress float

Effective vertical stress in soil

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
overburden_stress_exponent float

Stress exponent for overburden correction

overburden_correction float

Overburden correction factor for SPT

normalized_cone_resistance_1atm float

Normalized cone resistance at 1 atm

normalized_cone_resistance_fines_inc float

Fines content dependent increment to normalized cone resistance

clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

get_magnitude_scaling_factor_max_cpt__boulanger2014cpt

get_magnitude_scaling_factor_max_cpt__boulanger2014cpt(
    clean_sand_normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_magnitude\_scaling\_factor\_max\_cpt\_\_boulanger2014cpt}(q_{c1Ncs}) \\ \hspace{1em} MSF_{max} \gets 1.09 + \mathopen{}\left( \frac{q_{c1Ncs}}{180} \mathclose{}\right)^{3} \\ \hspace{1em} MSF_{max} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( MSF_{max}, \mathrm{None}, 2.2 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ MSF_{max} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required

Returns:

Name Type Description
magnitude_scaling_factor_max float

Maximum magnitude scaling factor

get_max_shear_strain__zhang2004estimating

get_max_shear_strain__zhang2004estimating(
    relative_density, liquefaction_safety_factor
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_max\_shear\_strain\_\_zhang2004estimating}(D_r, FS_{liq}) \\ \hspace{1em} γ_{max} \gets \mathrm{\_get\_max\_shear\_strain\_\_zhang2004estimating\_vec} \mathopen{}\left( FS_{liq}, D_r \mathclose{}\right) \\ \hspace{1em} γ_{max} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{np}.\mathrm{isnan} \mathopen{}\left( γ_{max} \mathclose{}\right) \mathbin{|} \mathopen{}\left( FS_{liq} \ge 2 \mathclose{}\right), 0, γ_{max} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ γ_{max} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
relative_density float

Relative density of soil

required
liquefaction_safety_factor float

Factor of safety against liquefaction triggering

required

Returns:

Name Type Description
max_shear_strain float

Maximum shear strain in soil

get_max_shear_strain__zhang2004estimating_scalar

get_max_shear_strain__zhang2004estimating_scalar(
    liquefaction_safety_factor, relative_density
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_max\_shear\_strain\_\_zhang2004estimating\_scalar}(FS_{liq}, D_r) \\ \hspace{1em} \mathrm{relative\_density\_\_zhang2004estimating\_list} \gets \mathopen{}\left[ 40, 50, 60, 70, 80, 90 \mathclose{}\right] \\ \hspace{1em} \mathbf{if} \ \mathrm{np}.\mathrm{isnan} \mathopen{}\left( FS_{liq} \mathclose{}\right) \lor \mathrm{np}.\mathrm{isnan} \mathopen{}\left( D_r \mathclose{}\right) \\ \hspace{2em} γ_{max} \gets 0 \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ D_r = 90 \\ \hspace{3em} \mathbf{if} \ FS_{liq} < 0.7 \\ \hspace{4em} γ_{max} \gets 6.2 \\ \hspace{3em} \mathbf{else} \\ \hspace{4em} γ_{max} \gets 3.26 FS_{liq}^{-1.8} \\ \hspace{3em} \mathbf{end \ if} \\ \hspace{2em} \mathbf{else} \\ \hspace{3em} \mathbf{if} \ D_r = 80 \\ \hspace{4em} \mathbf{if} \ FS_{liq} < 0.56 \\ \hspace{5em} γ_{max} \gets 10 \\ \hspace{4em} \mathbf{else} \\ \hspace{5em} γ_{max} \gets 3.22 FS_{liq}^{-2.08} \\ \hspace{4em} \mathbf{end \ if} \\ \hspace{3em} \mathbf{else} \\ \hspace{4em} \mathbf{if} \ D_r = 70 \\ \hspace{5em} \mathbf{if} \ FS_{liq} < 0.59 \\ \hspace{6em} γ_{max} \gets 14.5 \\ \hspace{5em} \mathbf{else} \\ \hspace{6em} γ_{max} \gets 3.2 FS_{liq}^{-2.89} \\ \hspace{5em} \mathbf{end \ if} \\ \hspace{4em} \mathbf{else} \\ \hspace{5em} \mathbf{if} \ D_r = 60 \\ \hspace{6em} \mathbf{if} \ FS_{liq} < 0.66 \\ \hspace{7em} γ_{max} \gets 22.7 \\ \hspace{6em} \mathbf{else} \\ \hspace{7em} γ_{max} \gets 3.58 FS_{liq}^{-4.42} \\ \hspace{6em} \mathbf{end \ if} \\ \hspace{5em} \mathbf{else} \\ \hspace{6em} \mathbf{if} \ D_r = 50 \\ \hspace{7em} \mathbf{if} \ FS_{liq} < 0.72 \\ \hspace{8em} γ_{max} \gets 34.1 \\ \hspace{7em} \mathbf{else} \\ \hspace{8em} γ_{max} \gets 4.22 FS_{liq}^{-6.39} \\ \hspace{7em} \mathbf{end \ if} \\ \hspace{6em} \mathbf{else} \\ \hspace{7em} \mathbf{if} \ D_r = 40 \\ \hspace{8em} \mathbf{if} \ FS_{liq} < 0.81 \\ \hspace{9em} γ_{max} \gets 51.2 \\ \hspace{8em} \mathbf{else} \\ \hspace{9em} \mathbf{if} \ FS_{liq} \le 1 \\ \hspace{10em} γ_{max} \gets 250 \mathopen{}\left( 1 - FS_{liq} \mathclose{}\right) + 3.5 \\ \hspace{9em} \mathbf{else} \\ \hspace{10em} γ_{max} \gets \mathrm{np}.\mathrm{nan} \\ \hspace{9em} \mathbf{end \ if} \\ \hspace{8em} \mathbf{end \ if} \\ \hspace{7em} \mathbf{else} \\ \hspace{8em} \mathrm{idx} \gets \mathrm{np}.\mathrm{searchsorted} \mathopen{}\left( \mathrm{relative\_density\_\_zhang2004estimating\_list}, D_r \mathclose{}\right) \\ \hspace{8em} \mathrm{relative\_density\_bottom} \gets \mathrm{relative\_density\_\_zhang2004estimating\_list}_{\mathrm{idx} - 1} \\ \hspace{8em} \mathrm{max\_shear\_strain\_bottom} \gets \mathrm{get\_max\_shear\_strain\_\_zhang2004estimating\_scalar} \mathopen{}\left( FS_{liq}, \mathrm{relative\_density\_bottom} \mathclose{}\right) \\ \hspace{8em} \mathrm{relative\_density\_top} \gets \mathrm{relative\_density\_\_zhang2004estimating\_list}_{\mathrm{idx}} \\ \hspace{8em} \mathrm{max\_shear\_strain\_top} \gets \mathrm{get\_max\_shear\_strain\_\_zhang2004estimating\_scalar} \mathopen{}\left( FS_{liq}, \mathrm{relative\_density\_top} \mathclose{}\right) \\ \hspace{8em} γ_{max} \gets \mathrm{np}.\mathrm{interp} \mathopen{}\left( D_r, \mathopen{}\left[ \mathrm{relative\_density\_bottom}, \mathrm{relative\_density\_top} \mathclose{}\right], \mathopen{}\left[ \mathrm{max\_shear\_strain\_bottom}, \mathrm{max\_shear\_strain\_top} \mathclose{}\right] \mathclose{}\right) \\ \hspace{7em} \mathbf{end \ if} \\ \hspace{6em} \mathbf{end \ if} \\ \hspace{5em} \mathbf{end \ if} \\ \hspace{4em} \mathbf{end \ if} \\ \hspace{3em} \mathbf{end \ if} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ γ_{max} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
liquefaction_safety_factor float

Factor of safety against liquefaction triggering

required
relative_density float

Relative density of soil

required

Returns:

Name Type Description
max_shear_strain float

Maximum shear strain in soil

get_max_shear_strain_f_alpha_term_cpt__idriss2008soil

get_max_shear_strain_f_alpha_term_cpt__idriss2008soil(
    clean_sand_normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_max\_shear\_strain\_f\_alpha\_term\_cpt\_\_idriss2008soil}(q_{c1Ncs}) \\ \hspace{1em} q_{c1Ncs} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( q_{c1Ncs}, 69, \mathrm{None} \mathclose{}\right) \\ \hspace{1em} F_α \gets -11.74 + 8.34 q_{c1Ncs}^{0.264} - 1.371 q_{c1Ncs}^{0.528} \\ \hspace{1em} F_α \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( F_α \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ F_α \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required

Returns:

Name Type Description
max_shear_strain_f_alpha_term float

Term for maximum shear strain calculation

get_mean_corrected_cone_tip_resistance

get_mean_corrected_cone_tip_resistance(
    footing_embedment,
    footing_influence_depth,
    depth,
    corrected_cone_tip_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_mean\_corrected\_cone\_tip\_resistance}(D_f, z_{infl}, z, q_t) \\ \hspace{1em} \mathrm{depth\_rounded} \gets \mathrm{np}.\mathrm{round} \mathopen{}\left( z, 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{flag1} \gets \mathrm{np}.\mathrm{round} \mathopen{}\left( D_f, 5 \mathclose{}\right) \le \mathrm{depth\_rounded} \\ \hspace{1em} \mathrm{flag2} \gets \mathrm{depth\_rounded} \le \mathrm{np}.\mathrm{round} \mathopen{}\left( z_{infl}, 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{flag} \gets \mathrm{flag1} \mathbin{\&} \mathrm{flag2} \\ \hspace{1em} q_t \gets \mathrm{np}.\mathrm{copy} \mathopen{}\left( \mathrm{np}.\mathrm{broadcast\_to} \mathopen{}\left( q_t, \mathrm{flag}.\mathrm{shape} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( q_t, \mathord{\sim} \mathrm{flag}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} q_{t\ mean} \gets \mathrm{np}.\mathrm{nanmean} \mathopen{}\left( q_t \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ q_{t\ mean} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_embedment float

Depth of footing embedment

required
footing_influence_depth float

Depth of influence for footing

required
depth float

Depth below ground surface to bottom of layer

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required

Returns:

Name Type Description
mean_corrected_cone_tip_resistance float

Corrected cone tip resistance averaged over footing influence depth

get_modified_soil_behavior_type

get_modified_soil_behavior_type(
    normalized_friction_ratio,
    stress_normalized_cone_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_modified\_soil\_behavior\_type}(F_r, Q_{tn}) \\ \hspace{1em} SBT_{n\ mod} \gets \mathrm{ReferenceFigureRegistry}.\mathrm{ModifiedSoilBehaviourType}.\mathrm{assign\_polygons\_labels\_from\_xy\_data} \mathopen{}\left( F_r, Q_{tn} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_{n\ mod} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_friction_ratio float

Normalized friction ratio from CPT

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required

Returns:

Name Type Description
modified_soil_behavior_type str

Modified soil behavior type

get_modified_soil_behavior_type_index

get_modified_soil_behavior_type_index(
    stress_normalized_cone_resistance,
    normalized_friction_ratio,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_modified\_soil\_behavior\_type\_index}(Q_{tn}, F_r) \\ \hspace{1em} I_B \gets \frac{100 \mathopen{}\left( Q_{tn} + 10 \mathclose{}\right)}{Q_{tn} \cdot F_r + 70} \\ \hspace{1em} \mathbf{return} \ I_B \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
normalized_friction_ratio float

Normalized friction ratio from CPT

required

Returns:

Name Type Description
modified_soil_behavior_type_index float

Modified soil behaviour type index

get_modified_soil_behavior_type_label

get_modified_soil_behavior_type_label(
    modified_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_modified\_soil\_behavior\_type\_label}(SBT_{n\ mod}) \\ \hspace{1em} SBT_{n\ mod\ label} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( SBT_{n\ mod}, \mathrm{parameter\_registry}.\mathrm{get\_pair\_discrete\_field\_mapping} \mathopen{}\left( \textrm{"modified\_soil\_behavior\_type"}, \textrm{"modified\_soil\_behavior\_type\_label"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_{n\ mod\ label} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
modified_soil_behavior_type str

Modified soil behavior type

required

Returns:

Name Type Description
modified_soil_behavior_type_label str

Label for modified soil behavior type

get_nature_of_soil__bustamante1982pile

get_nature_of_soil__bustamante1982pile(
    friction_ratio, stress_normalized_cone_resistance
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_nature\_of\_soil\_\_bustamante1982pile}(R_f, Q_{tn}) \\ \hspace{1em} \mathrm{nature\_of\_soil} \gets \mathrm{ReferenceFigureRegistry}.\mathrm{NatureOfSoil}.\mathrm{assign\_polygons\_labels\_from\_xy\_data} \mathopen{}\left( R_f, Q_{tn} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( \mathrm{nature\_of\_soil}, R_f < 0.1, \textrm{"6"} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{nature\_of\_soil} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_ratio float

Friction ratio from CPT

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required

Returns:

Name Type Description
nature_of_soil str

Description of soil nature

get_non_normalized_soil_behavior_type_index

get_non_normalized_soil_behavior_type_index(
    corrected_cone_tip_resistance, friction_ratio
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_non\_normalized\_soil\_behavior\_type\_index}(q_t, R_f) \\ \hspace{1em} I_{SBT} \gets \mathrm{get\_soil\_behavior\_type\_index} \mathopen{}\left( \frac{1000 q_t}{101.325}, R_f \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ I_{SBT} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
friction_ratio float

Friction ratio from CPT

required

Returns:

Name Type Description
non_normalized_soil_behavior_type_index float

Non-normalized soil behavior type index

get_normalized_cone_resistance

get_normalized_cone_resistance(
    corrected_cone_tip_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_cone\_resistance}(q_t) \\ \hspace{1em} Q_t \gets \frac{1000 q_t}{101.325} \\ \hspace{1em} \mathbf{return} \ Q_t \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required

Returns:

Name Type Description
normalized_cone_resistance float

Normalized cone resistance from CPT

get_normalized_cone_resistance_fines_inc_sr__seed1987design

get_normalized_cone_resistance_fines_inc_sr__seed1987design(
    fines_content, is_fine_soil
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_cone\_resistance\_fines\_inc\_sr\_\_seed1987design}(FC, \mathrm{is\_fine\_soil}) \\ \hspace{1em} Δq_{c1N-Sr} \gets \mathrm{ReferenceFigureRegistry}.\mathrm{NormalizedConeResistanceFinesIncSeed1987}.\mathrm{interpolate\_at\_x} \mathopen{}\left( FC \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Δq_{c1N-Sr}, \mathrm{is\_fine\_soil}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ Δq_{c1N-Sr} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
fines_content float

Percentage of fines passing No. 200 sieve

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
normalized_cone_resistance_fines_inc_sr float

Fines content increment to normalized cone resistance for residual shear strength

get_normalized_friction_ratio

get_normalized_friction_ratio(
    sleeve_friction,
    corrected_cone_tip_resistance,
    total_stress,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_friction\_ratio}(f_s, q_t, σ_v) \\ \hspace{1em} F_r \gets \frac{100 f_s}{\frac{q_t}{0.001} - σ_v} \\ \hspace{1em} \mathbf{return} \ F_r \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
sleeve_friction float

Sleeve friction from CPT

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required

Returns:

Name Type Description
normalized_friction_ratio float

Normalized friction ratio from CPT

get_normalized_pore_pressure

get_normalized_pore_pressure(
    pore_pressure,
    pore_water_pressure,
    effective_stress,
    is_invalid_data,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_pore\_pressure}(u, u_0, σ_v', \mathrm{is\_invalid\_data}) \\ \hspace{1em} U_2 \gets \frac{u - u_0}{σ_v'} \\ \hspace{1em} U_2 \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( U_2 \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( U_2, \mathrm{is\_invalid\_data}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ U_2 \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
pore_pressure float

Pore pressure in soil

required
pore_water_pressure float

Pore water pressure in soil

required
effective_stress float

Effective vertical stress in soil

required
is_invalid_data bool

Indicates invalid input data

required

Returns:

Name Type Description
normalized_pore_pressure float

Normalized pore pressure from CPT

get_normalized_pore_pressure_ratio

get_normalized_pore_pressure_ratio(
    pore_pressure,
    pore_water_pressure,
    corrected_cone_tip_resistance,
    total_stress,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_pore\_pressure\_ratio}(u, u_0, q_t, σ_v) \\ \hspace{1em} B_q \gets \frac{u - u_0}{q_t \cdot 1000 - σ_v} \\ \hspace{1em} \mathbf{return} \ B_q \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
pore_pressure float

Pore pressure in soil

required
pore_water_pressure float

Pore water pressure in soil

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required

Returns:

Name Type Description
normalized_pore_pressure_ratio float

Normalized pore pressure ratio from CPT

get_normalized_residual_shear_strength__robertson2022evaluation

get_normalized_residual_shear_strength__robertson2022evaluation(
    clean_sand_normalized_cone_resistance,
    soil_behavior_type_index,
    sleeve_friction,
    effective_stress,
    constant_volume_friction_angle,
    shear_strength,
    normalized_soil_behavior_type,
    soil_transition,
    use_constant_volume_friction_angle=True,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_residual\_shear\_strength\_\_robertson2022evaluation}(Q_{tncs}, I_c, f_s, σ_v', ϕ_{cv}, τ, SBT_n, \mathrm{soil\_transition}, \mathrm{use\_constant\_volume\_friction\_angle}) \\ \hspace{1em} \mathrm{is\_fine\_soil} \gets \mathrm{get\_is\_fine\_soil\_cpt} \mathopen{}\left( \mathclose{}\right) \\ \hspace{1em} S_{r\ ratio} \gets 0.0007 \exp \mathopen{}\left( 0.084 Q_{tncs} \mathclose{}\right) + \frac{0.3}{Q_{tncs}} \\ \hspace{1em} \mathbf{if} \ \mathrm{use\_constant\_volume\_friction\_angle} \\ \hspace{2em} ϕ \gets ϕ_{cv} \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathrm{false\_array} \gets \mathrm{np}.\mathrm{full\_like} \mathopen{}\left( Q_{tncs}, \mathrm{False} \mathclose{}\right) \\ \hspace{2em} ϕ \gets \mathrm{get\_friction\_angle\_\_robertson2012interpretation} \mathopen{}\left( \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathrm{condition\_1} \gets \mathopen{}\left( I_c < 3 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} < 20 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets 0.02 \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( I_c < 3 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 20 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} < 80 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets S_{r\ ratio} \\ \hspace{1em} \mathrm{condition\_3} \gets \mathopen{}\left( I_c < 3 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 80 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_fine\_soil}, \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right), \mathrm{np}.\mathrm{where} \mathopen{}\left( σ_v' \ne 0, \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( \frac{τ}{σ_v'} \mathclose{}\right), \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \mathclose{}\right) \mathclose{}\right), \mathrm{None}, S_{r\ ratio} \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_4} \gets I_c \ge 3 \\ \hspace{1em} \mathrm{choice\_4} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( σ_v' \ne 0, \frac{f_s}{σ_v'}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} S_{r\ ratio} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( S_{r\ ratio}, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_{r\ ratio} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
sleeve_friction float

Sleeve friction from CPT

required
effective_stress float

Effective vertical stress in soil

required
constant_volume_friction_angle float

Constant volume friction angle of soil

required
shear_strength float

Shear strength of soil

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required
soil_transition bool

Flag for soil type transition

required
use_constant_volume_friction_angle bool

Uses constant volume friction angle for residual strength

True

Returns:

Name Type Description
normalized_residual_shear_strength float

Post-liquefaction residual shear strength to effective stress ratio

get_normalized_residual_shear_strength_cpt__idriss2007spt

get_normalized_residual_shear_strength_cpt__idriss2007spt(
    clean_sand_normalized_cone_resistance_1atm,
    friction_angle,
    void_redistribution_is_significant,
    is_fine_soil,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_residual\_shear\_strength\_cpt\_\_idriss2007spt}(q_{c1Ncs}, ϕ, \mathrm{void\_redistribution\_is\_significant}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} S_{r\ ratio} \gets \exp \mathopen{}\left( \frac{q_{c1Ncs}}{24.5} - \mathopen{}\left( \frac{q_{c1Ncs}}{61.7} \mathclose{}\right)^{2} + \mathopen{}\left( \frac{q_{c1Ncs}}{106} \mathclose{}\right)^{3} - 4.42 \mathclose{}\right) \\ \hspace{1em} \mathbf{if} \ \lnot \mathrm{void\_redistribution\_is\_significant} \\ \hspace{2em} S_{r\ ratio} \gets S_{r\ ratio} \cdot \mathopen{}\left( 1 + \exp \mathopen{}\left( \frac{q_{c1Ncs}}{11.1} - 9.82 \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} S_{r\ ratio} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( S_{r\ ratio} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( S_{r\ ratio}, \mathrm{is\_fine\_soil}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} S_{r\ ratio} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( S_{r\ ratio}, 0, \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_{r\ ratio} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required
friction_angle float

Friction angle of soil

required
void_redistribution_is_significant bool

Applies for I&B residual shear strength calculations

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
normalized_residual_shear_strength float

Post-liquefaction residual shear strength to effective stress ratio

get_normalized_residual_shear_strength_cpt__idriss2008soil

get_normalized_residual_shear_strength_cpt__idriss2008soil(
    clean_sand_normalized_cone_resistance_1atm_sr,
    friction_angle,
    void_redistribution_is_significant,
    is_fine_soil,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_residual\_shear\_strength\_cpt\_\_idriss2008soil}(q_{c1Ncs-Sr}, ϕ, \mathrm{void\_redistribution\_is\_significant}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} \mathbf{return} \ \mathrm{get\_normalized\_residual\_shear\_strength\_cpt\_\_idriss2007spt} \mathopen{}\left( \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm_sr float

Equivalent clean sand normalized cone resistance at 1 atm for residual shear strength

required
friction_angle float

Friction angle of soil

required
void_redistribution_is_significant bool

Applies for I&B residual shear strength calculations

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
normalized_residual_shear_strength float

Post-liquefaction residual shear strength to effective stress ratio

get_normalized_residual_shear_strength_liq__robertson2022evaluation

get_normalized_residual_shear_strength_liq__robertson2022evaluation(
    clean_sand_normalized_cone_resistance,
    soil_behavior_type_index,
    sleeve_friction,
    effective_stress,
    constant_volume_friction_angle,
    shear_strength,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_residual\_shear\_strength\_liq\_\_robertson2022evaluation}(Q_{tncs}, I_c, f_s, σ_v', ϕ_{cv}, τ, SBT_n) \\ \hspace{1em} \mathbf{return} \ \mathrm{get\_normalized\_residual\_shear\_strength\_\_robertson2022evaluation} \mathopen{}\left( \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
sleeve_friction float

Sleeve friction from CPT

required
effective_stress float

Effective vertical stress in soil

required
constant_volume_friction_angle float

Constant volume friction angle of soil

required
shear_strength float

Shear strength of soil

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
normalized_residual_shear_strength float

Post-liquefaction residual shear strength to effective stress ratio

get_normalized_soil_behavior_type

get_normalized_soil_behavior_type(
    normalized_friction_ratio,
    stress_normalized_cone_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_soil\_behavior\_type}(F_r, Q_{tn}) \\ \hspace{1em} SBT_n \gets \mathrm{ReferenceFigureRegistry}.\mathrm{NormalizedSoilBehaviourType}.\mathrm{assign\_polygons\_labels\_from\_xy\_data} \mathopen{}\left( F_r, Q_{tn} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_n \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_friction_ratio float

Normalized friction ratio from CPT

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required

Returns:

Name Type Description
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

get_normalized_soil_behavior_type_label

get_normalized_soil_behavior_type_label(
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_normalized\_soil\_behavior\_type\_label}(SBT_n) \\ \hspace{1em} SBT_{n\ label} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( SBT_n, \mathrm{parameter\_registry}.\mathrm{get\_pair\_discrete\_field\_mapping} \mathopen{}\left( \textrm{"normalized\_soil\_behavior\_type"}, \textrm{"normalized\_soil\_behavior\_type\_label"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_{n\ label} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
normalized_soil_behavior_type_label str

Label for normalized soil behavior type

get_overburden_correction_coefficient_cpt__idriss2006semi

get_overburden_correction_coefficient_cpt__idriss2006semi(
    normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_overburden\_correction\_coefficient\_cpt\_\_idriss2006semi}(q_{c1N}) \\ \hspace{1em} q_{c1N} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( q_{c1N}, \mathrm{None}, 211 \mathclose{}\right) \\ \hspace{1em} C_σ \gets \frac{1}{37.3 - 8.27 q_{c1N}^{0.264}} \\ \hspace{1em} \mathbf{return} \ C_σ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_cone_resistance_1atm float

Normalized cone resistance at 1 atm

required

Returns:

Name Type Description
overburden_correction_coefficient float

Coefficient for overburden correction

get_overburden_correction_coefficient_cpt__idriss2008soil

get_overburden_correction_coefficient_cpt__idriss2008soil(
    clean_sand_normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_overburden\_correction\_coefficient\_cpt\_\_idriss2008soil}(q_{c1Ncs}) \\ \hspace{1em} \mathbf{return} \ \mathrm{get\_overburden\_correction\_coefficient\_cpt\_\_idriss2006semi} \mathopen{}\left( q_{c1Ncs} \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required

Returns:

Name Type Description
overburden_correction_coefficient float

Coefficient for overburden correction

get_overburden_normalized_cone_resistance__saye2021common

get_overburden_normalized_cone_resistance__saye2021common(
    cone_tip_resistance, overburden_correction
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_overburden\_normalized\_cone\_resistance\_\_saye2021common}(q_c, C_n) \\ \hspace{1em} q_{c1} \gets q_c \cdot 1000 C_n \\ \hspace{1em} \mathbf{return} \ q_{c1} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required
overburden_correction float

Overburden correction factor for SPT

required

Returns:

Name Type Description
overburden_normalized_cone_resistance float

Overburden normalized cone resistance from CPT

get_overburden_stress_exponent__robertson2009interpretation

get_overburden_stress_exponent__robertson2009interpretation(
    corrected_cone_tip_resistance,
    total_stress,
    effective_stress,
    normalized_friction_ratio,
    is_invalid_data,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_overburden\_stress\_exponent\_\_robertson2009interpretation}(q_t, σ_v, σ_v', F_r, \mathrm{is\_invalid\_data}) \\ \hspace{1em} n \gets \mathrm{np}.\mathrm{ones\_like} \mathopen{}\left( q_t \mathclose{}\right) \\ \hspace{1em} \mathbf{for} \ \mathrm{\_} \in \mathrm{range} \mathopen{}\left( \mathrm{MAX\_ITER} \mathclose{}\right) \ \mathbf{do} \\ \hspace{2em} \mathrm{overburden\_stress\_exponent\_old} \gets \mathrm{np}.\mathrm{copy} \mathopen{}\left( n \mathclose{}\right) \\ \hspace{2em} Q_{tn} \gets \mathrm{get\_stress\_normalized\_cone\_resistance} \mathopen{}\left( q_t, σ_v, \mathrm{get\_overburden\_correction\_\_liao1986overburden} \mathopen{}\left( n, σ_v' \mathclose{}\right) \mathclose{}\right) \\ \hspace{2em} I_c \gets \mathrm{get\_soil\_behavior\_type\_index} \mathopen{}\left( Q_{tn}, F_r \mathclose{}\right) \\ \hspace{2em} n \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( 0.381 I_c + 0.05 \frac{σ_v'}{101.325} - 0.15, 0, 1 \mathclose{}\right) \\ \hspace{2em} \mathbf{if} \ \mathrm{np}.\mathrm{nanmax} \mathopen{}\left( \mathopen{}\left| n - \mathrm{overburden\_stress\_exponent\_old} \mathclose{}\right| \mathclose{}\right) < \mathrm{TOL} \\ \hspace{3em} \mathbf{break} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ for} \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( n, \mathrm{is\_invalid\_data}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ n \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
effective_stress float

Effective vertical stress in soil

required
normalized_friction_ratio float

Normalized friction ratio from CPT

required
is_invalid_data bool

Indicates invalid input data

required

Returns:

Name Type Description
overburden_stress_exponent float

Stress exponent for overburden correction

get_overconsolidation_ratio__robertson2012interpretation

get_overconsolidation_ratio__robertson2012interpretation(
    overconsolidation_ratio_factor,
    stress_normalized_cone_resistance,
    is_fine_soil,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_overconsolidation\_ratio\_\_robertson2012interpretation}(k, Q_{tn}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}) \\ \hspace{1em} OCR \gets k \cdot Q_{tn} \\ \hspace{1em} OCR \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( OCR \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( OCR, \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ OCR \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
overconsolidation_ratio_factor float

Factor for overconsolidation ratio

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
overconsolidation_ratio float

Overconsolidation ratio of soil

get_overconsolidation_ratio_factor__robertson2012interpretation

get_overconsolidation_ratio_factor__robertson2012interpretation(
    stress_normalized_cone_resistance,
    normalized_friction_ratio,
    is_fine_soil,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_overconsolidation\_ratio\_factor\_\_robertson2012interpretation}(Q_{tn}, F_r, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}) \\ \hspace{1em} k \gets \frac{Q_{tn}^{0.25}}{\mathopen{}\left( 2.625 + 1.75 \log_{10} F_r \mathclose{}\right)^{1.25}} \\ \hspace{1em} k \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( k \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( k, \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ k \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
normalized_friction_ratio float

Normalized friction ratio from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
overconsolidation_ratio_factor float

Factor for overconsolidation ratio

get_peak_friction_angle__mayne2005integrated

get_peak_friction_angle__mayne2005integrated(
    normalized_pore_pressure_ratio,
    stress_normalized_cone_resistance,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_peak\_friction\_angle\_\_mayne2005integrated}(B_q, Q_{tn}, \mathrm{soil\_transition}) \\ \hspace{1em} ϕ' \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathopen{}\left( B_q > 0.1 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( B_q < 1 \mathclose{}\right), 29.5 B_q^{0.121} \cdot \mathopen{}\left( 0.256 + 0.336 B_q + \log_{10} Q_{tn} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( ϕ', \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ϕ' \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_pore_pressure_ratio float

Normalized pore pressure ratio from CPT

required
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
peak_friction_angle float

Peak friction angle of soil

get_peak_undrained_shear_strength_ratio__idriss2008soil

get_peak_undrained_shear_strength_ratio__idriss2008soil(
    soil_behavior_type_index,
    clean_sand_normalized_cone_resistance_1atm,
    undrained_shear_strength,
    effective_stress,
    constant_volume_friction_angle,
    is_fine_soil,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_peak\_undrained\_shear\_strength\_ratio\_\_idriss2008soil}(I_c, q_{c1Ncs}, S_u, σ_v', ϕ_{cv}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} S_{u\ ratio\ peak} \gets \mathrm{get\_peak\_undrained\_shear\_strength\_ratio\_\_robertson2022evaluation} \mathopen{}\left( I_c, q_{c1Ncs}, S_u, σ_v', ϕ_{cv} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( S_{u\ ratio\ peak}, \mathord{\sim} \mathrm{is\_fine\_soil}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_{u\ ratio\ peak} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required
undrained_shear_strength float

Undrained shear strength of soil

required
effective_stress float

Effective vertical stress in soil

required
constant_volume_friction_angle float

Constant volume friction angle of soil

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
peak_undrained_shear_strength_ratio float

Peak undrained shear strength to effective stress ratio

get_peak_undrained_shear_strength_ratio__robertson2022evaluation

get_peak_undrained_shear_strength_ratio__robertson2022evaluation(
    soil_behavior_type_index,
    clean_sand_normalized_cone_resistance,
    undrained_shear_strength,
    effective_stress,
    constant_volume_friction_angle,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_peak\_undrained\_shear\_strength\_ratio\_\_robertson2022evaluation}(I_c, Q_{tncs}, S_u, σ_v', ϕ_{cv}) \\ \hspace{1em} \mathrm{false\_array} \gets \mathrm{np}.\mathrm{full\_like} \mathopen{}\left( Q_{tncs}, \mathrm{False} \mathclose{}\right) \\ \hspace{1em} ϕ \gets \mathrm{get\_friction\_angle\_\_robertson2012interpretation} \mathopen{}\left( \mathclose{}\right) \\ \hspace{1em} S_{u\ ratio\ peak} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( I_c < 3, \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right), \frac{S_u}{σ_v'} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_{u\ ratio\ peak} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
undrained_shear_strength float

Undrained shear strength of soil

required
effective_stress float

Effective vertical stress in soil

required
constant_volume_friction_angle float

Constant volume friction angle of soil

required

Returns:

Name Type Description
peak_undrained_shear_strength_ratio float

Peak undrained shear strength to effective stress ratio

get_permeability__robertson2010estimatingb

get_permeability__robertson2010estimatingb(
    soil_behavior_type_index,
    is_invalid_data,
    soil_transition,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_permeability\_\_robertson2010estimatingb}(I_c, \mathrm{is\_invalid\_data}, \mathrm{soil\_transition}, SBT_n) \\ \hspace{1em} \mathrm{condition\_1} \gets \mathopen{}\left( I_c > 1 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_c \le 3.27 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets 10^{0.952 - 3.04 I_c} \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( I_c > 3.27 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_c \le 4 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets 10^{-4.52 - 1.37 I_c} \\ \hspace{1em} k \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( k, \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{soil\_transition} \mathbin{|} \mathopen{}\left( SBT_n = \textrm{"0"} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ k \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
is_invalid_data bool

Indicates invalid input data

required
soil_transition bool

Flag for soil type transition

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
permeability float

Soil permeability

get_pile_friction_coefficient__bustamante1982fellenius

get_pile_friction_coefficient__bustamante1982fellenius(
    cone_tip_resistance, is_fine_soil, pile_type_category
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_friction\_coefficient\_\_bustamante1982fellenius}(q_c, \mathrm{is\_fine\_soil}, \mathrm{pile\_type\_category}) \\ \hspace{1em} \textrm{" steel if LCPC group equals IIB, else concrete "} \\ \hspace{1em} \mathrm{is\_concrete} \gets \mathrm{pile\_type\_category} \ne \textrm{"IIB"} \\ \hspace{1em} \mathrm{condition\_1} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 1 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_concrete}, 90, 30 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_2} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_concrete}, 40, 80 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_3} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_concrete}, 60, 120 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_4} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_4} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_concrete}, 60, 120 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_5} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 12 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_5} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_concrete}, 100, 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_6} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 12 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_6} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_concrete}, 150, 200 \mathclose{}\right) \\ \hspace{1em} α \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4}, \mathrm{condition\_5}, \mathrm{condition\_6} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4}, \mathrm{choice\_5}, \mathrm{choice\_6} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ α \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required
pile_type_category str

Category of pile type

required

Returns:

Name Type Description
pile_friction_coefficient float

Pile friction coefficient for shaft resistance

get_pile_friction_coefficient__bustamante1982pile

get_pile_friction_coefficient__bustamante1982pile(
    nature_of_soil, pile_type_category
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_friction\_coefficient\_\_bustamante1982pile}(\mathrm{nature\_of\_soil}, \mathrm{pile\_type\_category}) \\ \hspace{1em} α \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( \mathrm{nature\_of\_soil}, \mathrm{ReferenceDataSets}.\mathrm{PileFrictionCoefficientBustamante1982}.\mathrm{to\_index\_map} \mathopen{}\left( \textrm{"nature\_of\_soil"}, \mathrm{str} \mathopen{}\left( \mathrm{pile\_type\_category} \mathclose{}\right) \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ α \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
nature_of_soil str

Description of soil nature

required
pile_type_category str

Category of pile type

required

Returns:

Name Type Description
pile_friction_coefficient float

Pile friction coefficient for shaft resistance

get_pile_tip_resistance_coefficient__eslami1997pile

get_pile_tip_resistance_coefficient__eslami1997pile(
    pile_diameter,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_tip\_resistance\_coefficient\_\_eslami1997pile}(D) \\ \hspace{1em} C_t \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( D > 0.4, \frac{1}{3 D}, 1.0 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ C_t \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
pile_diameter float

Outside diameter of pile

required

Returns:

Name Type Description
pile_tip_resistance_coefficient float

Coefficient for pile tip resistance

get_pile_tip_resistance_factor__bustamante1982fellenius

get_pile_tip_resistance_factor__bustamante1982fellenius(
    equivalent_cone_resistance,
    is_fine_soil,
    pile_type_category,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_tip\_resistance\_factor\_\_bustamante1982fellenius}(q_{ca}, \mathrm{is\_fine\_soil}, \mathrm{pile\_type\_category}) \\ \hspace{1em} \textrm{" bored if main LCPC group equals I, else driven "} \\ \hspace{1em} q_c \gets q_{ca} \\ \hspace{1em} \mathrm{is\_bored} \gets \mathrm{np}.\mathrm{isin} \mathopen{}\left( \mathrm{pile\_type\_category}, \mathopen{}\left( \textrm{"IA"}, \textrm{"IB"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_1} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 1 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_bored}, 0.4, 0.5 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_2} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 1 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( q_c < 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_bored}, 0.35, 0.45 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_3} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_bored}, 0.45, 0.55 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_4} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 5 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_4} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_bored}, 0.2, 0.4 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_5} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 5 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( q_c < 12 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_5} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_bored}, 0.4, 0.5 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_6} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 12 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_6} \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{is\_bored}, 0.3, 0.4 \mathclose{}\right) \\ \hspace{1em} k_c \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4}, \mathrm{condition\_5}, \mathrm{condition\_6} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4}, \mathrm{choice\_5}, \mathrm{choice\_6} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ k_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
equivalent_cone_resistance float

LCPC method equivalent average cone resistance

required
is_fine_soil bool

Indicates if soil is fine-grained

required
pile_type_category str

Category of pile type

required

Returns:

Name Type Description
pile_tip_resistance_factor float

LCPC method bearing capacity factor for pile tip

get_pile_tip_resistance_factor__bustamante1982pile

get_pile_tip_resistance_factor__bustamante1982pile(
    nature_of_soil, pile_type_category
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_tip\_resistance\_factor\_\_bustamante1982pile}(\mathrm{nature\_of\_soil}, \mathrm{pile\_type\_category}) \\ \hspace{1em} k_c \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( \mathrm{nature\_of\_soil}, \mathrm{ReferenceDataSets}.\mathrm{PileTipResistanceFactorBustamante1982}.\mathrm{to\_index\_map} \mathopen{}\left( \textrm{"nature\_of\_soil"}, \mathrm{str} \mathopen{}\left( \mathrm{pile\_type\_category} \mathclose{}\right) \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ k_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
nature_of_soil str

Description of soil nature

required
pile_type_category str

Category of pile type

required

Returns:

Name Type Description
pile_tip_resistance_factor float

LCPC method bearing capacity factor for pile tip

get_pile_unit_tip_resistance__bustamante1982pile

get_pile_unit_tip_resistance__bustamante1982pile(
    equivalent_cone_resistance, pile_tip_resistance_factor
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_unit\_tip\_resistance\_\_bustamante1982pile}(q_{ca}, k_c) \\ \hspace{1em} q_p \gets q_{ca} \cdot k_c \\ \hspace{1em} q_p \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( q_p, \mathrm{None}, 15 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ q_p \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
equivalent_cone_resistance float

LCPC method equivalent average cone resistance

required
pile_tip_resistance_factor float

LCPC method bearing capacity factor for pile tip

required

Returns:

Name Type Description
pile_unit_tip_resistance float

Unit tip resistance of pile

get_pile_unit_tip_resistance__eslami1997pile

get_pile_unit_tip_resistance__eslami1997pile(
    effective_cone_resistance_geometric_mean,
    pile_tip_resistance_coefficient,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_pile\_unit\_tip\_resistance\_\_eslami1997pile}(q_{Eg}, C_t) \\ \hspace{1em} q_p \gets q_{Eg} \cdot C_t \\ \hspace{1em} \mathbf{return} \ q_p \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
effective_cone_resistance_geometric_mean float

Geometric mean of effective cone resistance over influence zone

required
pile_tip_resistance_coefficient float

Coefficient for pile tip resistance

required

Returns:

Name Type Description
pile_unit_tip_resistance float

Unit tip resistance of pile

get_plasticity_index__ramsey2023estimating

get_plasticity_index__ramsey2023estimating(
    normalized_friction_ratio,
    normalized_pore_pressure_ratio,
    alternative_normalized_cone_resistance,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_plasticity\_index\_\_ramsey2023estimating}(F_r, B_q, Q_{t1}, \mathrm{soil\_transition}) \\ \hspace{1em} PI \gets \frac{12 F_r \cdot \mathopen{}\left( 1 + B_q \mathclose{}\right)^{1.2}}{\mathopen{}\left( \frac{Q_{t1}}{3} \mathclose{}\right)^{0.3}} \\ \hspace{1em} PI \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( PI \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( PI, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ PI \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_friction_ratio float

Normalized friction ratio from CPT

required
normalized_pore_pressure_ratio float

Normalized pore pressure ratio from CPT

required
alternative_normalized_cone_resistance float

Alternative normalized cone resistance from CPT

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
plasticity_index float

Plasticity index of soil

get_porosity__barounis2018estimation

get_porosity__barounis2018estimation(
    void_ratio, soil_transition
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_porosity\_\_barounis2018estimation}(e, \mathrm{soil\_transition}) \\ \hspace{1em} n \gets \frac{e}{1 + e} \\ \hspace{1em} n \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( n \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( n, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ n \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
void_ratio float

Void ratio of soil

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
porosity float

Fraction of soil volume taken up by pore space

get_relative_density__robertson2012guide

get_relative_density__robertson2012guide(
    stress_normalized_cone_resistance,
    relative_density_constant,
    is_invalid_data,
    is_fine_soil,
    soil_transition,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_relative\_density\_\_robertson2012guide}(Q_{tn}, k_{D_r}, \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}, SBT_n) \\ \hspace{1em} D_r \gets 100 \mathopen{}\left( \frac{Q_{tn}}{k_{D_r}} \mathclose{}\right)^{0.5} \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( D_r \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( D_r, \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition} \mathbin{|} \mathopen{}\left( SBT_n = \textrm{"0"} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( D_r, \mathrm{None}, 100 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ D_r \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
relative_density_constant float

Constant for relative density calculation

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
relative_density float

Relative density of soil

get_relative_density__robertson2024guide

get_relative_density__robertson2024guide(
    clean_sand_normalized_cone_resistance,
    relative_density_constant,
    is_invalid_data,
    is_fine_soil,
    soil_transition,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_relative\_density\_\_robertson2024guide}(Q_{tncs}, k_{D_r}, \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}, SBT_n) \\ \hspace{1em} D_r \gets 100 \mathopen{}\left( \frac{Q_{tncs}}{k_{D_r}} \mathclose{}\right)^{0.5} \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( D_r \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( D_r, \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition} \mathbin{|} \mathopen{}\left( SBT_n = \textrm{"0"} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{round} \mathopen{}\left( D_r, 0 \mathclose{}\right) \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( D_r, \mathrm{None}, 100 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ D_r \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
relative_density_constant float

Constant for relative density calculation

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
relative_density float

Relative density of soil

get_relative_density__tatsuoka1990evaluation

get_relative_density__tatsuoka1990evaluation(
    stress_normalized_cone_resistance, is_fine_soil
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_relative\_density\_\_tatsuoka1990evaluation}(Q_{tn}, \mathrm{is\_fine\_soil}) \\ \hspace{1em} D_r \gets -85 + 76 \log_{10} Q_{tn} \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( D_r \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( D_r, \mathopen{}\left( Q_{tn} > 200 \mathclose{}\right) \mathbin{|} \mathopen{}\left( D_r \le 0 \mathclose{}\right) \mathbin{|} \mathrm{is\_fine\_soil}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} D_r \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( \mathrm{np}.\mathrm{around} \mathopen{}\left( D_r \mathclose{}\right), 40, 90 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ D_r \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required

Returns:

Name Type Description
relative_density float

Relative density of soil

get_sensitivity__robertson2009interpretation

get_sensitivity__robertson2009interpretation(
    sensitivity_constant,
    normalized_friction_ratio,
    is_fine_soil,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_sensitivity\_\_robertson2009interpretation}(N_S, F_r, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}) \\ \hspace{1em} S_t \gets \frac{N_S}{F_r} \\ \hspace{1em} S_t \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( S_t \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( S_t, \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_t \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
sensitivity_constant float

Constant for sensitivity calculation

required
normalized_friction_ratio float

Normalized friction ratio from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
sensitivity float

Sensitivity of soil

get_shear_modulus__robertson2009interpretation

get_shear_modulus__robertson2009interpretation(
    corrected_cone_tip_resistance,
    total_stress,
    soil_behavior_type_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shear\_modulus\_\_robertson2009interpretation}(q_t, σ_v, I_c) \\ \hspace{1em} G_o \gets \mathopen{}\left( q_t - σ_v \cdot 0.001 \mathclose{}\right) \cdot 0.0188 \cdot 10^{0.55 I_c + 1.68} \\ \hspace{1em} \mathbf{return} \ G_o \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required

Returns:

Name Type Description
small_strain_shear_modulus float

Small strain shear modulus of soil

get_shear_strain_limit_cpt__idriss2008soil

get_shear_strain_limit_cpt__idriss2008soil(
    clean_sand_normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shear\_strain\_limit\_cpt\_\_idriss2008soil}(q_{c1Ncs}) \\ \hspace{1em} γ_{lim} \gets 100 \cdot 1.859 \mathopen{}\left( 2.163 - 0.478 q_{c1Ncs}^{0.264} \mathclose{}\right)^{3} \\ \hspace{1em} γ_{lim} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( γ_{lim}, 0, 50 \mathclose{}\right) \\ \hspace{1em} γ_{lim} \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( γ_{lim} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ γ_{lim} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required

Returns:

Name Type Description
shear_strain_limit float

Limiting value of shear strain

get_shear_velocity__robertson2022evaluation

get_shear_velocity__robertson2022evaluation(
    corrected_cone_tip_resistance,
    total_stress,
    soil_behavior_type_index,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shear\_velocity\_\_robertson2022evaluation}(q_t, σ_v, I_c, \mathrm{soil\_transition}) \\ \hspace{1em} α_{vs} \gets 10^{0.55 I_c + 1.68} \\ \hspace{1em} V_s \gets \mathopen{}\left( \frac{α_{vs} \cdot \mathopen{}\left( q_t \cdot 1000 - σ_v \mathclose{}\right)}{101.325} \mathclose{}\right)^{0.5} \\ \hspace{1em} V_s \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( V_s \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( V_s, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ V_s \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
shear_velocity float

Shear wave velocity of soil

get_soil_behavior_type

get_soil_behavior_type(
    friction_ratio, normalized_cone_resistance
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_behavior\_type}(R_f, Q_t) \\ \hspace{1em} SBT \gets \mathrm{ReferenceFigureRegistry}.\mathrm{SoilBehaviourType}.\mathrm{assign\_polygons\_labels\_from\_xy\_data} \mathopen{}\left( R_f, Q_t \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_ratio float

Friction ratio from CPT

required
normalized_cone_resistance float

Normalized cone resistance from CPT

required

Returns:

Name Type Description
soil_behavior_type str

Soil behavior type from CPT

get_soil_behavior_type_index

get_soil_behavior_type_index(
    stress_normalized_cone_resistance,
    normalized_friction_ratio,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_behavior\_type\_index}(Q_{tn}, F_r) \\ \hspace{1em} I_c \gets \mathopen{}\left( \mathopen{}\left( 3.47 - \log_{10} Q_{tn} \mathclose{}\right)^{2} + \mathopen{}\left( \log_{10} F_r + 1.22 \mathclose{}\right)^{2} \mathclose{}\right)^{0.5} \\ \hspace{1em} I_c \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( I_c, \mathrm{None}, 4.06 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ I_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

required
normalized_friction_ratio float

Normalized friction ratio from CPT

required

Returns:

Name Type Description
soil_behavior_type_index float

Normalized soil behavior type index from CPT

get_soil_behavior_type_label

get_soil_behavior_type_label(soil_behavior_type)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_behavior\_type\_label}(SBT) \\ \hspace{1em} SBT_{label} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( SBT, \mathrm{parameter\_registry}.\mathrm{get\_pair\_discrete\_field\_mapping} \mathopen{}\left( \textrm{"soil\_behavior\_type"}, \textrm{"soil\_behavior\_type\_label"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_{label} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type str

Soil behavior type from CPT

required

Returns:

Name Type Description
soil_behavior_type_label str

Label for soil behavior type

get_soil_behavior_type_schneider

get_soil_behavior_type_schneider(
    normalized_pore_pressure,
    alternative_normalized_cone_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_behavior\_type\_schneider}(U_2, Q_{t1}) \\ \hspace{1em} SBT_{Schneider} \gets \mathrm{ReferenceFigureRegistry}.\mathrm{SoilBehaviourTypeSchneider}.\mathrm{assign\_polygons\_labels\_from\_xy\_data} \mathopen{}\left( U_2, Q_{t1} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_{Schneider} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_pore_pressure float

Normalized pore pressure from CPT

required
alternative_normalized_cone_resistance float

Alternative normalized cone resistance from CPT

required

Returns:

Name Type Description
soil_behavior_type_schneider str

Soil behavior type per Schneider classification

get_soil_behavior_type_schneider_label

get_soil_behavior_type_schneider_label(
    soil_behavior_type_schneider,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_behavior\_type\_schneider\_label}(SBT_{Schneider}) \\ \hspace{1em} SBT_{Schneider\ label} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( SBT_{Schneider}, \mathrm{parameter\_registry}.\mathrm{get\_pair\_discrete\_field\_mapping} \mathopen{}\left( \textrm{"soil\_behavior\_type\_schneider"}, \textrm{"soil\_behavior\_type\_schneider\_label"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ SBT_{Schneider\ label} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_schneider str

Soil behavior type per Schneider classification

required

Returns:

Name Type Description
soil_behavior_type_schneider_label str

Label for Schneider soil behavior type

get_soil_classification_index__saye2017linear

get_soil_classification_index__saye2017linear(
    alternative_normalized_cone_resistance,
    sleeve_friction,
    effective_stress,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_classification\_index\_\_saye2017linear}(Q_{t1}, f_s, σ_v') \\ \hspace{1em} ΔQ \gets \frac{Q_{t1} + 10}{\frac{f_s}{σ_v'} + 0.67} \\ \hspace{1em} \mathbf{return} \ ΔQ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
alternative_normalized_cone_resistance float

Alternative normalized cone resistance from CPT

required
sleeve_friction float

Sleeve friction from CPT

required
effective_stress float

Effective vertical stress in soil

required

Returns:

Name Type Description
soil_classification_index float

Soil classification index per Saye

get_soil_classification_index_label__saye2017linear

get_soil_classification_index_label__saye2017linear(
    soil_classification_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_classification\_index\_label\_\_saye2017linear}(ΔQ) \\ \hspace{1em} ΔQ_{label} \gets \mathrm{parameter\_registry}.\mathrm{bin\_data} \mathopen{}\left( \textrm{"soil\_classification\_index"}, ΔQ, \textrm{"soil\_classification\_index\_label"} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ΔQ_{label} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_classification_index float

Soil classification index per Saye

required

Returns:

Name Type Description
soil_classification_index_label str

Label for soil classification index

get_soil_classification_index_uscs_symbol__saye2017linear

get_soil_classification_index_uscs_symbol__saye2017linear(
    soil_classification_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_classification\_index\_uscs\_symbol\_\_saye2017linear}(ΔQ) \\ \hspace{1em} \mathrm{uscs\_symbol} \gets \mathrm{parameter\_registry}.\mathrm{bin\_data} \mathopen{}\left( \textrm{"soil\_classification\_index"}, ΔQ, \textrm{"soil\_classification\_index\_uscs\_symbol"} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{uscs\_symbol} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_classification_index float

Soil classification index per Saye

required

Returns:

Name Type Description
soil_classification_index_uscs_symbol str

USCS symbol for soil classification index

get_soil_transition

get_soil_transition(
    soil_behavior_type_index,
    depth=float("nan"),
    soil_transition_min_index=float("nan"),
    soil_transition_max_index=float("nan"),
    soil_transition_min_rate_of_change=float("nan"),
    soil_transition_min_points=None,
    soil_transition_detection=False,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_transition}(I_c, z, I_{c\ min}, I_{c\ max}, \mathrm{soil\_transition\_min\_rate\_of\_change}, I_{c\ min\ points}, \mathrm{soil\_transition\_detection}) \\ \hspace{1em} \textrm{" Defines Ic transition zones based on rate of change in Ic "} \\ \hspace{1em} \mathrm{soil\_transition} \gets \mathrm{np}.\mathrm{full\_like} \mathopen{}\left( I_c \mathclose{}\right) \\ \hspace{1em} \mathbf{if} \ \lnot \mathrm{soil\_transition\_detection} \\ \hspace{2em} \mathbf{return} \ \mathrm{soil\_transition} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} I_{c\ cutoff} \gets 2.6 \\ \hspace{1em} \mathrm{diff} \gets \mathrm{np}.\mathrm{diff} \mathopen{}\left( I_c \mathclose{}\right) \\ \hspace{1em} \mathrm{is\_increasing} \gets \mathrm{diff} > 0 \\ \hspace{1em} \mathrm{is\_decreasing} \gets \mathrm{diff} < 0 \\ \hspace{1em} \mathrm{cpt\_delta\_ic\_ratio} \gets \frac{0.01 \mathopen{}\left| \mathrm{diff} \mathclose{}\right|}{\mathopen{}\left| \mathrm{np}.\mathrm{diff} \mathopen{}\left( z \mathclose{}\right) \mathclose{}\right|} \\ \hspace{1em} \mathrm{mask\_range} \gets \mathopen{}\left( I_c \ge I_{c\ min} \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_c \le I_{c\ max} \mathclose{}\right) \\ \hspace{1em} \mathrm{mask\_cpt\_delta\_ic\_ratio} \gets \mathrm{cpt\_delta\_ic\_ratio} \ge \mathrm{soil\_transition\_min\_rate\_of\_change} \\ \hspace{1em} \mathrm{is\_in\_range\_and\_valid\_delta\_ic\_ratio} \gets \mathrm{mask\_range} \mathbin{\&} \mathrm{mask\_cpt\_delta\_ic\_ratio} \\ \hspace{1em} I_{c\ min\ points} \gets \left\{ \begin{array}{ll} I_{c\ min\ points}, & \mathrm{if} \ I_{c\ min\ points} \ge 2 \\ 2, & \mathrm{otherwise} \end{array} \right. \\ \hspace{1em} \mathbf{for} \ \mathrm{soil\_behavior\_type\_index\_is\_} \in \mathopen{}\left( \mathrm{is\_increasing}, \mathrm{is\_decreasing} \mathclose{}\right) \ \mathbf{do} \\ \hspace{2em} \mathrm{soil\_behavior\_type\_index\_is\_\_mask} \gets \mathrm{is\_in\_range\_and\_valid\_delta\_ic\_ratio} \mathbin{\&} \mathrm{soil\_behavior\_type\_index\_is\_} \\ \hspace{2em} \mathopen{}\left( \mathrm{run\_values}, \mathrm{run\_starts}, \mathrm{run\_lengths} \mathclose{}\right) \gets \mathrm{find\_runs} \mathopen{}\left( \mathrm{soil\_behavior\_type\_index\_is\_\_mask} \mathclose{}\right) \\ \hspace{2em} \mathbf{for} \ \mathopen{}\left( \mathrm{value}, \mathrm{starts}, \mathrm{length} \mathclose{}\right) \in \mathrm{zip} \mathopen{}\left( \mathrm{run\_values}, \mathrm{run\_starts}, \mathrm{run\_lengths} \mathclose{}\right) \ \mathbf{do} \\ \hspace{3em} \mathbf{if} \ \mathrm{value} \\ \hspace{4em} \mathbf{if} \ \mathrm{starts} > 0 \land \mathrm{np}.\mathrm{take} \mathopen{}\left( \mathrm{mask\_range}, \mathrm{starts} - 1 \mathclose{}\right) \\ \hspace{5em} \mathrm{starts} \gets \mathrm{starts} - 1 \\ \hspace{5em} \mathrm{length} \gets \mathrm{length} + 1 \\ \hspace{4em} \mathbf{end \ if} \\ \hspace{4em} \mathrm{ends} \gets \mathrm{starts} + \mathrm{length} \\ \hspace{4em} \mathrm{indices} \gets \mathrm{np}.\mathrm{arange} \mathopen{}\left( \mathrm{starts}, \mathrm{ends} \mathclose{}\right) \\ \hspace{4em} \mathrm{soil\_behavior\_type\_index\_} \gets \mathrm{np}.\mathrm{take} \mathopen{}\left( I_c, \mathrm{indices} \mathclose{}\right) \\ \hspace{4em} \mathopen{}\left( \mathrm{soil\_behavior\_type\_index\_min}, \mathrm{soil\_behavior\_type\_index\_max} \mathclose{}\right) \gets \mathopen{}\left( \mathrm{np}.\mathrm{min} \mathopen{}\left( \mathrm{soil\_behavior\_type\_index\_} \mathclose{}\right), \mathrm{np}.\mathrm{max} \mathopen{}\left( \mathrm{soil\_behavior\_type\_index\_} \mathclose{}\right) \mathclose{}\right) \\ \hspace{4em} \mathrm{crosses\_cutoff} \gets \mathopen{}\left( \mathrm{soil\_behavior\_type\_index\_min} < I_{c\ cutoff} \mathclose{}\right) \mathbin{\&} \mathopen{}\left( I_{c\ cutoff} < \mathrm{soil\_behavior\_type\_index\_max} \mathclose{}\right) \\ \hspace{4em} \mathbf{if} \ \mathrm{length} \ge I_{c\ min\ points} \land \mathrm{crosses\_cutoff} \\ \hspace{5em} \mathrm{np}.\mathrm{put} \mathopen{}\left( \mathrm{soil\_transition}, \mathrm{indices}, \mathrm{True} \mathclose{}\right) \\ \hspace{4em} \mathbf{end \ if} \\ \hspace{3em} \mathbf{end \ if} \\ \hspace{2em} \mathbf{end \ for} \\ \hspace{1em} \mathbf{end \ for} \\ \hspace{1em} \mathbf{return} \ \mathrm{soil\_transition} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_behavior_type_index float

Normalized soil behavior type index from CPT

required
depth float

Depth below ground surface to bottom of layer

float('nan')
soil_transition_min_index float

Minimum I_c for soil type transition

float('nan')
soil_transition_max_index float

Maximum I_c for soil type transition

float('nan')
soil_transition_min_rate_of_change float

Minimum rate of change for soil transition

float('nan')
soil_transition_min_points int

Minimum points for soil transition detection

None
soil_transition_detection bool

Detection of soil type transition

False

Returns:

Name Type Description
soil_transition bool

Flag for soil type transition

get_soil_type_index

get_soil_type_index(
    sleeve_friction, effective_cone_resistance
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_type\_index}(f_s, q_E) \\ \hspace{1em} \mathrm{soil\_type\_index} \gets \mathrm{ReferenceFigureRegistry}.\mathrm{SoilTypeIndex}.\mathrm{assign\_polygons\_labels\_from\_xy\_data} \mathopen{}\left( f_s.\mathrm{clip} \mathopen{}\left( 1.5, \mathrm{None} \mathclose{}\right), q_E.\mathrm{clip} \mathopen{}\left( 0.15, \mathrm{None} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{soil\_type\_index} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
sleeve_friction float

Sleeve friction from CPT

required
effective_cone_resistance float

Effective cone resistance from CPT

required

Returns:

Name Type Description
soil_type_index str

Index for soil type classification

get_soil_type_index_label

get_soil_type_index_label(soil_type_index)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_type\_index\_label}(\mathrm{soil\_type\_index}) \\ \hspace{1em} \mathrm{soil\_type\_index\_label} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( \mathrm{soil\_type\_index}, \mathrm{parameter\_registry}.\mathrm{get\_pair\_discrete\_field\_mapping} \mathopen{}\left( \textrm{"soil\_type\_index"}, \textrm{"soil\_type\_index\_label"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{soil\_type\_index\_label} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_type_index str

Index for soil type classification

required

Returns:

Name Type Description
soil_type_index_label str

Label for soil type index

get_state_parameter__robertson2012interpretation

get_state_parameter__robertson2012interpretation(
    clean_sand_normalized_cone_resistance,
    is_invalid_data,
    is_fine_soil,
    soil_transition,
    normalized_soil_behavior_type,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_state\_parameter\_\_robertson2012interpretation}(Q_{tncs}, \mathrm{is\_invalid\_data}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}, SBT_n) \\ \hspace{1em} ψ \gets 0.56 - 0.33 \log_{10} Q_{tncs} \\ \hspace{1em} ψ \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( ψ \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( ψ, \mathrm{is\_invalid\_data} \mathbin{|} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition} \mathbin{|} \mathopen{}\left( SBT_n = \textrm{"0"} \mathclose{}\right), \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ψ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required
is_invalid_data bool

Indicates invalid input data

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required
normalized_soil_behavior_type str

Normalized soil behavior type from CPT

required

Returns:

Name Type Description
state_parameter float

State parameter for soil

get_stress_normalized_cone_resistance

get_stress_normalized_cone_resistance(
    corrected_cone_tip_resistance,
    total_stress,
    overburden_correction,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_stress\_normalized\_cone\_resistance}(q_t, σ_v, C_n) \\ \hspace{1em} Q_{tn} \gets \frac{q_t \cdot 1000 - σ_v}{101.325} \cdot C_n \\ \hspace{1em} \mathbf{return} \ Q_{tn} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
overburden_correction float

Overburden correction factor for SPT

required

Returns:

Name Type Description
stress_normalized_cone_resistance float

Stress-normalized cone resistance from CPT

get_ultimate_bearing_capacity_cpt

get_ultimate_bearing_capacity_cpt(
    bearing_capacity_factor,
    mean_corrected_cone_tip_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_cpt}(R_k, q_{t\ mean}) \\ \hspace{1em} Q_{ult} \gets 1000 R_k \cdot q_{t\ mean} \\ \hspace{1em} \mathbf{return} \ Q_{ult} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
bearing_capacity_factor float

Bearing capacity factor

required
mean_corrected_cone_tip_resistance float

Corrected cone tip resistance averaged over footing influence depth

required

Returns:

Name Type Description
ultimate_bearing_capacity float

Ultimate bearing capacity of foundation

get_undrained_shear_strength__robertson2012interpretation

get_undrained_shear_strength__robertson2012interpretation(
    corrected_cone_tip_resistance,
    total_stress,
    undrained_shear_strength_factor,
    is_fine_soil,
    soil_transition,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_undrained\_shear\_strength\_\_robertson2012interpretation}(q_t, σ_v, N_{kt}, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}) \\ \hspace{1em} S_u \gets \frac{1000 q_t - σ_v}{N_{kt}} \\ \hspace{1em} S_u \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( S_u \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( S_u, \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_u \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
total_stress float

Total vertical stress in soil

required
undrained_shear_strength_factor float

Factor for undrained shear strength

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
undrained_shear_strength float

Undrained shear strength of soil

get_undrained_shear_strength_factor__robertson2012interpretation

get_undrained_shear_strength_factor__robertson2012interpretation(
    normalized_friction_ratio, is_fine_soil, soil_transition
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_undrained\_shear\_strength\_factor\_\_robertson2012interpretation}(F_r, \mathrm{is\_fine\_soil}, \mathrm{soil\_transition}) \\ \hspace{1em} N_{kt} \gets 10.5 + 7 \log_{10} F_r \\ \hspace{1em} N_{kt} \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( N_{kt} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( N_{kt}, \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{|} \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ N_{kt} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
normalized_friction_ratio float

Normalized friction ratio from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required
soil_transition bool

Flag for soil type transition

required

Returns:

Name Type Description
undrained_shear_strength_factor float

Factor for undrained shear strength

get_unit_side_friction__bustamante1982pile

get_unit_side_friction__bustamante1982pile(
    corrected_cone_tip_resistance,
    pile_friction_coefficient,
    unit_side_friction_limit=float("inf"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_side\_friction\_\_bustamante1982pile}(q_t, α, f_{p\ lim}) \\ \hspace{1em} f_p \gets \frac{q_t}{α} \\ \hspace{1em} f_p \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( f_p, \mathrm{None}, f_{p\ lim} \mathclose{}\right) \\ \hspace{1em} f_p \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( f_p \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ f_p \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
pile_friction_coefficient float

Pile friction coefficient for shaft resistance

required
unit_side_friction_limit float

Limit for pile unit side friction

float('inf')

Returns:

Name Type Description
unit_side_friction float

Pile unit side friction

get_unit_side_friction__eslami1997pile

get_unit_side_friction__eslami1997pile(
    unit_side_friction_coefficient,
    effective_cone_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_side\_friction\_\_eslami1997pile}(C_s, q_E) \\ \hspace{1em} f_p \gets C_s \cdot q_E \\ \hspace{1em} \mathbf{return} \ f_p \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
unit_side_friction_coefficient float

Coefficient for pile unit side friction

required
effective_cone_resistance float

Effective cone resistance from CPT

required

Returns:

Name Type Description
unit_side_friction float

Pile unit side friction

get_unit_side_friction_coefficient__eslami1997pile

get_unit_side_friction_coefficient__eslami1997pile(
    soil_type_index,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_side\_friction\_coefficient\_\_eslami1997pile}(\mathrm{soil\_type\_index}) \\ \hspace{1em} C_s \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( \mathrm{soil\_type\_index}, \mathrm{ReferenceDataSets}.\mathrm{UnitSideFrictionCoefficientEslami1997}.\mathrm{to\_index\_map} \mathopen{}\left( \textrm{"soil\_type\_index"}, \textrm{"unit\_side\_friction\_coefficient"} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ C_s \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
soil_type_index str

Index for soil type classification

required

Returns:

Name Type Description
unit_side_friction_coefficient float

Coefficient for pile unit side friction

get_unit_side_friction_limit__bustamante1982fellenius

get_unit_side_friction_limit__bustamante1982fellenius(
    cone_tip_resistance,
    is_fine_soil,
    unit_side_friction_clip,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_side\_friction\_limit\_\_bustamante1982fellenius}(q_c, \mathrm{is\_fine\_soil}, f_{p\ clip}) \\ \hspace{1em} \mathbf{if} \ f_{p\ clip} \\ \hspace{2em} \mathrm{condition\_1} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 1 \mathclose{}\right) \\ \hspace{2em} \mathrm{choice\_1} \gets 15 \\ \hspace{2em} \mathrm{condition\_2} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 5 \mathclose{}\right) \\ \hspace{2em} \mathrm{choice\_2} \gets 35 \\ \hspace{2em} \mathrm{condition\_3} \gets \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 5 \mathclose{}\right) \\ \hspace{2em} \mathrm{choice\_3} \gets 35 \\ \hspace{2em} \mathrm{condition\_4} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 5 \mathclose{}\right) \\ \hspace{2em} \mathrm{choice\_4} \gets 35 \\ \hspace{2em} \mathrm{condition\_5} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c < 12 \mathclose{}\right) \\ \hspace{2em} \mathrm{choice\_5} \gets 80 \\ \hspace{2em} \mathrm{condition\_6} \gets \mathord{\sim} \mathrm{is\_fine\_soil} \mathbin{\&} \mathopen{}\left( q_c \ge 12 \mathclose{}\right) \\ \hspace{2em} \mathrm{choice\_6} \gets 120 \\ \hspace{2em} f_{p\ lim} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4}, \mathrm{condition\_5}, \mathrm{condition\_6} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4}, \mathrm{choice\_5}, \mathrm{choice\_6} \mathclose{}\right] \mathclose{}\right) \\ \hspace{2em} f_{p\ lim} \gets f_{p\ lim} \cdot 0.001 \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{return} \ \mathrm{np}.\mathrm{inf} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ f_{p\ lim} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
cone_tip_resistance float

Cone tip resistance from CPT

required
is_fine_soil bool

Indicates if soil is fine-grained

required
unit_side_friction_clip bool

Applies clip to pile unit side friction

required

Returns:

Name Type Description
unit_side_friction_limit float

Limit for pile unit side friction

get_unit_side_friction_limit__bustamante1982pile

get_unit_side_friction_limit__bustamante1982pile(
    nature_of_soil,
    pile_type_category,
    careful_execution,
    unit_side_friction_clip,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_side\_friction\_limit\_\_bustamante1982pile}(\mathrm{nature\_of\_soil}, \mathrm{pile\_type\_category}, \mathrm{careful\_execution}, f_{p\ clip}) \\ \hspace{1em} \mathbf{if} \ f_{p\ clip} \\ \hspace{2em} \mathbf{if} \ \mathrm{careful\_execution} \\ \hspace{3em} \mathrm{ref} \gets \mathrm{ReferenceDataSets}.\mathrm{UnitSideFrictionLimitCareBustamante1982} \\ \hspace{2em} \mathbf{else} \\ \hspace{3em} \mathrm{ref} \gets \mathrm{ReferenceDataSets}.\mathrm{UnitSideFrictionLimitBustamante1982} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{2em} f_{p\ lim} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( \mathrm{nature\_of\_soil}, \mathrm{ref}.\mathrm{to\_index\_map} \mathopen{}\left( \textrm{"nature\_of\_soil"}, \mathrm{str} \mathopen{}\left( \mathrm{pile\_type\_category} \mathclose{}\right) \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{return} \ \mathrm{np}.\mathrm{inf} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ f_{p\ lim} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
nature_of_soil str

Description of soil nature

required
pile_type_category str

Category of pile type

required
careful_execution bool

Indicates careful execution with minimal soil disturbance

required
unit_side_friction_clip bool

Applies clip to pile unit side friction

required

Returns:

Name Type Description
unit_side_friction_limit float

Limit for pile unit side friction

get_unit_weight__robertson2010estimatinga

get_unit_weight__robertson2010estimatinga(
    friction_ratio,
    corrected_cone_tip_resistance,
    is_invalid_data,
    specific_gravity=2.65,
    water_unit_weight=9.81,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_weight\_\_robertson2010estimatinga}(R_f, q_t, \mathrm{is\_invalid\_data}, G_s, γ_w) \\ \hspace{1em} γ \gets \frac{γ_w \cdot G_s}{2.65} \cdot \mathopen{}\left( 0.27 \log_{10} R_f + 0.36 \log_{10} \mathopen{}\left( \frac{1000 q_t}{101.325} \mathclose{}\right) + 1.236 \mathclose{}\right) \\ \hspace{1em} γ \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( γ, 1.4 g, 2.2 g \mathclose{}\right) \\ \hspace{1em} γ \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( γ \mathclose{}\right) \\ \hspace{1em} γ \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( γ \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( γ, \mathrm{is\_invalid\_data}, 18 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ γ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_ratio float

Friction ratio from CPT

required
corrected_cone_tip_resistance float

Corrected cone tip resistance from CPT

required
is_invalid_data bool

Indicates invalid input data

required
specific_gravity float

Specific gravity of soil solids

2.65
water_unit_weight float

Unit weight of water

9.81

Returns:

Name Type Description
unit_weight float

Unit weight of soil

get_void_ratio__barounis2018estimation

get_void_ratio__barounis2018estimation(
    water_content,
    below_water_table,
    specific_gravity=2.65,
    saturation_ratio=1.0,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_void\_ratio\_\_barounis2018estimation}(w_c, \mathrm{below\_water\_table}, G_s, S_r) \\ \hspace{1em} e \gets \frac{0.01 w_c \cdot G_s}{S_r} \\ \hspace{1em} e \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( e \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( e, \mathord{\sim} \mathrm{below\_water\_table}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ e \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
water_content float

Natural water content of soil

required
below_water_table bool

Indicates if soil layer is below water table

required
specific_gravity float

Specific gravity of soil solids

2.65
saturation_ratio float

Ratio of water volume to total void space

1.0

Returns:

Name Type Description
void_ratio float

Void ratio of soil

get_void_ratio_cpt__barounis2018estimation

get_void_ratio_cpt__barounis2018estimation(
    water_content,
    below_water_table,
    soil_transition,
    specific_gravity=2.65,
    saturation_ratio=1.0,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_void\_ratio\_cpt\_\_barounis2018estimation}(w_c, \mathrm{below\_water\_table}, \mathrm{soil\_transition}, G_s, S_r) \\ \hspace{1em} e \gets \mathrm{get\_void\_ratio\_\_barounis2018estimation} \mathopen{}\left( w_c, \mathrm{below\_water\_table}, G_s, S_r \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( e, \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ e \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
water_content float

Natural water content of soil

required
below_water_table bool

Indicates if soil layer is below water table

required
soil_transition bool

Flag for soil type transition

required
specific_gravity float

Specific gravity of soil solids

2.65
saturation_ratio float

Ratio of water volume to total void space

1.0

Returns:

Name Type Description
void_ratio float

Void ratio of soil

get_volumetric_strain__zhang2002estimating

get_volumetric_strain__zhang2002estimating(
    liquefaction_safety_factor,
    clean_sand_normalized_cone_resistance,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_volumetric\_strain\_\_zhang2002estimating}(FS_{liq}, Q_{tncs}) \\ \hspace{1em} FS_{liq} \gets \mathrm{np}.\mathrm{around} \mathopen{}\left( FS_{liq} \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_1} \gets \mathopen{}\left( FS_{liq} \le 0.5 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets 102 Q_{tncs}^{-0.82} \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( FS_{liq} = 0.6 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 147 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets 102 Q_{tncs}^{-0.82} \\ \hspace{1em} \mathrm{condition\_3} \gets \mathopen{}\left( FS_{liq} = 0.6 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} > 147 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets 2411 Q_{tncs}^{-1.45} \\ \hspace{1em} \mathrm{condition\_4} \gets \mathopen{}\left( FS_{liq} = 0.7 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 110 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_4} \gets 102 Q_{tncs}^{-0.82} \\ \hspace{1em} \mathrm{condition\_5} \gets \mathopen{}\left( FS_{liq} = 0.7 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} > 110 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_5} \gets 1701 Q_{tncs}^{-1.42} \\ \hspace{1em} \mathrm{condition\_6} \gets \mathopen{}\left( FS_{liq} = 0.8 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 80 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_6} \gets 102 Q_{tncs}^{-0.82} \\ \hspace{1em} \mathrm{condition\_7} \gets \mathopen{}\left( FS_{liq} = 0.8 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} > 80 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_7} \gets 1690 Q_{tncs}^{-1.46} \\ \hspace{1em} \mathrm{condition\_8} \gets \mathopen{}\left( FS_{liq} = 0.9 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 60 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_8} \gets 102 Q_{tncs}^{-0.82} \\ \hspace{1em} \mathrm{condition\_9} \gets \mathopen{}\left( FS_{liq} = 0.9 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} > 60 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_9} \gets 1430 Q_{tncs}^{-1.48} \\ \hspace{1em} \mathrm{condition\_10} \gets \mathopen{}\left( FS_{liq} = 1.0 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_10} \gets 64 Q_{tncs}^{-0.93} \\ \hspace{1em} \mathrm{condition\_11} \gets \mathopen{}\left( FS_{liq} = 1.1 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_11} \gets 11 Q_{tncs}^{-0.65} \\ \hspace{1em} \mathrm{condition\_12} \gets \mathopen{}\left( FS_{liq} = 1.2 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_12} \gets 9.7 Q_{tncs}^{-0.69} \\ \hspace{1em} \mathrm{condition\_13} \gets \mathopen{}\left( FS_{liq} = 1.3 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_13} \gets 7.6 Q_{tncs}^{-0.71} \\ \hspace{1em} \mathrm{condition\_14} \gets \mathopen{}\left( FS_{liq} = 2.0 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \ge 33 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( Q_{tncs} \le 200 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_14} \gets 0.0 \\ \hspace{1em} ε_v \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4}, \mathrm{condition\_5}, \mathrm{condition\_6}, \mathrm{condition\_7}, \mathrm{condition\_8}, \mathrm{condition\_9}, \mathrm{condition\_10}, \mathrm{condition\_11}, \mathrm{condition\_12}, \mathrm{condition\_13}, \mathrm{condition\_14} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4}, \mathrm{choice\_5}, \mathrm{choice\_6}, \mathrm{choice\_7}, \mathrm{choice\_8}, \mathrm{choice\_9}, \mathrm{choice\_10}, \mathrm{choice\_11}, \mathrm{choice\_12}, \mathrm{choice\_13}, \mathrm{choice\_14} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} ε_v \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \mathrm{np}.\mathrm{isnan} \mathopen{}\left( ε_v \mathclose{}\right) \mathbin{|} \mathopen{}\left( FS_{liq} \ge 2 \mathclose{}\right), 0, ε_v \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ε_v \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
liquefaction_safety_factor float

Factor of safety against liquefaction triggering

required
clean_sand_normalized_cone_resistance float

Normalized cone resistance for clean sand

required

Returns:

Name Type Description
volumetric_strain float

Volumetric strain in soil

get_volumetric_strain_cpt__idriss2008soil

get_volumetric_strain_cpt__idriss2008soil(
    max_shear_strain,
    clean_sand_normalized_cone_resistance_1atm,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_volumetric\_strain\_cpt\_\_idriss2008soil}(γ_{max}, q_{c1Ncs}) \\ \hspace{1em} q_{c1Ncs} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( q_{c1Ncs}, 21, \mathrm{None} \mathclose{}\right) \\ \hspace{1em} γ_{max} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( γ_{max}, \mathrm{None}, 100 \cdot 0.08 \mathclose{}\right) \\ \hspace{1em} ε_v \gets 1.5 \exp \mathopen{}\left( 2.551 - 1.147 q_{c1Ncs}^{0.264} \mathclose{}\right) γ_{max} \\ \hspace{1em} ε_v \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( ε_v \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ε_v \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
max_shear_strain float

Maximum shear strain in soil

required
clean_sand_normalized_cone_resistance_1atm float

Equivalent clean sand normalized cone resistance at 1 atm

required

Returns:

Name Type Description
volumetric_strain float

Volumetric strain in soil

get_water_content__barounis2018estimation

get_water_content__barounis2018estimation(
    unit_weight,
    below_water_table,
    soil_transition,
    specific_gravity=2.65,
    water_unit_weight=9.81,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_water\_content\_\_barounis2018estimation}(γ, \mathrm{below\_water\_table}, \mathrm{soil\_transition}, G_s, γ_w) \\ \hspace{1em} w_c \gets \frac{100 \mathopen{}\left( G_s \cdot γ_w - γ \mathclose{}\right)}{G_s \cdot γ - G_s \cdot γ_w} \\ \hspace{1em} w_c \gets \mathrm{np}.\mathrm{asarray} \mathopen{}\left( w_c \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( w_c, \mathord{\sim} \mathrm{below\_water\_table} \mathbin{|} \mathrm{soil\_transition}, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ w_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
unit_weight float

Unit weight of soil

required
below_water_table bool

Indicates if soil layer is below water table

required
soil_transition bool

Flag for soil type transition

required
specific_gravity float

Specific gravity of soil solids

2.65
water_unit_weight float

Unit weight of water

9.81

Returns:

Name Type Description
water_content float

Natural water content of soil