Settlement¶
Three components, each as its own function:
- Immediate (elastic) — Janbu / Steinbrenner closed form
- Primary consolidation — 1-D Terzaghi for NC, OC-below-pc, or OC-crossing-pc
- Secondary compression — Mesri & Godlewski \(C_\alpha\) log-time
- Schmertmann strain-influence — Schmertmann (1970, 1978) for sands
Plus the time-rate of consolidation: \(T_v \leftrightarrow U\) and \(t = T_v\,H_{dr}^2/c_v\).
Immediate (elastic)¶
shape picks the influence factor \(I_p\) automatically (0.88 for a
rigid square, 0.79 for a rigid circle, 1.12 for a flexible centre,
0.56 for a flexible corner, ~2 for a strip).
Primary consolidation¶
Three regimes, selected automatically by kind="auto":
S = ge.settlement_primary(Cc=0.27, e0=0.92, H=3.66,
sigma0=80, delta_sigma=15)
print(f"S = {S*1000:.1f} mm") # 38.3 mm — matches Das Ex 5.1
Secondary compression¶
For the void-ratio form \(C_\alpha\) (slope of \(e\) vs \(\log t\)), pass the end-of-primary void ratio:
Schmertmann (sands)¶
with embedment correction \(C_1 = 1 - 0.5(\sigma'_0/q_{\text{net}})\) and creep correction \(C_2 = 1 + 0.2\log_{10}(t/0.1)\) years. The strain-influence diagram \(I_z\) peaks at \(z = 0.5B\) (axisymmetric) or \(z = 1.0B\) (strip).
ge.settlement_schmertmann(
q_net=100, B=2,
Es=[10000, 30000],
layers=[(0, 2), (2, 4)],
Df=1, t_years=10, shape="square",
)
# {'S': 0.0157, 'C1': 0.91, 'C2': 1.40, 'Iz_peak': 0.665, ...}
Time rate of consolidation¶
ge.time_factor(U=0.5) # 0.196
ge.time_factor(U=0.9) # 0.848
ge.consolidation_degree(Tv=0.197) # 0.501
ge.consolidation_time(U=0.9, Hdr=2, cv=1e-7) # 3.4e7 seconds (393 days)
ge.settlement_time_plot().API reference¶
settlement_immediate
¶
settlement_immediate(q: float, B: float, Es: float, mu: float = 0.3, Ip: float = None, shape: str = 'rigid_square') -> float
Elastic (immediate) settlement under a uniformly loaded footing.
S_i = q * B * (1 - mu^2) / Es * Ip
| PARAMETER | DESCRIPTION |
|---|---|
q
|
Surface pressure (kPa).
TYPE:
|
B
|
Footing width (m) -- shorter dimension for rectangles.
TYPE:
|
Es
|
Soil elastic modulus (kPa).
TYPE:
|
mu
|
Poisson's ratio (-). Default 0.3.
TYPE:
|
Ip
|
Influence factor. If None, picked from
TYPE:
|
shape
|
'rigid_square' -> Ip = 0.88 'rigid_circle' -> Ip = 0.79 'flexible_centre' -> Ip = 1.12 'flexible_corner' -> Ip = 0.56 'rigid_strip' -> Ip = 2.0 (approx, depth-dependent)
TYPE:
|
Reference
Janbu et al. (1956); Das (2014) Eq. 5.20, Table 5.1.
Source code in geoeq/design/settlement.py
settlement_primary
¶
settlement_primary(Cc: float, e0: float, H: float, sigma0: float, delta_sigma: float, Cr: float = None, sigma_pc: float = None, kind: str = 'auto') -> float
1-D primary consolidation settlement.
Three regimes:
-
NC (normally consolidated): S = (Cc * H / (1 + e0)) * log10((sigma0 + delta_sigma) / sigma0)
-
OC, final stress below preconsolidation: S = (Cr * H / (1 + e0)) * log10((sigma0 + delta_sigma) / sigma0)
-
OC, final stress crosses preconsolidation: S = (Cr*H/(1+e0)) * log10(sigma_pc / sigma0)
- (Cc*H/(1+e0)) * log10((sigma0+delta_sigma)/sigma_pc)
| PARAMETER | DESCRIPTION |
|---|---|
Cc
|
Compression index (-).
TYPE:
|
e0
|
Initial void ratio (-).
TYPE:
|
H
|
Drainage path length (m) -- full layer thickness for one-way drainage or half-thickness for two-way drainage; pass actual layer thickness.
TYPE:
|
sigma0
|
Initial effective vertical stress (kPa) at mid-depth.
TYPE:
|
delta_sigma
|
Stress increase at mid-depth (kPa).
TYPE:
|
Cr
|
Recompression (swell) index (-). Required for OC cases.
TYPE:
|
sigma_pc
|
Preconsolidation pressure (kPa). Required for OC cases.
TYPE:
|
kind
|
'NC', 'OC', or 'auto' (decide from sigma_pc).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
S
|
Primary settlement (m).
TYPE:
|
Reference
Terzaghi (1925); Das (2014) Eq. 5.31-5.34.
Source code in geoeq/design/settlement.py
| Python | |
|---|---|
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | |
settlement_secondary
¶
settlement_secondary(C_alpha: float, H: float, t1: float, t2: float, e_p: float = None) -> float
Secondary compression S_s = C_alpha_eps * H * log10(t2/t1).
| PARAMETER | DESCRIPTION |
|---|---|
C_alpha
|
Secondary compression index. If
TYPE:
|
H
|
Layer thickness (m).
TYPE:
|
t1
|
Reference (end of primary) and target times (any consistent unit).
TYPE:
|
t2
|
Reference (end of primary) and target times (any consistent unit).
TYPE:
|
e_p
|
Void ratio at end-of-primary, for converting C_alpha -> C_alpha_eps.
TYPE:
|
Reference
Mesri & Godlewski (1977); Das (2014) Eq. 5.51.
Source code in geoeq/design/settlement.py
settlement_schmertmann
¶
settlement_schmertmann(q_net: float, B: float, Es: Union[float, Sequence[float]], layers: Sequence[tuple] = None, Df: float = 0.0, sigma_v_at_base: float = None, gamma: float = 18.0, t_years: float = 1.0, shape: str = 'square') -> dict
Schmertmann's strain-influence settlement for sandy soils.
S = C1 * C2 * q_net * sum_i ( Iz_i / Es_i * dz_i )
where: C1 = 1 - 0.5 * (sigma_v' / q_net) -- embedment correction C2 = 1 + 0.2 * log10(t_years / 0.1) -- creep correction
The strain-influence diagram Iz is taken from Schmertmann et al. (1978):
- Square / circular (axisymmetric): Iz peaks at 0.5*B (Iz_peak), = 0.1 at z=0, 0 at z=2B.
- Strip (plane strain): Iz peaks at 1.0*B, = 0.2 at z=0, 0 at z=4B.
Iz_peak = 0.5 + 0.1 * sqrt(q_net / sigma_v_at_peak).
| PARAMETER | DESCRIPTION |
|---|---|
q_net
|
Net surface pressure (kPa) above sigma_v at footing base.
TYPE:
|
B
|
Footing width (m).
TYPE:
|
Es
|
Elastic modulus of subsoil (kPa). If a single number, applied
to one layer of depth 0 .. (2B or 4B). If sequence, must match
TYPE:
|
layers
|
Optional. If None and
TYPE:
|
Df
|
Footing depth (m).
TYPE:
|
sigma_v_at_base
|
Effective vertical stress at the base of the footing (kPa).
If None, estimated as
TYPE:
|
gamma
|
Soil unit weight, only used if sigma_v_at_base is None.
TYPE:
|
t_years
|
Time after construction for the creep correction (yrs). Default 1.
TYPE:
|
shape
|
'square' / 'circle' (axisymmetric) or 'strip' (plane strain).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
dict
|
{'S': settlement_metres, 'C1', 'C2', 'Iz_peak', 'layers': [...]} |
Reference
Schmertmann (1970); Schmertmann et al. (1978); Das (2014) Ch. 5.10.
Source code in geoeq/design/settlement.py
| Python | |
|---|---|
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | |
time_factor
¶
Time factor Tv from average degree of consolidation U (0..1).
Approximate Terzaghi solution (Das Eq. 5.46): Tv = (pi/4) * U^2 for U < 0.6 Tv = 1.781 - 0.933 * log10(100*(1-U)) for U >= 0.6
Reference
Terzaghi (1925); Das (2014) Eq. 5.46.
Source code in geoeq/design/settlement.py
consolidation_degree
¶
Average degree of consolidation U (0..1) from time factor Tv.
Inverse of time_factor (Das Eq. 5.46).
Source code in geoeq/design/settlement.py
consolidation_time
¶
Time to reach degree of consolidation U.
t = Tv * Hdr^2 / cv
| PARAMETER | DESCRIPTION |
|---|---|
U
|
Target degree of consolidation (0..1).
TYPE:
|
Hdr
|
Drainage path length (m). Half the layer thickness for double drainage.
TYPE:
|
cv
|
Coefficient of consolidation (m^2/s, or any consistent unit).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
t
|
Time (same time units as cv).
TYPE:
|
Reference
Das (2014) Eq. 5.43.
Source code in geoeq/design/settlement.py
settlement_time_plot
¶
The classical Terzaghi consolidation curve: U vs Tv (log scale).
Plots the approximate piecewise formula used by time_factor:
Tv = (pi/4) U^2 for U < 0.6, Tv = 1.781 - 0.933 log10(100(1-U))
for U >= 0.6.
