Chapter 5 Coastal Engineering: Wave Reflection from coastal structure#
1. Introduction#
Wave Reflection from Coastal Structures#
Wave reflection occurs when incident waves encounter a boundary and part of the energy is redirected back toward the sea. The reflection coefficient ( R ) represents the ratio of reflected wave height to incident wave height:
Where:
\(( H_r \)): Reflected wave height
\(( H_i \)): Incident wave height
Reflection characteristics depend heavily on the geometry and material of the structure.
1. Natural Beach (Gentle Slope)#
Slope Range: 1:20 to 1:10
Material: Sand or sediment
Behavior:
Waves tend to break and dissipate energy before reaching the shore
Most energy is absorbed or converted to turbulence
Reflection coefficient:
$\( R \approx 0.1 - 0.3 \)$Minimal standing wave patterns
2. Truly Vertical Wall (e.g., Concrete Seawall)#
Slope: Infinite (vertical)
Material: Rigid, impermeable concrete or steel
Behavior:
Reflects nearly all wave energy
Creates strong standing wave fields and potential for scour at base
Reflection coefficient:
$\( R \approx 0.9 - 1.0 \)$Can amplify wave forces and cause overtopping
3. Rubble Mound Structure (e.g., Breakwater or Revetment)#
Slope: Typically 1:1.5 to 1:2
Material: Permeable rocks or armor units
Behavior:
Significant wave energy dissipation through infiltration and friction
Reflection depends on permeability and roughness
Reflection coefficient:
$\( R \approx 0.3 - 0.6 \)$Lower wave forces and reduced scour risk
Additional Factors Affecting Reflection#
Wave Type: Reflection is higher for regular waves than for irregular, breaking waves
Wave Angle: Oblique incidence reduces reflection magnitude
Submerged Geometry: Partially submerged structures may exhibit complex reflection and diffraction patterns
Engineering Relevance#
Understanding reflection helps:
Design stable coastal defenses
Prevent scour and erosion
Minimize harbor agitation
Improve wave run-up prediction
Wave Reflection Coefficient Estimation Based on SPM#
Overview#
The wave reflection coefficient ( K_r ) quantifies the fraction of incident wave energy reflected by a coastal structure. According to the Shore Protection Manual (SPM), ( K_r ) depends on:
Structure type (vertical wall, rubble mound, natural beach)
Wave breaking condition
Slope of the structure or beach
Surface roughness or smoothness
General Definition#
Where:
\(( H_r \)) = reflected wave height
\(( H_i \)) = incident wave height
1. Vertical Wall Structures#
Vertical walls reflect most of the incident energy, especially under non-breaking wave conditions.
Breaking Criterion#
If \(( H \geq H_b \)), the wave is considered breaking.
Reflection Coefficient Logic#
Breaking waves: $\( K_r = 0.5 + 0.3 \cdot \left( \frac{H_b}{H} \right) \quad \text{(capped at 0.8)} \)$
Non-breaking waves: $\( K_r = 0.9 + 0.1 \cdot \left( 1 - \frac{H}{H_b} \right) \quad \text{(minimum 0.9)} \)$
2. Rubble Mound Structures#
Rubble mound structures reflect less energy due to their porous and rough surfaces.
Influencing Factors#
Smoothness: 0 (very rough) to 1 (very smooth)
Slope: ( \tan(\beta) ), e.g., 0.1 for 1:10
Reflection Coefficient Logic#
3. Natural Beaches#
Beaches reflect very little wave energy due to their gentle slopes and natural roughness.
🔹 Reflection Coefficient Logic#
Summary of Typical \(( K_r \)) Ranges#
Structure Type |
Typical ( K_r ) Range |
---|---|
Vertical wall |
0.5 – 1.0 |
Rubble mound |
0.3 – 0.7 |
Sand beach |
0.05 – 0.3 |
References#
[of Engineers, 1984] discusses wave reflection primarily through empirical coefficients and design charts, focusing on vertical walls and rubble-mound structures. It emphasizes how slope, roughness, and wave steepness affect reflection, but uses simplified linear theory and limited irregular wave treatment. [] expands the treatment with more rigorous methods, including reflection coefficients for monochromatic and irregular waves, and accounts for structure geometry, permeability, and wave breaking. It integrates laboratory data and numerical modeling for design applications.
2. Simulation#
🌊 Interactive Wave Reflection Estimator#
This Jupyter Notebook tool calculates the wave reflection coefficient (Kr) for different coastal structures using empirical formulas based on wave height, water depth, structure type, slope, and surface smoothness.
🧠 What It Does#
Estimates whether a wave is breaking based on depth-to-height ratio
Determines the reflection coefficient (Kr) for:
Vertical structures (e.g., seawalls)
Rubble mound breakwaters
Natural beaches
Considers how slope steepness and surface roughness affect wave reflection
Visualizes output interactively using sliders and dropdowns
🎛️ User Inputs#
Parameter |
Description |
---|---|
|
Incoming wave height (m) |
|
Depth at structure toe (m) |
|
|
|
Structure slope (e.g., 0.1 = 1V:10H) |
|
Surface smoothness (0 = rough, 1 = smooth) |
📊 Outputs#
Wave condition: Breaking or Non-breaking
Reflection coefficient Kr:
Kr ≈ 0.9–1.0 → nearly full reflection (smooth vertical wall, non-breaking)
Kr ≈ 0.3–0.7 → partial reflection (rubble mound)
Kr ≈ 0.05–0.3 → minimal reflection (natural beach)
🧭 How to Interpret Results#
Higher Kr indicates more wave energy reflected back offshore
Lower Kr implies more energy dissipated or transmitted
Useful for evaluating:
Harbor tranquility
Sediment transport potential
Coastal structure design efficiency
This tool helps coastal engineers assess how wave-structure interactions vary across different conditions and geometries.
# 📌 Run this cell in a Jupyter Notebook
import numpy as np
import ipywidgets as widgets
from IPython.display import display, clear_output
# 📐 Reflection coefficient function
def reflection_coefficient(H, h, structure_type, slope=0.0, smoothness=1.0):
"""
Estimate wave reflection coefficient based on structure type, slope, smoothness, and wave breaking.
Parameters:
- H: wave height (m)
- h: water depth at structure toe (m)
- structure_type: 'vertical', 'rubble', 'beach'
- slope: tan(beta), e.g., 0.1 for 1:10
- smoothness: 0 (very rough) to 1 (very smooth)
Returns:
- Kr: estimated reflection coefficient
- breaking: True if wave is breaking
"""
gamma = 0.78 # breaking index
Hb = gamma * h
breaking = H >= Hb
smoothness = np.clip(smoothness, 0, 1)
if structure_type == 'vertical':
if breaking:
Kr = 0.5 + 0.3 * (Hb / H) # 0.5–0.8
Kr = min(Kr, 0.8)
else:
Kr = 0.9 + 0.1 * (1 - H / Hb) # 0.9–1.0
Kr = max(Kr, 0.9)
elif structure_type == 'rubble':
base_Kr = 0.3 + 0.4 * smoothness # 0.3–0.7
slope_factor = np.clip(1 - slope / 0.5, 0.5, 1.0)
Kr = base_Kr * slope_factor
elif structure_type == 'beach':
Kr = 0.05 + 0.25 * (smoothness + slope) / 2 # 0.05–0.3
else:
raise ValueError("Structure type must be 'vertical', 'rubble', or 'beach'.")
return round(Kr, 3), breaking
# 🎛️ Interactive function
def update_reflection(H, h, structure_type, slope, smoothness):
clear_output(wait=True)
Kr, breaking = reflection_coefficient(H, h, structure_type, slope, smoothness)
status = "🌊 Breaking" if breaking else "🌊 Non-breaking"
print(f"Structure Type: {structure_type.capitalize()}")
print(f"Wave Height H = {H:.2f} m")
print(f"Water Depth h = {h:.2f} m")
print(f"Slope tan(β) = {slope:.3f}")
print(f"Smoothness = {smoothness:.2f}")
print(f"Wave Condition: {status}")
print(f"Estimated Reflection Coefficient K_r = {Kr}")
# 🎚️ Widgets
H_slider = widgets.FloatSlider(value=2.0, min=0.5, max=5.0, step=0.1, description='Wave Height (m)')
h_slider = widgets.FloatSlider(value=2.5, min=0.5, max=5.0, step=0.1, description='Water Depth (m)')
structure_dropdown = widgets.Dropdown(options=['vertical', 'rubble', 'beach'], value='vertical', description='Structure')
slope_slider = widgets.FloatSlider(value=0.05, min=0.001, max=0.5, step=0.01, description='Slope tan(β)')
smoothness_slider = widgets.FloatSlider(value=1.0, min=0.0, max=1.0, step=0.05, description='Smoothness')
# 🔄 Display interactive controls
interactive_plot = widgets.interactive(
update_reflection,
H=H_slider,
h=h_slider,
structure_type=structure_dropdown,
slope=slope_slider,
smoothness=smoothness_slider
)
display(interactive_plot)
3. Simulation#
🌊 Miche-SPM Wave Reflection Estimator — Interactive Tool#
This Jupyter Notebook widget estimates the wave reflection coefficient (\(K_r\)) using the Miche-SPM method, accounting for structure type, wave conditions, slope, and surface roughness.
🧠 What It Does#
Checks if waves are breaking near the structure based on depth and wave height
Calculates deepwater wave steepness
Computes \(K_r = X_1 \cdot X_2\), where:
\(X_1\): surface feature factor (based on structure type and smoothness)
\(X_2\): steepness adjustment (based on breaking condition)
🎛️ Inputs (via Sliders & Dropdown)#
Input |
Description |
---|---|
|
Incoming wave height (m) |
|
Depth at structure toe (m) |
|
Wave period (s) |
|
|
|
Structure slope (e.g., 0.1 = 1V:10H) |
|
From 0 (rough) to 1 (smooth) |
📊 Output#
Wave breaking status (🌊 Breaking / Non-breaking)
Estimated reflection coefficient (\(K_r\)):
Ranges from 0 (no reflection) to ~1.0 (full reflection)
Lower for rough and permeable slopes
Higher for smooth vertical structures
Printed summary includes all input values and results
🧭 How to Interpret#
Use low \(K_r\) (< 0.3) for natural beaches or rubble slopes to indicate dissipated wave energy
Use high \(K_r\) (~0.9–1.0) for smooth walls to represent strong wave reflection
Identifying breaking waves helps adjust reflection expectations and informs safety and design
This tool aids in rapid classification of wave-structure interaction for coastal planning and harbor tranquility assessments.
# 📌 Run this cell in a Jupyter Notebook
import numpy as np
import ipywidgets as widgets
from IPython.display import display, clear_output
# 📐 Miche-SPM Reflection Coefficient Estimator
def reflection_coefficient_miche(H, h, T, structure_type, slope=0.0, smoothness=1.0):
"""
Estimate wave reflection coefficient using Miche-SPM method.
Parameters:
- H: wave height (m)
- h: water depth at structure toe (m)
- T: wave period (s)
- structure_type: one of:
'smooth_concrete', 'grass_clay', 'beach_slope',
'rough_permeable_slope', 'stepped_slope'
- slope: tan(beta), e.g., 0.1 for 1:10
- smoothness: 0 (very rough) to 1 (very smooth)
Returns:
- Kr: estimated reflection coefficient
- breaking: True if wave is breaking
"""
# --- Surface Feature Factor X1 ---
if structure_type == 'smooth_concrete':
X1 = 0.95 + 0.05 * smoothness # 0.9–1.0
elif structure_type == 'grass_clay':
X1 = 0.9
elif structure_type == 'beach_slope':
X1 = 0.8 + 0.1 * smoothness # 0.8–0.9
elif structure_type == 'rough_permeable_slope':
X1 = 0.3 # very rough, porous armor
elif structure_type == 'stepped_slope':
X1 = 0.0 + 0.8 * (1 - smoothness) # 0–0.8 depending on step roughness
else:
raise ValueError("Invalid structure type.")
# --- Wave Breaking Check ---
gamma = 0.78 # breaking index
Hb = gamma * h
breaking = H >= Hb
# --- Wave Steepness Factor X2 ---
g = 9.81
L0 = g * T**2 / (2 * np.pi) # deepwater wavelength
S_actual = H / L0
S_max = 0.055 # typical max steepness for deepwater waves
if breaking:
X2 = max(0.1, S_actual / S_max)
X2 = min(X2, 1.0)
else:
X2 = 1.0
# --- Final Reflection Coefficient ---
Kr = round(X1 * X2, 3)
return Kr, breaking
# 🎛️ Interactive function
def update_reflection(H, h, T, structure_type, slope, smoothness):
clear_output(wait=True)
Kr, breaking = reflection_coefficient_miche(H, h, T, structure_type, slope, smoothness)
status = "🌊 Breaking" if breaking else "🌊 Non-breaking"
print(f"Structure Type: {structure_type.replace('_', ' ').title()}")
print(f"Wave Height H = {H:.2f} m")
print(f"Water Depth h = {h:.2f} m")
print(f"Wave Period T = {T:.2f} s")
print(f"Slope tan(β) = {slope:.3f}")
print(f"Smoothness = {smoothness:.2f}")
print(f"Wave Condition: {status}")
print(f"Estimated Reflection Coefficient K_r = {Kr}")
# 🎚️ Widgets
H_slider = widgets.FloatSlider(value=2.0, min=0.5, max=5.0, step=0.1, description='Wave Height (m)')
h_slider = widgets.FloatSlider(value=2.5, min=0.5, max=5.0, step=0.1, description='Water Depth (m)')
T_slider = widgets.FloatSlider(value=8.0, min=4.0, max=12.0, step=0.5, description='Wave Period (s)')
structure_dropdown = widgets.Dropdown(
options=[
'smooth_concrete',
'grass_clay',
'beach_slope',
'rough_permeable_slope',
'stepped_slope'
],
value='smooth_concrete',
description='Structure Type'
)
slope_slider = widgets.FloatSlider(value=0.05, min=0.001, max=0.5, step=0.01, description='Slope tan(β)')
smoothness_slider = widgets.FloatSlider(value=1.0, min=0.0, max=1.0, step=0.05, description='Smoothness')
# 🔄 Display interactive controls
interactive_plot = widgets.interactive(
update_reflection,
H=H_slider,
h=h_slider,
T=T_slider,
structure_type=structure_dropdown,
slope=slope_slider,
smoothness=smoothness_slider
)
display(interactive_plot)
4. Self-Assessment#
📘 Conceptual Questions#
What does the reflection coefficient ( R ) represent in wave mechanics?
A. Ratio of incident wave height to reflected wave height
B. Ratio of reflected wave height to incident wave height ✅
C. Ratio of transmitted wave height to incident wave height
D. Ratio of wave energy to wave speed
Which type of structure typically has the highest reflection coefficient?
A. Natural beach
B. Rubble mound breakwater
C. Vertical seawall ✅
D. Submerged reef
Why do natural beaches have lower reflection coefficients than vertical walls?
A. They are impermeable
B. They dissipate wave energy through breaking and turbulence ✅
C. They amplify wave energy
D. They reflect all wave energy
What is the primary mechanism that reduces reflection on a rubble mound structure?
A. Wave breaking
B. Energy dissipation through infiltration and friction ✅
C. Wave diffraction
D. Wave amplification
How does increasing slope steepness affect reflection coefficient?
A. It increases ✅
B. It decreases
C. No change
D. It becomes zero
Calculation Questions#
If the incident wave height is 2 meters and the reflected wave height is 1 meter, what is the reflection coefficient?
✅ Answer:
$\( R = \frac{H_r}{H_i} = \frac{1}{2} = 0.5 \)$
If the reflection coefficient is 0.6 and incident wave height is 3 meters, what is the reflected wave height?
✅ Answer:
$\( H_r = R \times H_i = 0.6 \times 3 = 1.8 \text{ meters} \)$
A vertical wall reflects nearly all wave energy. What reflection coefficient is expected?
✅ Answer:
$\( R \approx 1.0 \)$
A rubble mound with slope 1:2 has ( R = 0.4 ). What happens if slope steepens to 1:1.5?
✅ Answer:
Reflection increases — steeper slopes reflect more energy.
What percentage of wave energy is reflected if ( R = 0.8 )?
✅ Answer:
80% wave height reflected. Energy scales with square of amplitude, but height ratio is 0.8.
Bonus True/False#
Reflection coefficient is always constant for a given structure. ❌ False
Standing waves are often formed in front of vertical seawalls. ✅ True
Rubble mound structures generally have higher reflection than natural beaches. ✅ True
Increasing surface roughness on rubble mound structures decreases ( R ). ✅ True
Submerged reefs tend to amplify wave reflection. ❌ False
Quiz: Wave Reflection Coefficient Estimation (Miche-SPM Method)#
Test your understanding of how surface features, wave conditions, and geometry affect wave reflection using the Miche-SPM method.
1. Which structure type typically has the highest reflection coefficient under non-breaking wave conditions?#
A) Rough permeable slope
B) Stepped slope
C) Smooth concrete
D) Beach slope
✅ Show Answer
**Answer: C — Smooth concrete** Smooth concrete surfaces have high X₁ values (0.95–1.0), leading to high reflection under non-breaking conditions.2. What is the breaking wave height ( H_b ) estimated as in this model?#
A) ( H_b = 0.55 \cdot h )
B) ( H_b = 0.78 \cdot h )
C) ( H_b = h )
D) ( H_b = 1.2 \cdot h )
✅ Show Answer
**Answer: B — \( H_b = 0.78 \cdot h \)** This is based on the breaking index \( \gamma = 0.78 \), a standard value from coastal engineering literature.3. Which factor reduces the reflection coefficient when waves are breaking?#
A) Increase in slope
B) Increase in smoothness
C) Ratio of actual to maximum wave steepness
D) Surface roughness only
✅ Show Answer
**Answer: C — Ratio of actual to maximum wave steepness** The wave-related factor \( X_2 \) is reduced when waves are breaking, based on this steepness ratio.4. What is the typical range of the surface feature factor ( X_1 ) for a stepped slope?#
A) 0.9–1.0
B) 0.8–0.9
C) 0.0–0.8
D) 0.3–0.5
✅ Show Answer
**Answer: C — 0.0–0.8** Stepped slopes vary widely depending on geometry and roughness, modeled as \( X_1 = 0.8 \cdot (1 - \text{smoothness}) \).5. Which combination is most likely to produce a low reflection coefficient?#
A) Smooth concrete + non-breaking wave
B) Rough permeable slope + breaking wave
C) Grass on clay + non-breaking wave
D) Beach slope + smooth surface
✅ Show Answer
**Answer: B — Rough permeable slope + breaking wave** This combination minimizes both \( X_1 \) and \( X_2 \), resulting in low reflection.Bonus Conceptual Question#
Why does wave breaking reduce the reflection coefficient in the Miche-SPM method?