Chapter 5 Coastal Engineering: Wave Reflection from coastal structure

Contents

Chapter 5 Coastal Engineering: Wave Reflection from coastal structure#

  1. Introduction: Wave Reflection

  2. Simulation: Wave Reflection Coefficient

  3. Simulation: Miche_SPM Method

  4. Self-Assessment

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:

\[ R = \frac{H_r}{H_i} \]

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#

\[ K_r = \frac{H_r}{H_i} \]

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#

\[ H_b = \gamma \cdot h \quad \text{where } \gamma \approx 0.78 \]

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#

\[ K_r = \left( 0.3 + 0.4 \cdot \text{smoothness} \right) \cdot \left( 1 - \frac{\tan(\beta)}{0.5} \right) \quad \text{(clipped to range 0.3–0.7)} \]

3. Natural Beaches#

Beaches reflect very little wave energy due to their gentle slopes and natural roughness.

🔹 Reflection Coefficient Logic#

\[ K_r = 0.05 + 0.25 \cdot \left( \frac{\text{smoothness} + \tan(\beta)}{2} \right) \quad \text{(range: 0.05–0.3)} \]

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

Wave Height (H)

Incoming wave height (m)

Water Depth (h)

Depth at structure toe (m)

Structure Type

'vertical', 'rubble', or 'beach'

Slope tan(β)

Structure slope (e.g., 0.1 = 1V:10H)

Smoothness

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

Wave Height (H)

Incoming wave height (m)

Water Depth (h)

Depth at structure toe (m)

Wave Period (T)

Wave period (s)

Structure Type

'smooth_concrete', 'grass_clay', 'beach_slope', 'rough_permeable_slope', 'stepped_slope'

Slope tan(β)

Structure slope (e.g., 0.1 = 1V:10H)

Smoothness

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#

  1. 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

  2. Which type of structure typically has the highest reflection coefficient?

    • A. Natural beach

    • B. Rubble mound breakwater

    • C. Vertical seawall ✅

    • D. Submerged reef

  3. 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

  4. 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

  5. How does increasing slope steepness affect reflection coefficient?

    • A. It increases ✅

    • B. It decreases

    • C. No change

    • D. It becomes zero


Calculation Questions#

  1. 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 \)$

  2. 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} \)$

  3. A vertical wall reflects nearly all wave energy. What reflection coefficient is expected?

    • ✅ Answer:
      $\( R \approx 1.0 \)$

  4. 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.

  5. 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#

  1. Reflection coefficient is always constant for a given structure. ❌ False

  2. Standing waves are often formed in front of vertical seawalls. ✅ True

  3. Rubble mound structures generally have higher reflection than natural beaches. ✅ True

  4. Increasing surface roughness on rubble mound structures decreases ( R ). ✅ True

  5. 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?

✅ Show Answer **Answer:** Breaking waves dissipate energy through turbulence and air entrainment, reducing the amount of energy reflected. The Miche-SPM method accounts for this by lowering the wave-related factor \( X_2 \) when the actual wave steepness exceeds the breaking threshold.