Skip to content

11: Wave Generation and Absorption Zones #21

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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