+11
−7
+19
−0
+22
−0
+10
−0
Loading
Tailwater elevation now responds to total outflow (release + spill) via
per-reservoir rating curves, using fixed-point iteration (tol=0.001m,
max_iter=10, damping=0.5). Empty TW tables preserve legacy static behavior.
Rust: interpolate_tailwater() in helpers.rs, iterative solver in
simulate_timestep(), set_tw_outflow/set_tw_elevation on ReservoirData,
tailwater_elevation output in ReservoirResults.
Diagnostics: elevation panel now always shows pool elevation, tailwater,
and head; flows panel shows min/max release constraint band when
cascade_data is provided.
158 tests pass (9 new dynamic TW tests + 1 new diagnostics test).
Co-Authored-By:
Claude Opus 4.6 <noreply@anthropic.com>