Geotechnical Engineering
Soil mechanics, foundations, and slope stability.
Geotechnical Engineering
Geotechnical engineering applies soil mechanics, rock mechanics, and geology to the design and construction of foundations, earth structures, and underground facilities. Understanding soil behavior is essential for ensuring that structures remain stable and safe throughout their service life.
Soil Composition and Classification
Soil Phases
Soil is a three-phase material consisting of:
- Solids: Mineral particles (sand, silt, clay)
- Water: Pore water
- Air: Pore air (in unsaturated soil)
Phase Relationships
Void Ratio:
Porosity:
Degree of Saturation:
Water Content (Moisture Content):
Unit Weight Relationships:
Dry unit weight:
Saturated unit weight:
Moist unit weight:
Submerged (buoyant) unit weight:
Where is specific gravity of solids (typically 2.65-2.70) and kN/m.
Soil Classification
Unified Soil Classification System (USCS):
| Symbol | Description |
|---|---|
| GW | Well-graded gravel |
| GP | Poorly-graded gravel |
| GM | Silty gravel |
| GC | Clayey gravel |
| SW | Well-graded sand |
| SP | Poorly-graded sand |
| SM | Silty sand |
| SC | Clayey sand |
| ML | Low plasticity silt |
| CL | Low plasticity clay |
| MH | High plasticity silt |
| CH | High plasticity clay |
| OL/OH | Organic soils |
| Pt | Peat |
Atterberg Limits
Liquid Limit (LL): Water content at which soil transitions from plastic to liquid state
Plastic Limit (PL): Water content at which soil transitions from semi-solid to plastic state
Plasticity Index:
Liquidity Index:
Soil Stresses
Effective Stress Principle (Terzaghi)
The effective stress controls soil behavior:
Where:
- = effective stress
- = total stress
- = pore water pressure
Vertical Stress in Soil
At depth below ground surface:
For layered soil:
Below water table:
Stress Distribution
Boussinesq's Equation (point load on elastic half-space):
Where is the angle from vertical.
2:1 Approximation for stress distribution:
For square footing:
Shear Strength
Mohr-Coulomb Failure Criterion
Where:
- = cohesion
- = angle of internal friction
- = effective normal stress on failure plane
Drained vs. Undrained Strength
Drained conditions (long-term): Use effective stress parameters ,
Undrained conditions (short-term): Use total stress parameters , for saturated clay
Typical Strength Parameters
| Soil Type | ||
|---|---|---|
| Loose sand | 28-32° | 0 |
| Dense sand | 35-45° | 0 |
| Soft clay | 20-25° | 0-10 kPa |
| Stiff clay | 25-30° | 10-25 kPa |
Bearing Capacity
Terzaghi's Bearing Capacity Equation
For strip footing:
Where:
- = ultimate bearing capacity
- = cohesion
- = overburden pressure at foundation level
- = foundation width
- , , = bearing capacity factors (functions of )
Bearing Capacity Factors
Shape Factors (Meyerhof)
For rectangular footings, multiply by shape factors:
| Factor | Strip | Square | Circular |
|---|---|---|---|
| 1.0 | 1.3 | 1.3 | |
| 1.0 | 1.0 | 1.0 | |
| 1.0 | 0.8 | 0.6 |
Factor of Safety
Typical FS = 2.5 to 3.0 for foundations.
Settlement Analysis
Immediate Settlement
For flexible footing on elastic soil:
Where is influence factor (depends on shape and rigidity).
Consolidation Settlement
For normally consolidated clay:
For overconsolidated clay (if ):
Where:
- = compression index
- = recompression index
- = thickness of clay layer
- = initial void ratio
- = preconsolidation pressure
Time Rate of Consolidation
Where:
- = degree of consolidation
- = time factor
- = coefficient of consolidation
- = drainage path length
Approximate relationships:
- For :
- For :
Slope Stability
Factor of Safety
Infinite Slope Analysis
For cohesionless soil:
For cohesive soil with seepage parallel to slope:
Circular Slip Surface Methods
Ordinary Method of Slices (Fellenius):
Bishop's Simplified Method:
Where:
This requires iteration to solve.
Lateral Earth Pressure
At-Rest Pressure
Rankine Theory
Active pressure (wall moves away from soil):
Passive pressure (wall moves toward soil):
For cohesive soil:
Real-World Application: Foundation Design
Designing a shallow foundation for a building column.
Foundation Analysis Example
import math
# Site and loading conditions
foundation_params = {
'column_load': 1200, # kN (service load)
'soil_type': 'medium_clay',
'cohesion': 50, # kPa (undrained)
'phi': 0, # degrees (undrained, phi_u = 0)
'gamma': 18, # kN/m^3
'depth': 1.5, # m (foundation depth)
'water_table': 4.0, # m below ground surface
'FS_required': 3.0, # factor of safety
}
# Bearing capacity factors for phi = 0
Nc = 5.14 # For phi = 0
Nq = 1.0
Ngamma = 0
c = foundation_params['cohesion']
gamma = foundation_params['gamma']
Df = foundation_params['depth']
q = gamma * Df # Overburden pressure
# Assume square footing, iterate for size
def calculate_bearing_capacity(B, c, q, gamma, Nc, Nq, Ngamma):
"""Calculate ultimate bearing capacity for square footing"""
# Shape factors for square footing
sc = 1.3
sq = 1.0
sgamma = 0.8
# Terzaghi equation with shape factors
qu = c * Nc * sc + q * Nq * sq + 0.5 * gamma * B * Ngamma * sgamma
return qu
# Iterate to find required footing size
for B in [1.5, 2.0, 2.5, 3.0, 3.5, 4.0]:
qu = calculate_bearing_capacity(B, c, q, gamma, Nc, Nq, Ngamma)
q_allowable = qu / foundation_params['FS_required']
q_applied = foundation_params['column_load'] / (B * B)
if q_applied <= q_allowable:
selected_B = B
break
print(f"Foundation Design Results")
print(f"=" * 40)
print(f"\nSite Conditions:")
print(f" Soil: {foundation_params['soil_type']}")
print(f" Undrained cohesion: {c} kPa")
print(f" Unit weight: {gamma} kN/m^3")
print(f" Foundation depth: {Df} m")
print(f"\nLoading:")
print(f" Column load: {foundation_params['column_load']} kN")
qu = calculate_bearing_capacity(selected_B, c, q, gamma, Nc, Nq, Ngamma)
q_allowable = qu / foundation_params['FS_required']
q_applied = foundation_params['column_load'] / (selected_B * selected_B)
print(f"\nBearing Capacity Analysis:")
print(f" Ultimate bearing capacity: {qu:.1f} kPa")
print(f" Allowable bearing capacity: {q_allowable:.1f} kPa")
print(f" Applied bearing pressure: {q_applied:.1f} kPa")
print(f"\nSelected Foundation:")
print(f" Size: {selected_B} m x {selected_B} m")
print(f" Depth: {Df} m")
print(f" Factor of Safety: {qu/q_applied:.2f}")
Your Challenge: Slope Stability Analysis
Analyze the stability of a slope using the method of slices.
Goal: Determine the factor of safety for a slope with specified geometry and soil properties.
Problem Setup
import math
# Slope geometry and soil properties
slope_config = {
'height': 8.0, # meters
'angle': 30, # degrees
'soil_cohesion': 15, # kPa (effective)
'friction_angle': 25, # degrees (effective)
'unit_weight': 19, # kN/m^3
'water_table': 'at_toe', # water table condition
}
# Convert angles to radians
beta = math.radians(slope_config['angle'])
phi = math.radians(slope_config['friction_angle'])
# Infinite slope analysis (simplified)
H = slope_config['height']
c = slope_config['soil_cohesion']
gamma = slope_config['unit_weight']
# For dry slope (no seepage)
# Critical depth for cohesive soil
z_critical = 4 * c / (gamma * (1 - math.cos(2 * beta)))
# Factor of safety using infinite slope method
FS_friction = math.tan(phi) / math.tan(beta)
FS_cohesion = c / (gamma * H * math.cos(beta) * math.sin(beta))
FS_total = FS_friction + FS_cohesion
print(f"Slope Stability Analysis")
print(f"=" * 40)
print(f"\nSlope Geometry:")
print(f" Height: {H} m")
print(f" Angle: {slope_config['angle']} degrees")
print(f"\nSoil Properties:")
print(f" Cohesion: {c} kPa")
print(f" Friction angle: {slope_config['friction_angle']} degrees")
print(f" Unit weight: {gamma} kN/m^3")
print(f"\nInfinite Slope Analysis:")
print(f" Frictional component: {FS_friction:.3f}")
print(f" Cohesive component: {FS_cohesion:.3f}")
print(f" Total Factor of Safety: {FS_total:.3f}")
if FS_total >= 1.5:
status = "STABLE (FS >= 1.5)"
elif FS_total >= 1.0:
status = "MARGINALLY STABLE (1.0 <= FS < 1.5)"
else:
status = "UNSTABLE (FS < 1.0)"
print(f"\nStability Assessment: {status}")
# Sensitivity analysis
print(f"\nSensitivity to Water Table:")
# With full saturation and seepage
gamma_sat = gamma + 2 # Approximate saturated unit weight
gamma_sub = gamma_sat - 9.81 # Submerged unit weight
FS_with_seepage = (c / (gamma_sat * H * math.cos(beta) * math.sin(beta)) +
gamma_sub / gamma_sat * math.tan(phi) / math.tan(beta))
print(f" FS with parallel seepage: {FS_with_seepage:.3f}")
How would you modify the analysis to account for earthquake loading using a pseudo-static approach?
ELI10 Explanation
Simple analogy for better understanding
Self-Examination
How do soil composition and water content affect the engineering properties of soil?
What are the different types of foundations and when is each type appropriate?
How is the bearing capacity of soil determined and what factors affect it?
What methods are used to analyze slope stability and what causes slopes to fail?
How does consolidation theory explain settlement in clay soils over time?