-
Notifications
You must be signed in to change notification settings - Fork 0
11: Wave Generation and Absorption Zones #21
Copy link
Copy link
Open
Labels
coreEssential functionalityEssential functionality
Description
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
coreEssential functionalityEssential functionality