tsunami / tests /test_physics.py
Gitdeeper4's picture
رفع جميع ملفات TSU-WAVE مع YAML
12834b7
#!/usr/bin/env python3
"""
TSU-WAVE Physics Calculations Test
"""
import numpy as np
print("=" * 60)
print("📐 TSU-WAVE Physics Test")
print("=" * 60)
# Constants
g = 9.81
rho = 1025 # seawater density (kg/m³)
# Test cases from research paper
test_cases = [
{"name": "Deep Ocean", "H": 6000, "eta": 1.0, "wavelength": 280000},
{"name": "Shelf Edge", "H": 200, "eta": 5.0, "wavelength": 50000},
{"name": "Nearshore", "H": 20, "eta": 10.0, "wavelength": 10000},
]
for case in test_cases:
print(f"\n📊 {case['name']}:")
print(f" Depth: {case['H']} m, Wave: {case['eta']} m")
# Wave speed
c = np.sqrt(g * case['H'])
print(f" Wave speed: {c:.1f} m/s")
# Energy
E_pot = 0.5 * rho * g * case['eta']**2
print(f" Potential energy: {E_pot/1000:.1f} kJ/m²")
# Nonlinear parameter
Ur = (case['H']/case['eta']) * (case['wavelength']/case['H'])**2
print(f" Ursell number: {Ur:.2e}")
if Ur < 0.1:
print(" → Linear regime")
elif Ur < 1:
print(" → Weakly nonlinear")
else:
print(" → Strongly nonlinear")
print("\n" + "=" * 60)