Skip to content

curvature_dams: which dam parameters the downstream gauge identifies - #54

Merged
taddyb merged 1 commit into
dam-release-v2from
curvature-dams
Oct 1, 2026
Merged

taddyb merged 1 commit into
dam-release-v2from
curvature-dams

Conversation

@taddyb

@taddyb taddyb commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Summary

Applies the loss-landscape learnability instrument to the per-dam reservoir parameters and records the result. Analysis, journal and docs only: no src/ changes.

  • experiments/curvature_dams/: per-gauge training-loss landscapes (curvature at the optimum, 0.02 / 0.005 NSE bands, gradient at the engine init vs halfway, multimodality, train-to-test transfer and split-half stability) at 214 on-reach dam gauges and the 69 on-reach flood-control dams, on the laws_v6 offline harness. Also four fixed-table engine replays at pool sizes 0.05 / 1 / 5 / 20 d (binary ddrs-v6-77aa4a0, zero-step, test years) scored against the fair no-pool twin. report.txt has the full method, tables and caveats; five figures.
  • research/journal/2026-10.md: entry and ledger rows for the four replays (plus one older unlogged ledger row in 2026-09.md).
  • .claude/skills/ddrs-dev/references/research-status.md: what to do with each dam parameter.
Parameter Verdict Do
Pool size z curved at its optimum, flat from the off init (0.05 d) to about 1 d initialise open (5-20 d) or calibrate per gauged dam
Release target kc stiff but multimodal (97 % of dams) calibrate per gauged dam
Capture share phi boundary optimum at 1; fixing it costs 0.0000 fix at 1
Rule-curve amplitude curved, but 19 % of the training gain survives on test years drop or shrink hard
Per-dam T0 flat below 0.5 d; stiff above 2 d, where half start on the shelf learn without per-dam L2 from a 1-2 d init

Engine vs offline, the pool's own test gain over z = 0.05 d: 1 d +0.0042 / +0.0041, 5 d +0.0145 / +0.0142, 20 d +0.0272 / +0.0267 (per-gauge Spearman 0.92-0.98), so the shelf is in the engine's forward model. For the paper this is an offline pilot of E-17's T census axis and evidence for decision D-5; the engine census has no T axis yet.

The replay manifests stamp 3708ce4+dirty: that is the worktree at launch (another branch's uncommitted edits), not the binary that ran. The two .npz slice arrays (9 MB) are gitignored and regenerated by landscapes.py in about a minute.

Stacked on #52 (base dam-release-v2, where experiments/reservoir/ lives); retarget to master once #52 merges.

Test plan

  • engine_summary.txt matches the report; each replay's config.yaml names its z table; all four manifests exist
  • No src/, config or test changes
  • CI

🤖 Generated with Claude Code

https://claude.ai/code/session_015TepsZAS2LkFC5EmvuZrz9

Applies the loss-landscape instrument to the per-dam parameters: per-gauge training-loss landscapes (curvature at
the optimum, NSE bands, gradient at the engine init vs halfway, multimodality, train-to-test transfer) at 214 on-reach
dam gauges and the 69 on-reach flood-control dams, plus engine fixed-table replays at pool sizes 0.05 / 1 / 5 / 20 d.

- Pool size z: curved at its optimum (as routing n) but flat from the off init; the engine reproduces the offline
  shelf (pool gain +0.004 at 1 d, +0.015 at 5 d, +0.027 at 20 d; Spearman 0.92-0.98). Initialise open or calibrate.
- kc: stiff but multimodal; calibrate per gauged dam. phi: boundary optimum at 1; fix it.
- Rule-curve amplitude: identifiable but only 19 % of its training gain survives on test years.
- Per-dam T0: flat below 0.5 d, stiff above 2 d; learn without per-dam L2 from a 1-2 d init.

Report experiments/curvature_dams/report.txt; journal 2026-10 entry and ledger rows; research-status bullet.
The two .npz slice arrays are gitignored and regenerated by landscapes.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015TepsZAS2LkFC5EmvuZrz9
@taddyb
taddyb merged commit f200b3a into dam-release-v2 Oct 1, 2026
2 checks passed
@taddyb
taddyb deleted the curvature-dams branch October 1, 2026 02:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant