Earth pressure¶
The three lateral earth-pressure regimes:
- At-rest \(K_0\) — Jaky (1944), Mayne & Kulhawy (1982)
- Active \(K_a\) — Rankine (1857) and Coulomb (1776)
- Passive \(K_p\) — Rankine and Coulomb
Plus the distribution behind a wall (including surcharge, water table, and cohesion's tension crack) and a plot helper.
Quick examples¶
import geoeq as ge
# At-rest coefficient
ge.K0(phi=30) # 0.500 (Jaky)
ge.K0(phi=30, OCR=4, method="mayne") # 1.000 (heavy OC)
# Rankine (smooth vertical wall, horizontal backfill)
ge.Ka(phi=30) # 0.333
ge.Kp(phi=30) # 3.000
ge.Ka(phi=30) * ge.Kp(phi=30) # 1.0 — reciprocal property
# Sloping backfill
ge.Ka(phi=30, beta=10) # 0.350 — slightly higher
# Coulomb — general (wall friction delta, wall inclination alpha, backfill slope beta)
ge.Ka(phi=30, delta=20, alpha=0, beta=5, method="coulomb")
Pressure distribution behind a wall¶
res = ge.earth_pressure(
gamma=18, H=5, phi=30, c=0,
kind="active",
surcharge=10,
water_table=2,
)
# {'K': 0.333,
# 'P_soil': 75.0, 'P_water': 44.1, 'P_total': 119.1,
# 'h_point': 1.667,
# 'sigma_top': 3.33, 'sigma_bot': 33.33}
ge.earth_pressure_plot().Tension crack in cohesive soils¶
In cohesive soils, the active-side pressure is negative near the ground surface — meaning the soil would have to pull on the wall — which it cannot. A tension crack forms to depth:
Design implication
Below the tension crack depth, water can pond and exert hydrostatic pressure on the wall — often the controlling load case for a cohesive backfill.
API reference¶
K0
¶
At-rest earth pressure coefficient.
| PARAMETER | DESCRIPTION |
|---|---|
phi
|
Effective friction angle (degrees).
TYPE:
|
OCR
|
Over-consolidation ratio (1 for NC soils).
TYPE:
|
method
|
'jaky' -> K0 = 1 - sin(phi) (NC; Jaky 1944). 'mayne' -> K0 = (1 - sin phi) * OCR^sin(phi) (Mayne & Kulhawy 1982). 'alpan' -> Alpan (1967) for OC clays.
TYPE:
|
Reference
Jaky (1944); Mayne & Kulhawy (1982).
Source code in geoeq/design/earth_pressure.py
Ka
¶
Ka(phi: float, delta: float = 0.0, alpha: float = 0.0, beta: float = 0.0, method: str = 'rankine') -> float
Active earth pressure coefficient.
| PARAMETER | DESCRIPTION |
|---|---|
phi
|
Effective friction angle of backfill (degrees).
TYPE:
|
delta
|
Wall-soil friction angle (degrees). Default 0 (smooth wall).
TYPE:
|
alpha
|
Wall back-face inclination from vertical (degrees, positive = wall leans toward backfill). Default 0.
TYPE:
|
beta
|
Backfill slope angle (degrees, positive = ascending). Default 0.
TYPE:
|
method
|
'rankine' -- requires delta=alpha=0; uses Rankine (1857) formula. 'coulomb' -- general (Coulomb 1776).
TYPE:
|
Reference
Rankine (1857); Coulomb (1776); Das (2014) Ch. 7-8.
Source code in geoeq/design/earth_pressure.py
Kp
¶
Kp(phi: float, delta: float = 0.0, alpha: float = 0.0, beta: float = 0.0, method: str = 'rankine') -> float
Passive earth pressure coefficient.
See Ka for parameters. Same conventions; passive coefficient is the
sign-reversed version of active.
Reference
Rankine (1857); Coulomb (1776); Das (2014) Ch. 7-8.
Source code in geoeq/design/earth_pressure.py
earth_pressure
¶
Lateral earth pressure.
K0 (at-rest), Ka (active), Kp (passive) -- Rankine and Coulomb theories, plus distributions including water, surcharge, and cohesion (tension cracks).
References
- Coulomb, C. A. (1776). "Essai sur une application des regles de maximis et minimis a quelques problemes de statique relatifs a l'architecture." Memoires de Mathematique et de Physique, Paris.
- Rankine, W. J. M. (1857). "On the stability of loose earth." Phil. Trans. Royal Society, 147, 9-27.
- Jaky, J. (1944). "The coefficient of earth pressure at rest." J. Society Hungarian Architects and Engineers, 22, 355-358.
- Mayne, P. W., Kulhawy, F. H. (1982). "K0-OCR relationships in soil." J. Geotech. Eng., ASCE, 108(GT6), 851-872.
- Das (2014), Ch. 7-8.
K0
¶
At-rest earth pressure coefficient.
| PARAMETER | DESCRIPTION |
|---|---|
phi
|
Effective friction angle (degrees).
TYPE:
|
OCR
|
Over-consolidation ratio (1 for NC soils).
TYPE:
|
method
|
'jaky' -> K0 = 1 - sin(phi) (NC; Jaky 1944). 'mayne' -> K0 = (1 - sin phi) * OCR^sin(phi) (Mayne & Kulhawy 1982). 'alpan' -> Alpan (1967) for OC clays.
TYPE:
|
Reference
Jaky (1944); Mayne & Kulhawy (1982).
Source code in geoeq/design/earth_pressure.py
Ka
¶
Ka(phi: float, delta: float = 0.0, alpha: float = 0.0, beta: float = 0.0, method: str = 'rankine') -> float
Active earth pressure coefficient.
| PARAMETER | DESCRIPTION |
|---|---|
phi
|
Effective friction angle of backfill (degrees).
TYPE:
|
delta
|
Wall-soil friction angle (degrees). Default 0 (smooth wall).
TYPE:
|
alpha
|
Wall back-face inclination from vertical (degrees, positive = wall leans toward backfill). Default 0.
TYPE:
|
beta
|
Backfill slope angle (degrees, positive = ascending). Default 0.
TYPE:
|
method
|
'rankine' -- requires delta=alpha=0; uses Rankine (1857) formula. 'coulomb' -- general (Coulomb 1776).
TYPE:
|
Reference
Rankine (1857); Coulomb (1776); Das (2014) Ch. 7-8.
Source code in geoeq/design/earth_pressure.py
Kp
¶
Kp(phi: float, delta: float = 0.0, alpha: float = 0.0, beta: float = 0.0, method: str = 'rankine') -> float
Passive earth pressure coefficient.
See Ka for parameters. Same conventions; passive coefficient is the
sign-reversed version of active.
Reference
Rankine (1857); Coulomb (1776); Das (2014) Ch. 7-8.
Source code in geoeq/design/earth_pressure.py
earth_pressure
¶
earth_pressure(gamma: float, H: float, phi: float, c: float = 0.0, kind: str = 'active', surcharge: float = 0.0, water_table: float = None, K_method: str = 'rankine') -> dict
Lateral pressure distribution on a vertical wall of height H.
Earth pressure at depth z: sigma_h = K * gamma * z (cohesionless, no surcharge) + K * surcharge - 2 c sqrt(K) (cohesion subtraction in active case)
Returns the resultant force P (kN/m) and its line of action.
| PARAMETER | DESCRIPTION |
|---|---|
gamma
|
Bulk unit weight (kN/m^3).
TYPE:
|
H
|
Wall height (m).
TYPE:
|
phi
|
Friction angle (degrees).
TYPE:
|
c
|
Cohesion (kPa).
TYPE:
|
kind
|
'active' | 'passive' | 'at_rest'.
TYPE:
|
surcharge
|
Uniform surface surcharge q (kPa).
TYPE:
|
water_table
|
Depth of water table below the top of the wall (m). If given, an additional hydrostatic pressure (gamma_w*(z - z_w)) is added and the effective unit weight below z_w is gamma - gamma_w.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
dict
|
|
Reference
Das (2014), Ch. 7-8.
Source code in geoeq/design/earth_pressure.py
| Python | |
|---|---|
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 | |
tension_crack_depth
¶
tension_crack_depth(c: float, gamma: float, Ka_value: float = None, phi: float = 0.0) -> float
Depth of tension crack in cohesive soil behind a wall.
z_c = 2 c / (gamma * sqrt(Ka))
| PARAMETER | DESCRIPTION |
|---|---|
c
|
Cohesion (kPa).
TYPE:
|
gamma
|
Unit weight (kN/m^3).
TYPE:
|
Ka_value
|
Active earth pressure coefficient. If None, computed from
TYPE:
|
phi
|
Friction angle (degrees). Used only if Ka_value is None.
TYPE:
|
Reference
Das (2014) Eq. 7.18.
Source code in geoeq/design/earth_pressure.py
earth_pressure_plot
¶
earth_pressure_plot(gamma: float, H: float, phi: float, c: float = 0.0, kind: str = 'active', save_as: str = None)
Visualize the lateral pressure distribution behind a wall.
Returns the Matplotlib figure.
Source code in geoeq/design/earth_pressure.py
tension_crack_depth
¶
tension_crack_depth(c: float, gamma: float, Ka_value: float = None, phi: float = 0.0) -> float
Depth of tension crack in cohesive soil behind a wall.
z_c = 2 c / (gamma * sqrt(Ka))
| PARAMETER | DESCRIPTION |
|---|---|
c
|
Cohesion (kPa).
TYPE:
|
gamma
|
Unit weight (kN/m^3).
TYPE:
|
Ka_value
|
Active earth pressure coefficient. If None, computed from
TYPE:
|
phi
|
Friction angle (degrees). Used only if Ka_value is None.
TYPE:
|
Reference
Das (2014) Eq. 7.18.
Source code in geoeq/design/earth_pressure.py
earth_pressure_plot
¶
earth_pressure_plot(gamma: float, H: float, phi: float, c: float = 0.0, kind: str = 'active', save_as: str = None)
Visualize the lateral pressure distribution behind a wall.
Returns the Matplotlib figure.
