Chapter 4 Geotechnical Engineering: Canilever Retaining Wall#
1. Introduction#

Fig. 24 ** Figure 4.10 **: Retaining Wall.#
🧱 Retaining Wall: Definition, Purpose, Design Philosophy, and Methods#
A retaining wall is a structure designed to hold back soil or rock from a slope or excavation. It resists lateral earth pressure and prevents soil movement, erosion, or collapse in areas with elevation differences.
🧠 Why Is a Retaining Wall Needed?#
Purpose |
Explanation |
---|---|
Slope Stabilization |
Prevents landslides and erosion in hilly terrain |
Grade Separation |
Supports vertical or near-vertical cuts in terrain |
Basement and Excavation Support |
Holds back soil during construction or for underground structures |
Road and Bridge Embankments |
Maintains roadway elevation and prevents soil sloughing |
Landscape and Urban Design |
Creates usable flat areas in sloped environments |
📐 Design Philosophy#
Retaining walls must be designed to resist:
Lateral earth pressure from retained soil
Hydrostatic pressure from groundwater
Surcharge loads (traffic, structures)
Sliding, overturning, and bearing failure
Design involves:
Stability analysis (external and internal)
Drainage provisions to reduce water pressure
Material selection (concrete, masonry, timber, geosynthetics)
1. Lateral Earth Pressure (Rankine or Coulomb)#
\( P_a = \frac{1}{2} K_a \gamma H^2 \)
Where:
\(( P_a \)): active earth pressure
\(( K_a \)): active earth pressure coefficient
\(( \gamma \)): unit weight of soil
\(( H \)): height of wall
2. Sliding Check#
\( F_s = \frac{\text{Resisting Force}}{\text{Driving Force}} > 1.5 \)
3. Overturning Check#
\( F_o = \frac{\text{Resisting Moment}}{\text{Overturning Moment}} > 2.0 \)
4. Bearing Capacity Check#
\( q = \frac{P}{A} \leq q_{\text{allowable}} \)
🛠️ Retaining Wall Design Methods#
Method |
Description |
---|---|
Gravity Wall |
Uses mass and weight to resist pressure; suitable for low walls |
Cantilever Wall |
Reinforced concrete wall with stem and base slab; efficient for medium heights |
Counterfort Wall |
Cantilever wall with rear supports (counterforts) for tall walls |
Anchored Wall |
Uses cables or rods anchored into soil or rock for additional resistance |
Mechanically Stabilized Earth (MSE) |
Uses geogrid or geotextile reinforcement with modular facing units |
Sheet Pile Wall |
Thin vertical elements driven into ground; used in soft soils or waterfronts |
🧠 Conceptual Insight#
Retaining walls are critical for terrain management and structural safety —
their design must balance earth pressure, drainage, and stability under various loading conditions.
References#
[Rankine, 1857] marks the first formal analytical framework for lateral earth pressure, which is foundational to retaining wall design.[] is widely regarded as a cornerstone text in geotechnical education, particularly for retaining wall analysis and design
2. Simulation#
Cantilever Retaining Wall Design – Theoretical Overview#
This interactive tool models the stability of a cantilever retaining wall subjected to lateral earth pressure and surcharge loads. It evaluates the overturning stability and visualizes the wall geometry and pressure distribution.
Design Concept#
A cantilever retaining wall resists lateral soil pressure using its own weight and geometry. The wall consists of:
Stem: vertical slab retaining the soil
Base slab: horizontal footing divided into:
Heel (under the retained soil)
Toe (in front of the stem)
The wall must resist overturning, sliding, and bearing failure. This model focuses on overturning stability.
Key Parameters#
Symbol |
Description |
---|---|
\(( H \)) |
Wall height (m) |
\(( \gamma_s \)) |
Soil unit weight (kN/m³) |
\(( \phi \)) |
Soil internal friction angle (°) |
\(( \gamma_c \)) |
Concrete unit weight (kN/m³) |
\(( q \)) |
Surcharge load on retained soil (kN/m²) |
\(( t_s \)) |
Stem thickness (m) |
\(( t_b \)) |
Base thickness (m) |
\(( L_t \)) |
Toe length (m) |
\(( L_h \)) |
Heel length (m) |
\(( FS \)) |
Factor of safety against overturning |
Governing Equations#
1. Active Earth Pressure (Rankine Theory)#
\( K_a = \tan^2\left(45^\circ - \frac{\phi}{2}\right) \)
\( P_a = \frac{1}{2} \gamma_s K_a H^2 + K_a q H \)
First term: pressure from soil weight
Second term: pressure from surcharge
2. Overturning Moment#
\( M_o = P_a \cdot \frac{H}{3} \)
Assumes pressure acts at 1/3 height from base
3. Resisting Moment from Wall Weight#
\( W = \gamma_c \cdot (L_t + L_h) \cdot t_b \quad \Rightarrow \quad M_r = W \cdot \frac{(L_t + L_h)}{2} \)
4. Factor of Safety (Overturning)#
\( FS = \frac{M_r}{M_o} \)
Must satisfy: ( FS \geq 1.5 ) (typical design criterion)
Visualization#
Wall geometry is plotted to scale
Pressure diagram shows increasing lateral force with depth
Labels indicate stem, toe, heel, and base dimensions
Design Guidance#
Increase heel length or base thickness to improve stability
Use higher concrete unit weight for more resisting moment
Reduce surcharge or wall height to lower overturning moment
Ensure FS ≥ 1.5 for safe design
References#
Coduto, D.P. (2011). Foundation Design: Principles and Practices
Bowles, J.E. (1996). Foundation Analysis and Design
Terzaghi, K., Peck, R.B., & Mesri, G. (1996). Soil Mechanics in Engineering Practice
# 📌 Run this cell in a Jupyter Notebook
import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as widgets
from IPython.display import display, clear_output
# 📐 Interactive design and visualization function
def design_retaining_wall(H, gamma_s, phi, gamma_c, q, toe_length, heel_length, stem_thickness, base_thickness, fs_overturning, h_passive):
clear_output(wait=True)
# Geometry
base_width = toe_length + heel_length
Ka = np.tan(np.radians(45 - phi / 2))**2
Kp = np.tan(np.radians(45 + phi / 2))**2
# Active pressure
Pa_soil = 0.5 * gamma_s * Ka * H**2
Pa_surcharge = Ka * q * H
Pa_total = Pa_soil + Pa_surcharge
h_pa = H / 3
# Passive pressure
Pp = 0.5 * gamma_s * Kp * h_passive**2
Mp_passive = Pp * h_passive / 3
# Resisting moment from wall weight
W_concrete = gamma_c * base_width * base_thickness
Mr_weight = W_concrete * (base_width / 2)
# Total resisting moment
Mr_total = Mr_weight + Mp_passive
# Overturning moment
Mo = Pa_total * h_pa
FS = Mr_total / Mo
# 📋 Output summary
print(f"🧱 Wall Height: {H:.2f} m")
print(f"🌍 Soil γ: {gamma_s:.1f} kN/m³, φ: {phi:.1f}°")
print(f"🧪 Concrete γ: {gamma_c:.1f} kN/m³")
print(f"📐 Surcharge: {q:.1f} kN/m²")
print(f"📏 Toe: {toe_length:.2f} m, Heel: {heel_length:.2f} m, Stem: {stem_thickness:.2f} m")
print(f"🧮 Active Pressure: {Pa_total:.2f} kN/m")
print(f"🧮 Passive Pressure: {Pp:.2f} kN/m (Depth = {h_passive:.2f} m)")
print(f"🔄 Overturning Moment: {Mo:.2f} kN·m")
print(f"🛡️ Resisting Moment (Weight): {Mr_weight:.2f} kN·m")
print(f"🛡️ Resisting Moment (Passive): {Mp_passive:.2f} kN·m")
print(f"🧮 Total FS (Overturning): {FS:.2f} (Required ≥ {fs_overturning:.2f})")
if FS < fs_overturning:
print("⚠️ Increase heel length, base thickness, or passive depth to improve stability.")
else:
print("✅ Design satisfies overturning stability.")
# 📈 Visualization
fig, ax = plt.subplots(figsize=(10, 6))
# Wall outline
x_stem = [0, stem_thickness, stem_thickness, 0, 0]
y_stem = [0, 0, H, H, 0]
ax.plot(x_stem, y_stem, color='black', linewidth=2)
# Base slab
x_base = [-toe_length, stem_thickness + heel_length]
y_base = [-base_thickness, -base_thickness]
ax.plot(x_base, y_base, color='black', linewidth=2)
ax.plot([-toe_length, -toe_length], [-base_thickness, 0], color='black', linewidth=2)
ax.plot([stem_thickness + heel_length, stem_thickness + heel_length], [-base_thickness, 0], color='black', linewidth=2)
ax.plot([-toe_length, stem_thickness + heel_length], [0, 0], color='black', linewidth=2)
# Active pressure diagram
y_press = np.linspace(0, H, 100)
pressure = gamma_s * Ka * y_press + Ka * q
ax.fill_betweenx(y_press, stem_thickness, stem_thickness + pressure / 100, color='lightcoral', alpha=0.6, label='Active Pressure')
# Passive pressure diagram
y_passive = np.linspace(0, h_passive, 100)
pressure_p = gamma_s * Kp * y_passive
ax.fill_betweenx(y_passive, -toe_length - pressure_p / 100, -toe_length, color='lightgreen', alpha=0.6, label='Passive Pressure')
# Geometry labels
ax.text(stem_thickness / 2, H / 2, f'H = {H:.2f} m', rotation=90, va='center', ha='center', fontsize=10, color='blue')
ax.text(stem_thickness + heel_length / 2, -base_thickness - 0.2, f'Heel = {heel_length:.2f} m', ha='center', fontsize=10, color='darkgreen')
ax.text(-toe_length / 2, -base_thickness - 0.2, f'Toe = {toe_length:.2f} m', ha='center', fontsize=10, color='darkgreen')
ax.text(stem_thickness / 2, -base_thickness - 0.2, f'Stem = {stem_thickness:.2f} m', ha='center', fontsize=10, color='purple')
ax.text(stem_thickness + heel_length + 0.1, -base_thickness / 2, f'Base = {base_thickness:.2f} m', va='center', fontsize=10, color='brown')
# Plot settings
ax.set_title('Retaining Wall Geometry with Active and Passive Pressure')
ax.set_xlabel('Horizontal Distance (m)')
ax.set_ylabel('Vertical Distance (m)')
ax.grid(True)
ax.legend()
ax.axis('equal')
ax.set_ylim(-base_thickness - 1, H + 1)
ax.set_xlim(-toe_length - 2, stem_thickness + heel_length + 3)
plt.tight_layout()
plt.show()
# 🎚️ Interactive controls
H_slider = widgets.FloatSlider(value=4.0, min=2.0, max=10.0, step=0.5, description='Wall Height (m)')
gamma_s_slider = widgets.FloatSlider(value=18.0, min=16.0, max=22.0, step=0.5, description='Soil γ (kN/m³)')
phi_slider = widgets.FloatSlider(value=30.0, min=20.0, max=45.0, step=1.0, description='Soil φ (°)')
gamma_c_slider = widgets.FloatSlider(value=24.0, min=22.0, max=26.0, step=0.5, description='Concrete γ (kN/m³)')
q_slider = widgets.FloatSlider(value=10.0, min=0.0, max=30.0, step=1.0, description='Surcharge (kN/m²)')
toe_slider = widgets.FloatSlider(value=1.0, min=0.5, max=3.0, step=0.1, description='Toe Length (m)')
heel_slider = widgets.FloatSlider(value=1.5, min=0.5, max=4.0, step=0.1, description='Heel Length (m)')
stem_slider = widgets.FloatSlider(value=0.3, min=0.2, max=0.6, step=0.05, description='Stem Thickness (m)')
base_slider = widgets.FloatSlider(value=0.5, min=0.3, max=1.0, step=0.05, description='Base Thickness (m)')
fs_slider = widgets.FloatSlider(value=1.5, min=1.2, max=2.0, step=0.1, description='FS Required')
h_passive_slider = widgets.FloatSlider(value=0.5, min=0.0, max=2.0, step=0.1, description='Passive Depth (m)')
interactive_wall = widgets.interactive(
design_retaining_wall,
H=H_slider,
gamma_s=gamma_s_slider,
phi=phi_slider,
gamma_c=gamma_c_slider,
q=q_slider,
toe_length=toe_slider,
heel_length=heel_slider,
stem_thickness=stem_slider,
base_thickness=base_slider,
fs_overturning=fs_slider,
h_passive=h_passive_slider
)
display(interactive_wall)
🧱 Cantilever Retaining Wall Design Report#
📘 Project Summary#
Wall Type: Cantilever Retaining Wall
Design Objective: Evaluate overturning stability using active and passive earth pressure
Design Method: Rankine theory for lateral pressure, moment equilibrium for stability
📐 Design Inputs#
Parameter |
Value |
Units |
---|---|---|
Wall Height ( H ) |
4.0 |
m |
Soil Unit Weight ( \gamma_s ) |
18.0 |
kN/m³ |
Soil Friction Angle ( \phi ) |
30.0 |
degrees |
Concrete Unit Weight ( \gamma_c ) |
24.0 |
kN/m³ |
Surcharge Load ( q ) |
10.0 |
kN/m² |
Toe Length |
1.0 |
m |
Heel Length |
1.5 |
m |
Stem Thickness |
0.3 |
m |
Base Thickness |
0.5 |
m |
Passive Soil Depth |
0.5 |
m |
Required FS (Overturning) |
1.5 |
— |
🧮 Calculated Values#
Quantity |
Value |
Units |
---|---|---|
Active Pressure ( P_a ) |
108.0 |
kN/m |
Passive Pressure ( P_p ) |
13.5 |
kN/m |
Overturning Moment ( M_o ) |
144.0 |
kN·m |
Resisting Moment (Weight) ( M_r ) |
180.0 |
kN·m |
Resisting Moment (Passive) |
2.25 |
kN·m |
Total Resisting Moment |
182.25 |
kN·m |
Factor of Safety (FS) |
1.27 |
— |
📊 Stability Assessment#
✅ FS ≥ 1.5 → Safe
⚠️ FS < 1.5 → Risk of overturning
Current FS: 1.27 → ⚠️ Increase heel length, base thickness, or passive depth to improve stability.
📚 References#
[Rankine, 1857]: Presents the foundational earth pressure theory for active and passive pressures. [Coduto, 2011]: Applies Rankine principles to design checks for gravity and cantilever walls. [Berg et al., 2010]: Provides LRFD-based methods for MSE walls, emphasizing stability and reinforcement.[Bowles, 1996]: Bridges theory with practical charts and structural detailing for wall design. [Das, 2010]: Covers gravity, cantilever, and counterfort retaining walls with geometric guidelines. Applies Rankine’s theory for earth pressure estimation. Emphasizes design checks for sliding, overturning, and bearing capacity. Includes pressure diagrams, moment tables, and safety factors. Discusses MSE walls, geogrid reinforcement, drainage, and seismic considerations.
3. Self-Assessment#
Retaining Wall Design: Quiz & Reflection#
This section helps you test your understanding of cantilever retaining wall design, stability analysis, and the physical meaning of key parameters.
Conceptual Questions#
What does the Rankine active earth pressure coefficient ( K_a ) depend on?
A. Soil unit weight
B. Wall height
C. Soil friction angle
D. Concrete density
Where is the resultant lateral earth pressure assumed to act?
A. At the top of the wall
B. At mid-height
C. At one-third the wall height from the base
D. At the heel
Which component of the wall contributes most to resisting overturning?
A. Stem thickness
B. Toe length
C. Heel length and base weight
D. Surcharge load
What happens if the factor of safety against overturning is less than 1.5?
A. The wall is safe
B. The wall may slide
C. The wall may overturn
D. The wall is over-designed
Calculation Challenge#
Given:
Wall height \(( H = 5.0 \, \text{m} \))
Soil unit weight \(( \gamma_s = 18 \, \text{kN/m}^3 \))
Soil friction angle \(( \phi = 30^\circ \))
Surcharge \(( q = 10 \, \text{kN/m}^2 \))
Tasks:
Calculate the Rankine active earth pressure coefficient \(( K_a \)).
Compute the total lateral pressure \(( P_a \)).
Estimate the overturning moment \(( M_o \)).
If the base width is 3.0 m and thickness is 0.5 m, compute the resisting moment \(( M_r \)).
Determine the factor of safety \(( FS \)).
Reflection Questions#
Why is the pressure diagram triangular in shape, and how does surcharge affect it?
How does increasing heel length improve stability against overturning?
What are the limitations of using only overturning checks in retaining wall design?
How would you modify the design for seismic conditions or water pressure behind the wall?
What practical constraints (e.g., excavation limits, cost, aesthetics) might influence your design choices?
4. Simulation#
🧱 Retaining Wall Parametric Study – Factor of Safety (FS)#
This tool analyzes how changes in heel length or passive soil depth affect the Factor of Safety (FS) against overturning for a retaining wall. It helps engineers evaluate design sensitivity and optimize wall geometry.
🔧 Calculation Steps#
Computes active earth pressure (Pa) using Rankine theory: \( P_a = \frac{1}{2} K_a \gamma H^2 + K_a q H \)
Calculates overturning moment (Mo) from Pa.
Varies either:
Heel Length: affects wall weight and resisting moment
Passive Depth: adds passive resistance and moment
Computes resisting moment (Mr) and FS: \( FS = \frac{M_r + M_{passive}}{M_o} \)
Plots FS vs. selected parameter and compares to required FS.
📊 How to Interpret Inputs#
Input Parameter |
Meaning |
---|---|
|
Height of retained soil |
|
Unit weight and friction angle of backfill soil |
|
Unit weight of wall material |
|
Additional surface load |
|
Wall geometry dimensions |
|
Minimum acceptable factor of safety |
|
Select parameter to vary (Heel Length or Passive Depth) |
📋 How to Interpret Outputs#
Output |
Interpretation |
---|---|
FS Curve |
Shows how FS changes with heel length or passive depth |
Red Line |
Required FS threshold for safe design |
Above Line |
Design is stable; FS meets or exceeds requirement |
Below Line |
Design is unsafe; adjust geometry or soil parameters |
🧠 Conceptual Insight#
This tool supports retaining wall optimization by visualizing how geometric and soil parameters affect stability —
enabling informed decisions for safe and efficient design.
# 📌 Run this cell in a Jupyter Notebook
import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as widgets
from IPython.display import display, clear_output
# 📐 Parametric study function
def parametric_FS(H, gamma_s, phi, gamma_c, q, toe_length, stem_thickness, base_thickness, fs_required, vary_param):
clear_output(wait=True)
Ka = np.tan(np.radians(45 - phi / 2))**2
Kp = np.tan(np.radians(45 + phi / 2))**2
Pa_total = 0.5 * gamma_s * Ka * H**2 + Ka * q * H
Mo = Pa_total * (H / 3)
# Vary heel length or passive depth
if vary_param == 'Heel Length':
x_vals = np.linspace(0.5, 4.0, 50)
fs_vals = []
for heel_length in x_vals:
base_width = toe_length + heel_length
W_concrete = gamma_c * base_width * base_thickness
Mr_weight = W_concrete * (base_width / 2)
FS = Mr_weight / Mo
fs_vals.append(FS)
xlabel = 'Heel Length (m)'
else:
x_vals = np.linspace(0.0, 2.0, 50)
fs_vals = []
base_width = toe_length + 1.5 # fixed heel
W_concrete = gamma_c * base_width * base_thickness
Mr_weight = W_concrete * (base_width / 2)
for h_passive in x_vals:
Pp = 0.5 * gamma_s * Kp * h_passive**2
Mp_passive = Pp * h_passive / 3
FS = (Mr_weight + Mp_passive) / Mo
fs_vals.append(FS)
xlabel = 'Passive Depth (m)'
# Plot
plt.figure(figsize=(8, 5))
plt.plot(x_vals, fs_vals, label='Factor of Safety', color='teal')
plt.axhline(fs_required, color='red', linestyle='--', label=f'Required FS = {fs_required:.2f}')
plt.xlabel(xlabel)
plt.ylabel('Factor of Safety (FS)')
plt.title(f'Parametric Study: FS vs. {xlabel}')
plt.grid(True)
plt.legend()
plt.tight_layout()
plt.show()
# 🎚️ Controls
H_slider = widgets.FloatSlider(value=4.0, min=2.0, max=10.0, step=0.5, description='Wall Height (m)')
gamma_s_slider = widgets.FloatSlider(value=18.0, min=16.0, max=22.0, step=0.5, description='Soil γ (kN/m³)')
phi_slider = widgets.FloatSlider(value=30.0, min=20.0, max=45.0, step=1.0, description='Soil φ (°)')
gamma_c_slider = widgets.FloatSlider(value=24.0, min=22.0, max=26.0, step=0.5, description='Concrete γ (kN/m³)')
q_slider = widgets.FloatSlider(value=10.0, min=0.0, max=30.0, step=1.0, description='Surcharge (kN/m²)')
toe_slider = widgets.FloatSlider(value=1.0, min=0.5, max=3.0, step=0.1, description='Toe Length (m)')
stem_slider = widgets.FloatSlider(value=0.3, min=0.2, max=0.6, step=0.05, description='Stem Thickness (m)')
base_slider = widgets.FloatSlider(value=0.5, min=0.3, max=1.0, step=0.05, description='Base Thickness (m)')
fs_slider = widgets.FloatSlider(value=1.5, min=1.2, max=2.0, step=0.1, description='Required FS')
param_dropdown = widgets.Dropdown(options=['Heel Length', 'Passive Depth'], value='Heel Length', description='Vary')
interactive_study = widgets.interactive(
parametric_FS,
H=H_slider,
gamma_s=gamma_s_slider,
phi=phi_slider,
gamma_c=gamma_c_slider,
q=q_slider,
toe_length=toe_slider,
stem_thickness=stem_slider,
base_thickness=base_slider,
fs_required=fs_slider,
vary_param=param_dropdown
)
display(interactive_study)
5. Self-Assessment#
🧠 Retaining Wall Design & Parametric Study: Quiz & Reflection#
This section helps reinforce key concepts from the retaining wall design tool and parametric analysis. It includes multiple-choice questions, conceptual prompts, and reflective challenges.
✅ Conceptual Questions#
Which parameter most directly increases the resisting moment against overturning?
A. Stem thickness
B. Heel length
C. Surcharge load
D. Toe length
Passive earth pressure is only mobilized when:
A. The wall is fully buried
B. The wall moves toward the soil in front of it
C. The surcharge exceeds the soil weight
D. The stem thickness is reduced
In Rankine theory, the active earth pressure coefficient \(( K_a \)) decreases when:
A. Soil friction angle increases
B. Wall height increases
C. Concrete unit weight increases
D. Passive depth increases
What does the failure envelope represent in the retaining wall visualization?
A. The maximum soil pressure
B. The required resisting moment for safe design
C. The depth of passive soil
D. The location of the water table
📐 Parametric Study Challenge#
You performed a parametric study of FS vs. heel length and found that FS = 1.5 when heel length = 2.2 m.
What happens to FS if heel length is reduced to 1.5 m?
How would increasing passive depth affect FS at fixed heel length?
Why is it useful to plot FS vs. design variables before finalizing geometry?
🔍 Reflection Questions#
How does the balance between overturning and resisting moments guide your design decisions?
What practical constraints (e.g., excavation limits, cost, aesthetics) might limit heel length or passive depth?
If FS is slightly below the required threshold, what are your options as a designer?
How would the presence of water or seismic loads change your approach to stability analysis?
Why is it important to visualize both pressure diagrams and moment comparisons in retaining wall design?
💡 Design Insight#
“Parametric studies reveal the sensitivity of your design to key variables. They help you make informed decisions, avoid overdesign, and ensure safety under varying conditions.”