Skip to content

11: Wave Generation and Absorption Zones #21

@philipnickel

Description

@philipnickel

Description

Implement relaxation zones for generating waves at the inlet and absorbing waves at the outlet. This prevents reflections and allows simulation of propagating waves.

Background

The relaxation method adds a forcing term to the evolution equations:

∂q/∂t = N(q) + (1 - γ(x)) · τ⁻¹ · (q_a - q)

where:

  • q is η or φ̃
  • γ(x) = 0 in relaxation zone, 1 in physical domain
  • q_a is target solution (input wave for generation, zero for absorption)
  • τ = Δt (relaxation time scale)

Tasks

  • Implement blending function γ(x)
    • Smooth transition (cosine or polynomial ramp)
    • Configurable zone lengths
  • Implement wave generation zone
    • q_a from stream function wave solution
    • Phase-matched traveling wave
  • Implement absorption zone
    • q_a = 0 (still water target)
  • Modify RHS to include relaxation terms
  • Test wave generation (clean input wave)
  • Test absorption (minimal reflection)

Acceptance Criteria

  • Generated wave matches target amplitude within 5%
  • Generated wave matches target phase speed within 2%
  • Reflection coefficient < 5% at absorption zone
  • No spurious disturbances from zone boundaries

Configuration Parameters

Generation zone: x ∈ [0, L_gen], typically 1-2 wavelengths
Absorption zone: x ∈ [L - L_abs, L], typically 1-2 wavelengths
Blending: γ(x) = 0.5·(1 - cos(π·x/L_zone)) or similar

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreEssential functionality

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions