Skip to content

footing.py

subsurfaceio.functions.footing

Footing functions.

Classes:

Name Description
ReferenceFigureRegistry

Pre-instantiated reference figures

Functions:

Name Description
get_average_friction_angle__bowles1996foundation

Calculation function.

get_average_parameters__bowles1996foundation

Calculation function.

get_average_undrained_shear_strength__bowles1996foundation

Calculation function.

get_bearing_capacity_factor_cohesion__terzaghi1943theoretical

Calculation function.

get_bearing_capacity_factor_cohesion__vesic1975bearing

Calculation function.

get_bearing_capacity_factor_cohesion_bottom_layer__vesic1975bearing

Calculation function.

get_bearing_capacity_factor_surcharge__terzaghi1943theoretical

Calculation function.

get_bearing_capacity_factor_surcharge__vesic1975bearing

Calculation function.

get_bearing_capacity_factor_surcharge_bottom_layer__vesic1975bearing

Calculation function.

get_bearing_capacity_factor_unit_weight__terzaghi1943theoretical

Calculation function.

get_bearing_capacity_factor_unit_weight__vesic1975bearing

Calculation function.

get_bearing_capacity_factor_unit_weight_bottom_layer__vesic1975bearing

Calculation function.

get_bearing_capacity_ratio_case1__meyerhof1978ultimate

Calculation function.

get_bearing_capacity_ratio_case2__meyerhof1978ultimate

Calculation function.

get_depth_factor_cohesion__vesic1975bearing

Calculation function.

get_depth_factor_surcharge__vesic1975bearing

Calculation function.

get_depth_factor_unit_weight__vesic1975bearing

Calculation function.

get_effective_shear_depth

Calculation function.

get_effective_unit_weight__vesic1973analysis

Calculation function.

get_effective_unit_weight_bottom_layer__vesic1973analysis

Calculation function.

get_footing_creep_settlement_inc

Calculation function.

get_footing_creep_settlement_sum

Calculation function.

get_footing_effective_stress

Calculation function.

get_footing_embedment_to_width_ratio__vesic1975bearing

Calculation function.

get_footing_influence_depth

Calculation function.

get_footing_pore_water_pressure

Calculation function.

get_footing_settlement

Calculation function.

get_footing_settlement_inc

Calculation function.

get_footing_settlement_sum

Calculation function.

get_footing_total_stress

Calculation function.

get_imposed_stress

Calculation function.

get_punching_shear_coefficient__meyerhof1978ultimate

Calculation function.

get_shape_factor_cohesion__vesic1975bearing

Calculation function.

get_shape_factor_surcharge__vesic1975bearing

Calculation function.

get_shape_factor_surcharge_bottom_layer__vesic1975bearing

Calculation function.

get_shape_factor_unit_weight__vesic1975bearing

Calculation function.

get_stress_influence_factor

Calculation function.

get_stress_influence_factor_at_corner

Calculation function.

get_ultimate_bearing_capacity__terzaghi1943theoretical

Calculation function.

get_ultimate_bearing_capacity__vesic1975bearing

Calculation function.

get_ultimate_bearing_capacity_case1__meyerhof1978ultimate

Calculation function.

get_ultimate_bearing_capacity_case2__meyerhof1978ultimate

Calculation function.

get_ultimate_bearing_capacity_case3__meyerhof1978ultimate

Calculation function.

get_ultimate_bearing_capacity_limit_case1and2__meyerhof1978ultimate

Calculation function.

get_ultimate_bearing_capacity_limit_case3__meyerhof1978ultimate

Calculation function.

get_unit_adhesion__meyerhof1978ultimate

Calculation function.

get_unit_adhesion_to_cohesion_ratio__meyerhof1978ultimate

Calculation function.

ReferenceFigureRegistry

Pre-instantiated reference figures

get_average_friction_angle__bowles1996foundation

get_average_friction_angle__bowles1996foundation(
    thickness, friction_angle, effective_shear_depth
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_average\_friction\_angle\_\_bowles1996foundation}(H, ϕ, H) \\ \hspace{1em} ϕ \gets \mathrm{np}.\mathrm{rad2deg} \mathopen{}\left( \arctan \mathopen{}\left( \frac{\mathrm{np}.\mathrm{dot} \mathopen{}\left( H, \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \mathclose{}\right)}{H} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ ϕ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
thickness float

Thickness of soil layer

required
friction_angle float

Friction angle of soil

required
effective_shear_depth float

Effective footing shear depth

required

Returns:

Name Type Description
friction_angle float

Friction angle of soil

get_average_parameters__bowles1996foundation

get_average_parameters__bowles1996foundation(
    footing_width,
    footing_embedment,
    depth,
    friction_angle,
    undrained_shear_strength,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_average\_parameters\_\_bowles1996foundation}(B, D_f, z, ϕ, S_u) \\ \hspace{1em} \mathrm{ignore\_flag} \gets z < D_f \\ \hspace{1em} z \gets \mathrm{np}.\mathrm{extract} \mathopen{}\left( \mathord{\sim} \mathrm{ignore\_flag}, z \mathclose{}\right) \\ \hspace{1em} ϕ \gets \mathrm{np}.\mathrm{extract} \mathopen{}\left( \mathord{\sim} \mathrm{ignore\_flag}, ϕ \mathclose{}\right) \\ \hspace{1em} S_u \gets \mathrm{np}.\mathrm{extract} \mathopen{}\left( \mathord{\sim} \mathrm{ignore\_flag}, S_u \mathclose{}\right) \\ \hspace{1em} ϕ \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( ϕ \mathclose{}\right) \\ \hspace{1em} S_u \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( S_u \mathclose{}\right) \\ \hspace{1em} \mathrm{depth\_from\_embedment} \gets z - D_f \\ \hspace{1em} \mathrm{average\_friction\_angle} \gets \mathrm{np}.\mathrm{take} \mathopen{}\left( ϕ, 0 \mathclose{}\right) \\ \hspace{1em} \mathrm{effective\_shear\_depth\_previous} \gets 0 \\ \hspace{1em} \mathbf{while} \ \mathrm{True} \\ \hspace{2em} H \gets \mathrm{get\_effective\_shear\_depth} \mathopen{}\left( B, \mathrm{average\_friction\_angle} \mathclose{}\right) \\ \hspace{2em} \mathrm{max\_depth\_from\_embedment} \gets \mathrm{np}.\mathrm{max} \mathopen{}\left( \mathrm{depth\_from\_embedment} \mathclose{}\right) \\ \hspace{2em} \mathbf{if} \ \mathrm{max\_depth\_from\_embedment} < H \\ \hspace{3em} \mathrm{raise\_value\_error} \mathopen{}\left( \textrm{"max\_depth\_from\_embedment=\{\} < effective\_shear\_depth=\{\}"}.\mathrm{format} \mathopen{}\left( \mathrm{max\_depth\_from\_embedment}, H \mathclose{}\right) \mathclose{}\right) \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{2em} \mathrm{depth\_in\_range} \gets \mathrm{depth\_from\_embedment}_{\mathrm{depth\_from\_embedment} < H} \\ \hspace{2em} \mathrm{depth\_in\_range} \gets \mathrm{np}.\mathrm{append} \mathopen{}\left( \mathrm{depth\_in\_range}, H \mathclose{}\right) \\ \hspace{2em} \mathrm{indices} \gets \mathrm{np}.\mathrm{searchsorted} \mathopen{}\left( \mathrm{depth\_from\_embedment}, \mathrm{depth\_in\_range} \mathclose{}\right) \\ \hspace{2em} \mathrm{thickness\_from\_embedment} \gets \mathrm{get\_thickness} \mathopen{}\left( \mathrm{depth\_in\_range} \mathclose{}\right) \\ \hspace{2em} \mathrm{average\_friction\_angle} \gets \mathrm{get\_average\_friction\_angle\_\_bowles1996foundation} \mathopen{}\left( \mathrm{thickness\_from\_embedment}, \mathrm{friction\_angle}_{\mathrm{indices}}, H \mathclose{}\right) \\ \hspace{2em} S_{u30} \gets \mathrm{get\_average\_undrained\_shear\_strength\_\_bowles1996foundation} \mathopen{}\left( \mathrm{thickness\_from\_embedment}, \mathrm{undrained\_shear\_strength}_{\mathrm{indices}}, H \mathclose{}\right) \\ \hspace{2em} \mathbf{if} \ \mathopen{}\left| H - \mathrm{effective\_shear\_depth\_previous} \mathclose{}\right| < 0.0001 \\ \hspace{3em} \mathbf{break} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{2em} \mathrm{effective\_shear\_depth\_previous} \gets H \\ \hspace{1em} \mathbf{end \ while} \\ \hspace{1em} \mathbf{return} \ \mathopen{}\left( H, \mathrm{average\_friction\_angle}, S_{u30} \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
footing_embedment float

Depth of footing embedment

required
depth float

Depth below ground surface to bottom of layer

required
friction_angle float

Friction angle of soil

required
undrained_shear_strength float

Undrained shear strength of soil

required

Returns:

Name Type Description
effective_shear_depth float

Effective footing shear depth

friction_angle float

Friction angle of soil

undrained_shear_strength float

Undrained shear strength of soil

get_average_undrained_shear_strength__bowles1996foundation

get_average_undrained_shear_strength__bowles1996foundation(
    thickness,
    undrained_shear_strength,
    effective_shear_depth,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_average\_undrained\_shear\_strength\_\_bowles1996foundation}(H, S_u, H) \\ \hspace{1em} S_u \gets \frac{\mathrm{np}.\mathrm{dot} \mathopen{}\left( H, S_u \mathclose{}\right)}{H} \\ \hspace{1em} \mathbf{return} \ S_u \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
thickness float

Thickness of soil layer

required
undrained_shear_strength float

Undrained shear strength of soil

required
effective_shear_depth float

Effective footing shear depth

required

Returns:

Name Type Description
undrained_shear_strength float

Undrained shear strength of soil

get_bearing_capacity_factor_cohesion__terzaghi1943theoretical

get_bearing_capacity_factor_cohesion__terzaghi1943theoretical(
    friction_angle, bearing_capacity_factor_surcharge
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_cohesion\_\_terzaghi1943theoretical}(ϕ, N_q) \\ \hspace{1em} \mathrm{condition\_1} \gets ϕ = 0 \\ \hspace{1em} \mathrm{choice\_1} \gets 5.7 \\ \hspace{1em} \mathrm{condition\_2} \gets ϕ > 0 \\ \hspace{1em} \mathrm{choice\_2} \gets \frac{N_q - 1}{\mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right)} \\ \hspace{1em} N_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} \mathbf{return} \ N_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_angle float

Friction angle of soil

required
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required

Returns:

Name Type Description
bearing_capacity_factor_cohesion float

Bearing capacity factor for cohesion

get_bearing_capacity_factor_cohesion__vesic1975bearing

get_bearing_capacity_factor_cohesion__vesic1975bearing(
    friction_angle, bearing_capacity_factor_surcharge
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_cohesion\_\_vesic1975bearing}(ϕ, N_q) \\ \hspace{1em} \mathrm{condition\_1} \gets ϕ = 0 \\ \hspace{1em} \mathrm{choice\_1} \gets 5.14 \\ \hspace{1em} \mathrm{condition\_2} \gets ϕ > 0 \\ \hspace{1em} \mathrm{choice\_2} \gets \frac{N_q - 1}{\mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right)} \\ \hspace{1em} N_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} \mathbf{return} \ N_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_angle float

Friction angle of soil

required
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required

Returns:

Name Type Description
bearing_capacity_factor_cohesion float

Bearing capacity factor for cohesion

get_bearing_capacity_factor_cohesion_bottom_layer__vesic1975bearing

get_bearing_capacity_factor_cohesion_bottom_layer__vesic1975bearing()

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_cohesion\_bottom\_layer\_\_vesic1975bearing}() \\ \hspace{1em} N_{c\ bottom} \gets 5.14 \\ \hspace{1em} \mathbf{return} \ N_{c\ bottom} \\ \mathbf{end \ function} \end{array} \]

Args:

Returns:

Name Type Description
bearing_capacity_factor_cohesion_bottom_layer float

Bearing capacity factor for cohesion of soil beneath foundation

get_bearing_capacity_factor_surcharge__terzaghi1943theoretical

get_bearing_capacity_factor_surcharge__terzaghi1943theoretical(
    friction_angle,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_surcharge\_\_terzaghi1943theoretical}(ϕ) \\ \hspace{1em} α_θ \gets \exp \mathopen{}\left( \mathrm{np}.\pi \cdot \mathopen{}\left( 0.75 - \frac{ϕ}{360} \mathclose{}\right) \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} N_q \gets \frac{α_θ^{2}}{2 \mathopen{}\left( \mathrm{cosdg} \mathopen{}\left( 45 + \frac{ϕ}{2} \mathclose{}\right) \mathclose{}\right)^{2}} \\ \hspace{1em} \mathbf{return} \ N_q \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

get_bearing_capacity_factor_surcharge__vesic1975bearing

get_bearing_capacity_factor_surcharge__vesic1975bearing(
    friction_angle,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_surcharge\_\_vesic1975bearing}(ϕ) \\ \hspace{1em} N_q \gets \exp \mathopen{}\left( \mathrm{np}.\pi \cdot \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \mathclose{}\right) \cdot \mathopen{}\left( \mathrm{tandg} \mathopen{}\left( 45 + \frac{ϕ}{2} \mathclose{}\right) \mathclose{}\right)^{2} \\ \hspace{1em} \mathbf{return} \ N_q \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

get_bearing_capacity_factor_surcharge_bottom_layer__vesic1975bearing

get_bearing_capacity_factor_surcharge_bottom_layer__vesic1975bearing(
    friction_angle_bottom_layer,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_surcharge\_bottom\_layer\_\_vesic1975bearing}(ϕ_{bottom}) \\ \hspace{1em} N_{q\ bottom} \gets \mathrm{get\_bearing\_capacity\_factor\_surcharge\_\_vesic1975bearing} \mathopen{}\left( ϕ_{bottom} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ N_{q\ bottom} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_angle_bottom_layer float

Friction angle of sand layer beneath foundation

required

Returns:

Name Type Description
bearing_capacity_factor_surcharge_bottom_layer float

Bearing capacity factor for surcharge of soil beneath foundation

get_bearing_capacity_factor_unit_weight__terzaghi1943theoretical

get_bearing_capacity_factor_unit_weight__terzaghi1943theoretical(
    bearing_capacity_factor_surcharge, friction_angle
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_unit\_weight\_\_terzaghi1943theoretical}(N_q, ϕ) \\ \hspace{1em} N_γ \gets \frac{2 \mathopen{}\left( N_q + 1 \mathclose{}\right) \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right)}{1 + 0.4 \mathrm{sindg} \mathopen{}\left( 4 ϕ \mathclose{}\right)} \\ \hspace{1em} \mathbf{return} \ N_γ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

get_bearing_capacity_factor_unit_weight__vesic1975bearing

get_bearing_capacity_factor_unit_weight__vesic1975bearing(
    bearing_capacity_factor_surcharge, friction_angle
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_unit\_weight\_\_vesic1975bearing}(N_q, ϕ) \\ \hspace{1em} N_γ \gets 2 \mathopen{}\left( N_q + 1 \mathclose{}\right) \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ N_γ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

get_bearing_capacity_factor_unit_weight_bottom_layer__vesic1975bearing

get_bearing_capacity_factor_unit_weight_bottom_layer__vesic1975bearing(
    bearing_capacity_factor_surcharge_bottom_layer,
    friction_angle_bottom_layer,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_factor\_unit\_weight\_bottom\_layer\_\_vesic1975bearing}(N_{q\ bottom}, ϕ_{bottom}) \\ \hspace{1em} N_{γ\ bottom} \gets \mathrm{get\_bearing\_capacity\_factor\_unit\_weight\_\_vesic1975bearing} \mathopen{}\left( N_{q\ bottom}, ϕ_{bottom} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ N_{γ\ bottom} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
bearing_capacity_factor_surcharge_bottom_layer float

Bearing capacity factor for surcharge of soil beneath foundation

required
friction_angle_bottom_layer float

Friction angle of sand layer beneath foundation

required

Returns:

Name Type Description
bearing_capacity_factor_unit_weight_bottom_layer float

Bearing capacity factor for unit weight of soil beneath foundation

get_bearing_capacity_ratio_case1__meyerhof1978ultimate

get_bearing_capacity_ratio_case1__meyerhof1978ultimate(
    undrained_shear_strength_bottom_layer,
    bearing_capacity_factor_cohesion_bottom_layer,
    effective_unit_weight,
    footing_width,
    bearing_capacity_factor_unit_weight,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_ratio\_case1\_\_meyerhof1978ultimate}(S_{u\ bottom}, N_{c\ bottom}, γ', B, N_γ) \\ \hspace{1em} {q_2}/{q_1} \gets \frac{S_{u\ bottom} \cdot N_{c\ bottom}}{0.5 γ' \cdot B \cdot N_γ} \\ \hspace{1em} \mathbf{return} \ {q_2}/{q_1} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
undrained_shear_strength_bottom_layer float

Undrained shear strength of clay beneath foundation

required
bearing_capacity_factor_cohesion_bottom_layer float

Bearing capacity factor for cohesion of soil beneath foundation

required
effective_unit_weight float

Effective unit weight of soil

required
footing_width float

Footing width (small plan dimension)

required
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

required

Returns:

Name Type Description
bearing_capacity_ratio float

Ratio of bearing capacities q_2 to q_1

get_bearing_capacity_ratio_case2__meyerhof1978ultimate

get_bearing_capacity_ratio_case2__meyerhof1978ultimate(
    effective_unit_weight_bottom_layer,
    bearing_capacity_factor_unit_weight_bottom_layer,
    effective_unit_weight,
    bearing_capacity_factor_unit_weight,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_bearing\_capacity\_ratio\_case2\_\_meyerhof1978ultimate}(γ_{bottom}', N_{γ\ bottom}, γ', N_γ) \\ \hspace{1em} {q_2}/{q_1} \gets \frac{γ_{bottom}' \cdot N_{γ\ bottom}}{γ' \cdot N_γ} \\ \hspace{1em} \mathbf{return} \ {q_2}/{q_1} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
effective_unit_weight_bottom_layer float

Effective unit weight of soil beneath foundation

required
bearing_capacity_factor_unit_weight_bottom_layer float

Bearing capacity factor for unit weight of soil beneath foundation

required
effective_unit_weight float

Effective unit weight of soil

required
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

required

Returns:

Name Type Description
bearing_capacity_ratio float

Ratio of bearing capacities q_2 to q_1

get_depth_factor_cohesion__vesic1975bearing

get_depth_factor_cohesion__vesic1975bearing(
    footing_embedment_to_width_ratio,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_depth\_factor\_cohesion\_\_vesic1975bearing}(k) \\ \hspace{1em} d_c \gets 1 + 0.4 k \\ \hspace{1em} \mathbf{return} \ d_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_embedment_to_width_ratio float

Ratio of footing embedment to width

required

Returns:

Name Type Description
depth_factor_cohesion float

Depth factor for cohesion in bearing capacity

get_depth_factor_surcharge__vesic1975bearing

get_depth_factor_surcharge__vesic1975bearing(
    footing_embedment_to_width_ratio, friction_angle
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_depth\_factor\_surcharge\_\_vesic1975bearing}(k, ϕ) \\ \hspace{1em} d_q \gets 1 + 2 k \cdot \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \mathopen{}\left( 1 - \mathrm{sindg} \mathopen{}\left( ϕ \mathclose{}\right) \mathclose{}\right)^{2} \\ \hspace{1em} \mathbf{return} \ d_q \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_embedment_to_width_ratio float

Ratio of footing embedment to width

required
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
depth_factor_surcharge float

Depth factor for surcharge in bearing capacity

get_depth_factor_unit_weight__vesic1975bearing

get_depth_factor_unit_weight__vesic1975bearing()

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_depth\_factor\_unit\_weight\_\_vesic1975bearing}() \\ \hspace{1em} d_γ \gets 1 \\ \hspace{1em} \mathbf{return} \ d_γ \\ \mathbf{end \ function} \end{array} \]

Args:

Returns:

Name Type Description
depth_factor_unit_weight float

Depth factor for unit weight in bearing capacity

get_effective_shear_depth

get_effective_shear_depth(footing_width, friction_angle)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_effective\_shear\_depth}(B, ϕ) \\ \hspace{1em} H \gets 0.5 B \cdot \mathrm{tandg} \mathopen{}\left( 45 + \frac{ϕ}{2} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ H \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
effective_shear_depth float

Effective footing shear depth

get_effective_unit_weight__vesic1973analysis

get_effective_unit_weight__vesic1973analysis(
    unit_weight,
    water_table_present,
    water_table=float("nan"),
    footing_embedment=float("nan"),
    footing_width=float("nan"),
    water_unit_weight=9.81,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_effective\_unit\_weight\_\_vesic1973analysis}(γ, z_{w\ present}, z_w, D_f, B, γ_w) \\ \hspace{1em} \mathbf{if} \ \lnot z_{w\ present} \\ \hspace{2em} γ' \gets γ \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathrm{condition\_1} \gets z_w \le D_f \\ \hspace{2em} \mathrm{choice\_1} \gets γ - γ_w \\ \hspace{2em} \mathrm{condition\_2} \gets D_f + B > z_w \\ \hspace{2em} \mathrm{choice\_2} \gets γ - γ_w \cdot \mathopen{}\left( 1 - \frac{z_w - D_f}{B} \mathclose{}\right) \\ \hspace{2em} \mathrm{condition\_3} \gets D_f + B \le z_w \\ \hspace{2em} \mathrm{choice\_3} \gets γ \\ \hspace{2em} γ' \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ γ' \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
unit_weight float

Unit weight of soil

required
water_table_present bool

Indicates presence of water table

required
water_table float

Depth to water table below ground surface

float('nan')
footing_embedment float

Depth of footing embedment

float('nan')
footing_width float

Footing width (small plan dimension)

float('nan')
water_unit_weight float

Unit weight of water

9.81

Returns:

Name Type Description
effective_unit_weight float

Effective unit weight of soil

get_effective_unit_weight_bottom_layer__vesic1973analysis

get_effective_unit_weight_bottom_layer__vesic1973analysis(
    unit_weight_bottom_layer,
    water_table_present,
    footing_embedment,
    thickness_top_layer,
    water_table=float("nan"),
    footing_width=float("nan"),
    water_unit_weight=9.81,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_effective\_unit\_weight\_bottom\_layer\_\_vesic1973analysis}(γ_{bottom}, z_{w\ present}, D_f, H_{top}, z_w, B, γ_w) \\ \hspace{1em} γ_{bottom}' \gets \mathrm{get\_effective\_unit\_weight\_\_vesic1973analysis} \mathopen{}\left( γ_{bottom}, z_{w\ present}, z_w, D_f + H_{top}, B \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ γ_{bottom}' \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
unit_weight_bottom_layer float

Unit weight of soil beneath foundation

required
water_table_present bool

Indicates presence of water table

required
footing_embedment float

Depth of footing embedment

required
thickness_top_layer float

Thickness of top soil layer from beneath foundation embedment

required
water_table float

Depth to water table below ground surface

float('nan')
footing_width float

Footing width (small plan dimension)

float('nan')
water_unit_weight float

Unit weight of water

9.81

Returns:

Name Type Description
effective_unit_weight_bottom_layer float

Effective unit weight of soil beneath foundation

get_footing_creep_settlement_inc

get_footing_creep_settlement_inc(
    consider_creep_settlement,
    thickness,
    constrained_modulus,
    effective_stress,
    consolidation_time=float("nan"),
    primary_consolidation_time=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_creep\_settlement\_inc}(\mathrm{consider\_creep\_settlement}, H, M, σ_v', t, t_p) \\ \hspace{1em} \mathbf{if} \ \mathrm{consider\_creep\_settlement} \\ \hspace{2em} S_{creep} \gets 0.01 \frac{σ_v'}{M} \cdot H \cdot \log_{10} \mathopen{}\left( \frac{t}{t_p} \mathclose{}\right) \\ \hspace{2em} S_{creep} \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( S_{creep} \mathclose{}\right) \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} S_{creep} \gets \mathrm{np}.\mathrm{zeros\_like} \mathopen{}\left( H \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ S_{creep} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
consider_creep_settlement bool

Indicates if creep settlement is considered in calculations

required
thickness float

Thickness of soil layer

required
constrained_modulus float

Constrained modulus of soil

required
effective_stress float

Effective vertical stress in soil

required
consolidation_time float

Time for soil consolidation

float('nan')
primary_consolidation_time float

Time for primary consolidation

float('nan')

Returns:

Name Type Description
footing_creep_settlement_inc float

Incremental creep settlement of footing

get_footing_creep_settlement_sum

get_footing_creep_settlement_sum(
    footing_creep_settlement_inc,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_creep\_settlement\_sum}(S_{creep}) \\ \hspace{1em} ΣS_{creep} \gets \sum S_{creep} \\ \hspace{1em} \mathbf{return} \ ΣS_{creep} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_creep_settlement_inc float

Incremental creep settlement of footing

required

Returns:

Name Type Description
footing_creep_settlement_sum float

Sum of footing creep settlement increments

get_footing_effective_stress

get_footing_effective_stress(
    total_stress, pore_water_pressure
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_effective\_stress}(σ_v, u_0) \\ \hspace{1em} σ_v' \gets \mathrm{get\_effective\_stress} \mathopen{}\left( σ_v, u_0 \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ σ_v' \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
total_stress float

Total vertical stress in soil

required
pore_water_pressure float

Pore water pressure in soil

required

Returns:

Name Type Description
effective_stress float

Effective vertical stress in soil

get_footing_embedment_to_width_ratio__vesic1975bearing

get_footing_embedment_to_width_ratio__vesic1975bearing(
    footing_embedment, footing_width
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_embedment\_to\_width\_ratio\_\_vesic1975bearing}(D_f, B) \\ \hspace{1em} \mathbf{if} \ \mathrm{np}.\mathrm{any} \mathopen{}\left( B = 0 \mathclose{}\right) \\ \hspace{2em} \mathrm{raise\_value\_error} \mathopen{}\left( \textrm{"footing\_width must not be equal to 0"} \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} k \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( \frac{D_f}{B} \le 1, \frac{D_f}{B}, \arctan \mathopen{}\left( \frac{D_f}{B} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ k \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_embedment float

Depth of footing embedment

required
footing_width float

Footing width (small plan dimension)

required

Returns:

Name Type Description
footing_embedment_to_width_ratio float

Ratio of footing embedment to width

get_footing_influence_depth

get_footing_influence_depth(
    footing_width,
    footing_embedment,
    footing_influence_width_factor,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_influence\_depth}(B, D_f, IF) \\ \hspace{1em} z_{infl} \gets D_f + IF \cdot B \\ \hspace{1em} \mathbf{return} \ z_{infl} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
footing_embedment float

Depth of footing embedment

required
footing_influence_width_factor float

Footing depth of influence width factor

required

Returns:

Name Type Description
footing_influence_depth float

Depth of influence for footing

get_footing_pore_water_pressure

get_footing_pore_water_pressure(
    water_table_present,
    footing_embedment,
    water_table=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_pore\_water\_pressure}(z_{w\ present}, D_f, z_w) \\ \hspace{1em} u_0 \gets \mathrm{get\_pore\_water\_pressure} \mathopen{}\left( z_{w\ present}, z_w, D_f \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ u_0 \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
water_table_present bool

Indicates presence of water table

required
footing_embedment float

Depth of footing embedment

required
water_table float

Depth to water table below ground surface

float('nan')

Returns:

Name Type Description
pore_water_pressure float

Pore water pressure in soil

get_footing_settlement

get_footing_settlement(footing_settlement_inc)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_settlement}(S_i) \\ \hspace{1em} S \gets \mathrm{reverse\_cumsum} \mathopen{}\left( S_i \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_settlement_inc float

Incremental settlement of footing

required

Returns:

Name Type Description
footing_settlement float

Settlement of footing

get_footing_settlement_inc

get_footing_settlement_inc(
    thickness,
    constrained_modulus,
    imposed_stress,
    apply_20_percent_rule,
    effective_stress=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_settlement\_inc}(H, M, Δ_σ, \mathrm{apply\_20\_percent\_rule}, σ_v') \\ \hspace{1em} \mathbf{if} \ \mathrm{apply\_20\_percent\_rule} \\ \hspace{2em} Δ_σ \gets \mathrm{np}.\mathrm{copy} \mathopen{}\left( Δ_σ \mathclose{}\right) \\ \hspace{2em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( Δ_σ, 0.2 σ_v' > Δ_σ, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} S_i \gets \frac{0.1 H \cdot Δ_σ}{M} \\ \hspace{1em} S_i \gets \mathrm{np}.\mathrm{nan\_to\_num} \mathopen{}\left( S_i \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ S_i \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
thickness float

Thickness of soil layer

required
constrained_modulus float

Constrained modulus of soil

required
imposed_stress float

Imposed stress on soil

required
apply_20_percent_rule bool

Ignores settlements where 20% of effective stress exceeds applied stress change

required
effective_stress float

Effective vertical stress in soil

float('nan')

Returns:

Name Type Description
footing_settlement_inc float

Incremental settlement of footing

get_footing_settlement_sum

get_footing_settlement_sum(footing_settlement_inc)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_settlement\_sum}(S_i) \\ \hspace{1em} ΣS \gets \sum S_i \\ \hspace{1em} \mathbf{return} \ ΣS \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_settlement_inc float

Incremental settlement of footing

required

Returns:

Name Type Description
footing_settlement_sum float

Sum of footing settlement increments

get_footing_total_stress

get_footing_total_stress(unit_weight, footing_embedment)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_footing\_total\_stress}(γ, D_f) \\ \hspace{1em} σ_v \gets \mathrm{get\_total\_stress} \mathopen{}\left( γ, D_f \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ σ_v \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
unit_weight float

Unit weight of soil

required
footing_embedment float

Depth of footing embedment

required

Returns:

Name Type Description
total_stress float

Total vertical stress in soil

get_imposed_stress

get_imposed_stress(
    footing_applied_load, stress_influence_factor
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_imposed\_stress}(q_o, I_z) \\ \hspace{1em} Δ_σ \gets q_o \cdot I_z \\ \hspace{1em} \mathbf{return} \ Δ_σ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_applied_load float

Applied pressure or load on footing

required
stress_influence_factor float

Stress influence factor below footing center

required

Returns:

Name Type Description
imposed_stress float

Imposed stress on soil

get_punching_shear_coefficient__meyerhof1978ultimate

get_punching_shear_coefficient__meyerhof1978ultimate(
    bearing_capacity_ratio, friction_angle
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_punching\_shear\_coefficient\_\_meyerhof1978ultimate}({q_2}/{q_1}, ϕ) \\ \hspace{1em} K_s \gets \mathrm{ReferenceFigureRegistry}.\mathrm{PunchingShearCoefficientMeyerhof1978}.\mathrm{as\_reference\_data} \mathopen{}\left( \mathclose{}\right).\mathrm{grid\_interpolation} \mathopen{}\left( \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ K_s \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
bearing_capacity_ratio float

Ratio of bearing capacities q_2 to q_1

required
friction_angle float

Friction angle of soil

required

Returns:

Name Type Description
punching_shear_coefficient float

Punching shear coefficient for foundation

get_shape_factor_cohesion__vesic1975bearing

get_shape_factor_cohesion__vesic1975bearing(
    footing_width,
    bearing_capacity_factor_surcharge,
    bearing_capacity_factor_cohesion,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shape\_factor\_cohesion\_\_vesic1975bearing}(B, N_q, N_c, \mathrm{footing\_shape}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{2em} \mathbf{return} \ 1.0 \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{3em} L \gets B \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} s_c \gets 1 + \frac{B}{L} \frac{N_q}{N_c} \\ \hspace{1em} \mathbf{return} \ s_c \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required
bearing_capacity_factor_cohesion float

Bearing capacity factor for cohesion

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
shape_factor_cohesion float

Shape factor for cohesion in bearing capacity

get_shape_factor_surcharge__vesic1975bearing

get_shape_factor_surcharge__vesic1975bearing(
    footing_width,
    friction_angle,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shape\_factor\_surcharge\_\_vesic1975bearing}(B, ϕ, \mathrm{footing\_shape}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{2em} \mathbf{return} \ 1.0 \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{3em} L \gets B \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} s_q \gets 1 + \frac{B}{L} \cdot \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ s_q \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
friction_angle float

Friction angle of soil

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
shape_factor_surcharge float

Shape factor for surcharge in bearing capacity

get_shape_factor_surcharge_bottom_layer__vesic1975bearing

get_shape_factor_surcharge_bottom_layer__vesic1975bearing(
    footing_width,
    friction_angle_bottom_layer,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shape\_factor\_surcharge\_bottom\_layer\_\_vesic1975bearing}(B, ϕ_{bottom}, \mathrm{footing\_shape}, L) \\ \hspace{1em} s_{q\ bottom} \gets \mathrm{get\_shape\_factor\_surcharge\_\_vesic1975bearing} \mathopen{}\left( B, ϕ_{bottom}, \mathrm{footing\_shape}, L \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ s_{q\ bottom} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
friction_angle_bottom_layer float

Friction angle of sand layer beneath foundation

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
shape_factor_surcharge_bottom_layer float

Shape factor for surcharge of soil beneath foundation

get_shape_factor_unit_weight__vesic1975bearing

get_shape_factor_unit_weight__vesic1975bearing(
    footing_width,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_shape\_factor\_unit\_weight\_\_vesic1975bearing}(B, \mathrm{footing\_shape}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{2em} \mathbf{return} \ 1.0 \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{3em} L \gets B \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} s_γ \gets 1 - 0.4 \frac{B}{L} \\ \hspace{1em} \mathbf{return} \ s_γ \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
shape_factor_unit_weight float

Shape factor for unit weight in bearing capacity

get_stress_influence_factor

get_stress_influence_factor(
    footing_shape,
    footing_embedment,
    footing_width,
    depth,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_stress\_influence\_factor}(\mathrm{footing\_shape}, D_f, B, z, L) \\ \hspace{1em} I_z \gets \mathrm{None} \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"square"} \\ \hspace{2em} L \gets B \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} z \gets \mathrm{np}.\mathrm{copy} \mathopen{}\left( z \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( z, z < D_f, \mathrm{np}.\mathrm{nan} \mathclose{}\right) \\ \hspace{1em} \mathrm{np}.\mathrm{putmask} \mathopen{}\left( z, z \ge D_f, z - D_f \mathclose{}\right) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"circular"} \\ \hspace{2em} I_z \gets 1 - \frac{1}{\mathopen{}\left( 1 + \mathopen{}\left( \frac{B}{2 z} \mathclose{}\right)^{2} \mathclose{}\right)^{\frac{3}{2}}} \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"rectangular"} \mathclose{}\right) \\ \hspace{3em} m \gets \frac{L}{B} \\ \hspace{3em} n \gets \frac{z}{\frac{B}{2}} \\ \hspace{3em} I_z \gets \frac{2}{\mathrm{np}.\pi} \cdot \mathopen{}\left( \frac{\frac{m n}{\sqrt{ 1 + m^{2} + n^{2} }} \cdot \mathopen{}\left( 1 + m^{2} + 2 n^{2} \mathclose{}\right)}{\mathopen{}\left( 1 + n^{2} \mathclose{}\right) \mathopen{}\left( m^{2} + n^{2} \mathclose{}\right)} + \arcsin \mathopen{}\left( \frac{m}{\sqrt{ m^{2} + n^{2} } \cdot \sqrt{ 1 + n^{2} }} \mathclose{}\right) \mathclose{}\right) \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{return} \ I_z \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_shape str

Shape of footing

required
footing_embedment float

Depth of footing embedment

required
footing_width float

Footing width (small plan dimension)

required
depth float

Depth below ground surface to bottom of layer

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
stress_influence_factor float

Stress influence factor below footing center

get_stress_influence_factor_at_corner

get_stress_influence_factor_at_corner(
    footing_width, footing_length, depth
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_stress\_influence\_factor\_at\_corner}(B, L, z) \\ \hspace{1em} m \gets \frac{B}{z} \\ \hspace{1em} n \gets \frac{L}{z} \\ \hspace{1em} I_z \gets \frac{1}{4 \mathrm{np}.\pi} \cdot \mathopen{}\left( \frac{2 m n \cdot \sqrt{ m^{2} + n^{2} + 1 }}{m^{2} + n^{2} + m^{2} n^{2} + 1} \frac{m^{2} + n^{2} + 2}{m^{2} + n^{2} + 1} + \mathrm{np}.\mathrm{arctan2} \mathopen{}\left( 2 m n \cdot \sqrt{ m^{2} + n^{2} + 1 }, m^{2} + n^{2} - m^{2} n^{2} + 1 \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ I_z \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
footing_length float

Footing length (large plan dimension)

required
depth float

Depth below ground surface to bottom of layer

required

Returns:

Name Type Description
stress_influence_factor float

Stress influence factor below footing center

get_ultimate_bearing_capacity__terzaghi1943theoretical

get_ultimate_bearing_capacity__terzaghi1943theoretical(
    footing_shape,
    footing_width,
    footing_embedment,
    undrained_shear_strength,
    effective_stress,
    effective_unit_weight,
    bearing_capacity_factor_cohesion,
    bearing_capacity_factor_surcharge,
    bearing_capacity_factor_unit_weight,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_\_terzaghi1943theoretical}(\mathrm{footing\_shape}, B, D_f, S_u, σ_v', γ', N_c, N_q, N_γ) \\ \hspace{1em} \textrm{" From coduto2015foundation: terzaghi’s method is still often used, primarily because it is simple and familiar. However, it does not consider special cases, such as rectangular footings, inclined loads, or footings with large depth-to-width ratios "} \\ \hspace{1em} \mathbf{if} \ \mathrm{np}.\mathrm{any} \mathopen{}\left( D_f > B \mathclose{}\right) \\ \hspace{2em} \mathrm{raise\_value\_error} \mathopen{}\left( \textrm{"only valid for shallow foundations (footing\_embedment <= footing\_width"} \mathclose{}\right) \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} \mathrm{c1} \gets \mathrm{None} \\ \hspace{1em} \mathrm{c2} \gets \mathrm{None} \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"square"} \\ \hspace{2em} \mathrm{c1} \gets 1.3 \\ \hspace{2em} \mathrm{c2} \gets 0.4 \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{3em} \mathrm{c1} \gets 1 \\ \hspace{3em} \mathrm{c2} \gets 0.5 \\ \hspace{2em} \mathbf{else} \\ \hspace{3em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"circular"} \\ \hspace{4em} \mathrm{c1} \gets 1.3 \\ \hspace{4em} \mathrm{c2} \gets 0.3 \\ \hspace{3em} \mathbf{else} \\ \hspace{4em} \mathrm{raise\_value\_error} \mathopen{}\left( \textrm{"\{\} shape not supported for this method"}.\mathrm{format} \mathopen{}\left( \mathrm{footing\_shape} \mathclose{}\right) \mathclose{}\right) \\ \hspace{3em} \mathbf{end \ if} \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} Q_{ult} \gets \mathrm{c1} \cdot S_u \cdot N_c + σ_v' \cdot N_q + \mathrm{c2} \cdot γ' \cdot B \cdot N_γ \\ \hspace{1em} \mathbf{return} \ Q_{ult} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_shape str

Shape of footing

required
footing_width float

Footing width (small plan dimension)

required
footing_embedment float

Depth of footing embedment

required
undrained_shear_strength float

Undrained shear strength of soil

required
effective_stress float

Effective vertical stress in soil

required
effective_unit_weight float

Effective unit weight of soil

required
bearing_capacity_factor_cohesion float

Bearing capacity factor for cohesion

required
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

required

Returns:

Name Type Description
ultimate_bearing_capacity float

Ultimate bearing capacity of foundation

get_ultimate_bearing_capacity__vesic1975bearing

get_ultimate_bearing_capacity__vesic1975bearing(
    footing_width,
    undrained_shear_strength,
    effective_stress,
    effective_unit_weight,
    bearing_capacity_factor_cohesion,
    bearing_capacity_factor_surcharge,
    bearing_capacity_factor_unit_weight,
    shape_factor_cohesion,
    shape_factor_surcharge,
    shape_factor_unit_weight,
    depth_factor_cohesion,
    depth_factor_surcharge,
    depth_factor_unit_weight,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_\_vesic1975bearing}(B, S_u, σ_v', γ', N_c, N_q, N_γ, s_c, s_q, s_γ, d_c, d_q, d_γ) \\ \hspace{1em} Q_{ult} \gets S_u \cdot N_c \cdot s_c \cdot d_c + σ_v' \cdot N_q \cdot s_q \cdot d_q + 0.5 γ' \cdot B \cdot N_γ \cdot s_γ \cdot d_γ \\ \hspace{1em} \mathbf{return} \ Q_{ult} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
undrained_shear_strength float

Undrained shear strength of soil

required
effective_stress float

Effective vertical stress in soil

required
effective_unit_weight float

Effective unit weight of soil

required
bearing_capacity_factor_cohesion float

Bearing capacity factor for cohesion

required
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

required
shape_factor_cohesion float

Shape factor for cohesion in bearing capacity

required
shape_factor_surcharge float

Shape factor for surcharge in bearing capacity

required
shape_factor_unit_weight float

Shape factor for unit weight in bearing capacity

required
depth_factor_cohesion float

Depth factor for cohesion in bearing capacity

required
depth_factor_surcharge float

Depth factor for surcharge in bearing capacity

required
depth_factor_unit_weight float

Depth factor for unit weight in bearing capacity

required

Returns:

Name Type Description
ultimate_bearing_capacity float

Ultimate bearing capacity of foundation

get_ultimate_bearing_capacity_case1__meyerhof1978ultimate

get_ultimate_bearing_capacity_case1__meyerhof1978ultimate(
    footing_width,
    footing_embedment,
    punching_shear_coefficient,
    undrained_shear_strength_bottom_layer,
    effective_stress,
    effective_unit_weight,
    thickness_top_layer,
    friction_angle,
    ultimate_bearing_capacity_limit,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_case1\_\_meyerhof1978ultimate}(B, D_f, K_s, S_{u\ bottom}, σ_v', γ', H_{top}, ϕ, Q_{ult\ lim}, \mathrm{footing\_shape}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{2em} L \gets \mathrm{np}.\mathrm{inf} \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{3em} L \gets B \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} Q_{ult} \gets \mathopen{}\left( 1 + 0.2 \frac{B}{L} \mathclose{}\right) \cdot 5.14 S_{u\ bottom} + γ' \cdot H_{top}^{2} \cdot \mathopen{}\left( 1 + \frac{B}{L} \mathclose{}\right) \mathopen{}\left( 1 + \frac{2 D_f}{H_{top}} \mathclose{}\right) \frac{K_s \cdot \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right)}{B} + σ_v' \\ \hspace{1em} Q_{ult} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( Q_{ult}, \mathrm{None}, Q_{ult\ lim} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ Q_{ult} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
footing_embedment float

Depth of footing embedment

required
punching_shear_coefficient float

Punching shear coefficient for foundation

required
undrained_shear_strength_bottom_layer float

Undrained shear strength of clay beneath foundation

required
effective_stress float

Effective vertical stress in soil

required
effective_unit_weight float

Effective unit weight of soil

required
thickness_top_layer float

Thickness of top soil layer from beneath foundation embedment

required
friction_angle float

Friction angle of soil

required
ultimate_bearing_capacity_limit float

Limit for ultimate bearing capacity

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
ultimate_bearing_capacity float

Ultimate bearing capacity of foundation

get_ultimate_bearing_capacity_case2__meyerhof1978ultimate

get_ultimate_bearing_capacity_case2__meyerhof1978ultimate(
    friction_angle,
    footing_shape,
    footing_width,
    footing_embedment,
    thickness_top_layer,
    effective_unit_weight,
    punching_shear_coefficient,
    bearing_capacity_factor_surcharge_bottom_layer,
    shape_factor_surcharge_bottom_layer,
    bearing_capacity_factor_unit_weight_bottom_layer,
    shape_factor_unit_weight,
    effective_unit_weight_bottom_layer,
    ultimate_bearing_capacity_limit,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_case2\_\_meyerhof1978ultimate}(ϕ, \mathrm{footing\_shape}, B, D_f, H_{top}, γ', K_s, N_{q\ bottom}, s_{q\ bottom}, N_{γ\ bottom}, s_γ, γ_{bottom}', Q_{ult\ lim}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{2em} L \gets B \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} Q_{ult} \gets γ' \cdot \mathopen{}\left( D_f + H_{top} \mathclose{}\right) N_{q\ bottom} \cdot s_{q\ bottom} + 0.5 γ_{bottom}' \cdot B \cdot N_{γ\ bottom} \cdot s_γ + γ' \cdot H_{top}^{2} \cdot \mathopen{}\left( 1 + \frac{B}{L} \mathclose{}\right) \mathopen{}\left( 1 + \frac{2 D_f}{H_{top}} \mathclose{}\right) \frac{K_s \cdot \mathrm{tandg} \mathopen{}\left( ϕ \mathclose{}\right)}{B} - γ' \cdot H_{top} \\ \hspace{1em} Q_{ult} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( Q_{ult}, \mathrm{None}, Q_{ult\ lim} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ Q_{ult} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
friction_angle float

Friction angle of soil

required
footing_shape str

Shape of footing

required
footing_width float

Footing width (small plan dimension)

required
footing_embedment float

Depth of footing embedment

required
thickness_top_layer float

Thickness of top soil layer from beneath foundation embedment

required
effective_unit_weight float

Effective unit weight of soil

required
punching_shear_coefficient float

Punching shear coefficient for foundation

required
bearing_capacity_factor_surcharge_bottom_layer float

Bearing capacity factor for surcharge of soil beneath foundation

required
shape_factor_surcharge_bottom_layer float

Shape factor for surcharge of soil beneath foundation

required
bearing_capacity_factor_unit_weight_bottom_layer float

Bearing capacity factor for unit weight of soil beneath foundation

required
shape_factor_unit_weight float

Shape factor for unit weight in bearing capacity

required
effective_unit_weight_bottom_layer float

Effective unit weight of soil beneath foundation

required
ultimate_bearing_capacity_limit float

Limit for ultimate bearing capacity

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
ultimate_bearing_capacity float

Ultimate bearing capacity of foundation

get_ultimate_bearing_capacity_case3__meyerhof1978ultimate

get_ultimate_bearing_capacity_case3__meyerhof1978ultimate(
    footing_width,
    unit_adhesion,
    undrained_shear_strength_bottom_layer,
    effective_stress,
    thickness_top_layer,
    ultimate_bearing_capacity_limit,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_case3\_\_meyerhof1978ultimate}(B, c_α, S_{u\ bottom}, σ_v', H_{top}, Q_{ult\ lim}, \mathrm{footing\_shape}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{2em} L \gets \mathrm{np}.\mathrm{inf} \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{3em} L \gets B \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} Q_{ult} \gets \mathopen{}\left( 1 + 0.2 \frac{B}{L} \mathclose{}\right) \cdot 5.14 S_{u\ bottom} + \mathopen{}\left( 1 + \frac{B}{L} \mathclose{}\right) \frac{2 c_α \cdot H_{top}}{B} + σ_v' \\ \hspace{1em} Q_{ult} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( Q_{ult}, \mathrm{None}, Q_{ult\ lim} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ Q_{ult} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
unit_adhesion float

Unit adhesion for pile shaft

required
undrained_shear_strength_bottom_layer float

Undrained shear strength of clay beneath foundation

required
effective_stress float

Effective vertical stress in soil

required
thickness_top_layer float

Thickness of top soil layer from beneath foundation embedment

required
ultimate_bearing_capacity_limit float

Limit for ultimate bearing capacity

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
ultimate_bearing_capacity float

Ultimate bearing capacity of foundation

get_ultimate_bearing_capacity_limit_case1and2__meyerhof1978ultimate

get_ultimate_bearing_capacity_limit_case1and2__meyerhof1978ultimate(
    footing_width,
    effective_stress,
    effective_unit_weight,
    bearing_capacity_factor_surcharge,
    bearing_capacity_factor_unit_weight,
    shape_factor_surcharge,
    shape_factor_unit_weight,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_limit\_case1and2\_\_meyerhof1978ultimate}(B, σ_v', γ', N_q, N_γ, s_q, s_γ) \\ \hspace{1em} Q_{ult\ lim} \gets \mathrm{get\_ultimate\_bearing\_capacity\_\_vesic1975bearing} \mathopen{}\left( \mathclose{}\right) \\ \hspace{1em} a \gets 0 \\ \hspace{1em} d_q \gets 1 \\ \hspace{1em} d_γ \gets 1 \\ \hspace{1em} \mathbf{return} \ Q_{ult\ lim} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
effective_stress float

Effective vertical stress in soil

required
effective_unit_weight float

Effective unit weight of soil

required
bearing_capacity_factor_surcharge float

Bearing capacity factor for surcharge

required
bearing_capacity_factor_unit_weight float

Bearing capacity factor for unit weight

required
shape_factor_surcharge float

Shape factor for surcharge in bearing capacity

required
shape_factor_unit_weight float

Shape factor for unit weight in bearing capacity

required

Returns:

Name Type Description
ultimate_bearing_capacity_limit float

Limit for ultimate bearing capacity

get_ultimate_bearing_capacity_limit_case3__meyerhof1978ultimate

get_ultimate_bearing_capacity_limit_case3__meyerhof1978ultimate(
    footing_width,
    undrained_shear_strength,
    effective_stress,
    footing_shape,
    footing_length=float("nan"),
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_ultimate\_bearing\_capacity\_limit\_case3\_\_meyerhof1978ultimate}(B, S_u, σ_v', \mathrm{footing\_shape}, L) \\ \hspace{1em} \mathbf{if} \ \mathrm{footing\_shape} = \textrm{"continuous"} \\ \hspace{2em} L \gets \mathrm{np}.\mathrm{inf} \\ \hspace{1em} \mathbf{else} \\ \hspace{2em} \mathbf{if} \ \mathrm{footing\_shape} \in \mathopen{}\left( \textrm{"square"}, \textrm{"circular"} \mathclose{}\right) \\ \hspace{3em} L \gets B \\ \hspace{2em} \mathbf{end \ if} \\ \hspace{1em} \mathbf{end \ if} \\ \hspace{1em} Q_{ult\ lim} \gets \mathopen{}\left( 1 + 0.2 \frac{B}{L} \mathclose{}\right) \cdot 5.14 S_u + σ_v' \\ \hspace{1em} \mathbf{return} \ Q_{ult\ lim} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
footing_width float

Footing width (small plan dimension)

required
undrained_shear_strength float

Undrained shear strength of soil

required
effective_stress float

Effective vertical stress in soil

required
footing_shape str

Shape of footing

required
footing_length float

Footing length (large plan dimension)

float('nan')

Returns:

Name Type Description
ultimate_bearing_capacity_limit float

Limit for ultimate bearing capacity

get_unit_adhesion__meyerhof1978ultimate

get_unit_adhesion__meyerhof1978ultimate(
    undrained_shear_strength,
    unit_adhesion_to_cohesion_ratio,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_adhesion\_\_meyerhof1978ultimate}(S_u, c_α/c_1) \\ \hspace{1em} c_α \gets S_u \cdot c_α/c_1 \\ \hspace{1em} \mathbf{return} \ c_α \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
undrained_shear_strength float

Undrained shear strength of soil

required
unit_adhesion_to_cohesion_ratio float

Ratio of unit adhesion to unit cohesion

required

Returns:

Name Type Description
unit_adhesion float

Unit adhesion for pile shaft

get_unit_adhesion_to_cohesion_ratio__meyerhof1978ultimate

get_unit_adhesion_to_cohesion_ratio__meyerhof1978ultimate(
    undrained_shear_strength,
    undrained_shear_strength_bottom_layer,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_unit\_adhesion\_to\_cohesion\_ratio\_\_meyerhof1978ultimate}(S_u, S_{u\ bottom}) \\ \hspace{1em} {q_2}/{q_1} \gets \frac{S_{u\ bottom}}{S_u} \\ \hspace{1em} c_α/c_1 \gets \mathrm{ReferenceFigureRegistry}.\mathrm{UnitAdhesionToCohesionRatioMeyerhof1978}.\mathrm{interpolate\_at\_x} \mathopen{}\left( {q_2}/{q_1} \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ c_α/c_1 \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
undrained_shear_strength float

Undrained shear strength of soil

required
undrained_shear_strength_bottom_layer float

Undrained shear strength of clay beneath foundation

required

Returns:

Name Type Description
unit_adhesion_to_cohesion_ratio float

Ratio of unit adhesion to unit cohesion