DarwinDiff — Project Status¶
A snapshot of the current best, not a timeline. Per-config detail lives in the Config / Results Matrix; the chronological record is in CHANGELOG.md and the archive.
What this is¶
DarwinDiff replaces ECCO-Darwin's Green's-functions Carroll-6 calibration with gradient
descent through a differentiable 0-D box model, predicted per grid cell by a small neural
network (DINN). It is framed as a surrogate-to-model identifiability study — which
of the six Carroll-6 parameters are identifiable from real ocean observations, which are
not, and why — not a "6/6 recovery" chase.
The honest target is 4 observable params {alpfe, scav_rat, diatomgraz, R_PICPOC}.
The growth pair {Smallgrow, Biggrow} is unobservable by construction — no real-world
data constrains phytoplankton growth rates — so it is excluded from the target, not counted
as a miss.
Current best¶
Active at 3-AOI joint training (Eq Pacific + N Atlantic Subpolar + Southern Ocean Pacific)
on a single RTX 5090 32 GB, with the NU Explorer H200 cluster for sweeps. All numbers below are
scripts/verify_run.py-gated (exit 0 = re-derived from raw).
- Iron pair (
alpfe,scav_rat) — recovers reproducibly, 38/40 (95 %) at the best 3-AOI config, from real GEOTRACES IDP2025 dissolved iron (~7 min/fit on one GPU). R_PICPOC— recovers against a real calcite anchor (Daniels CP:PP / MODIS PIC), landing at the real ~0.05 — consistent with Carroll within the wide Cal band, not a validation of 0.0425 (Carroll's value is itself under-constrained; see below).- Best operating point
geo1(GEOTRACES_W=1+ Daniels anchor) holds {alpfe,scav_rat,R_PICPOC} jointly in 7/10 seeds — a 3-of-4-observable frontier, statistically tied withbase/dan2at n=10. (A fresh identical-config re-run confirms 7/10; the original hold-together sweep reported 8/10 — they differ by one band-edge seed.) diatomgraz— not recovered in the real-data sweep (best 4/10 = chance). It is an iron-pair tradeoff, recoverable in principle via the dense Darwin POSi (TRAC16) target, which is not yet staged on the cluster (open, not solved; profile-likelihood-confirmed structural non-identifiability in the present data — #152).
→ Every config that produced these, and how each differs, is in the Config / Results Matrix.
Why these are the load-bearing facts¶
R_PICPOCwas never a "6/6 wall." The earlier "needs the differentiable Darwin calcite port + native resolution" conclusion is refuted — both were tested and neither helped. The real gap was the absence of a direct, real calcite observation (now supplied) plus a contaminated Southern-Ocean ratio target (fixed byRATIO_MAX=2). Any ratio anchor recoversR_PICPOC— Darwin's own does too — so the real anchor's value is non-circularity, not recoverability. The recovery lands at the real ~0.05, consistent with Carroll's 0.0425 only within the wide ±40 % Cal band — not a validation of it. The load-bearing spine-D point is that Carroll'sR_PICPOCis itself under-constrained, and a single global constant is mis-specified against a regionally-variable rain ratio (Daniels eqpac ~0.039, ≈1.6× the global mean).docs/archive/findings/2026-06-26_rainratio_real_vs_darwin.md.- The surrogate gap is dimensional — and it is the rigorous foundation of the approach. At
uniform Carroll parameters the 0-D box relaxes to a spatially near-uniform state (tracer
CV ~4e-5 @200 steps → ~1e-15 @6400, vs Darwin's O(1) CV 0.6–2.4). Box-vs-Darwin spatial-pattern
correlations are therefore not fidelity metrics; identifiability comes from real, absolute,
Darwin-independent observations. A direct per-cell-vs-global-scalar ablation confirms the
per-cell DINN is load-bearing on real data: at
geo1, per-cell holds the trio 7/10 vs 0/10 for a single global Carroll-6 vector (scav_rat8/0,R_PICPOC9/0; Fisher p < 0.01). PR #158. - Statistical honesty. In the hold-together sweep only two effects are real at n=10 — the
ratio anchor recovering
R_PICPOC(3/10→10/10, Fisher p=0.003) and high iron weight collapsingscav_rat(8/10→0, p=7e-4); differences among the high cells (7–10/10) are sampling noise. The metric throughout is per-AOI ≥2-AOI co-recovery (avoids a cell-weighted straddle false-positive). FIM/profile diagnostics independently agree.
Architecture (brief)¶
A per-cell network env → 6 Carroll-6 params trained by gradient descent through a differentiable
box model. Full detail in docs/dinn_design.md.
- Networks:
DINN(~454 weights, SST-only, baseline for the structural argument);DINNDeep(~9.4K weights, saturates on biomass tracers — not default);DINNRegional(legacy). - Box model: 5-PFT 2-layer integrator (
src/darwindiff/carroll6_5pft_2layer.py) with carbonate chemistry (carbonate.py, Follows 2006 + Wanninkhof 2014). - Recovery scoring (
diagnostics.band_of): Excellent ≤ 5 % off Carroll; Cal-grade ≤ 40 %; Loose ≤ 80 %. Carroll's published values are bit-identical between v04 (JAMES) and v05 (GBC).
Methodology rules¶
- Compare against Carroll's published Green's-functions optima, not against prior notebooks.
- DINN baseline only by default (v2.2.x onward);
DINNDeepsaturates and recovers fewer Cal-grade params. - Report n=10 minimum and disclose seed variance in any headline claim.
Cluster path¶
Two Northeastern clusters (full table in docs/cluster_setup.md):
- Explorer (H200 144 GB ×32) — active near-term path; the first native-resolution prototype runs here.
- AICR (B200) — future path via a PI proposal; target for the global-native / seasonal sweep.
The cluster path unlocks native LLC270-resolution recovery, time-resolved multi-year fitting,
larger multi-seed ensembles, and Track 2 emulator development. These remain legitimate cluster
goals; they are not gated on R_PICPOC or "6/6", which are resolved/reframed at 1° box scale.
Known limitations¶
- Box model is a 5-tracer proxy of full Darwin 3 (the 5-PFT + 2-layer extensions close part of the gap).
- DINN is per-cell, not spatially coupled — appropriate for parameter recovery, not the Track-2 emulator.
- The surrogate gap is dimensional (see above) — pattern correlations are not fidelity metrics.
- Climatology, not time-resolved — all current fits use 23-year time-mean Darwin output.
- Single-method — no forward-Darwin held-out validation yet (#163).
- Windows
MAX_PATH=260 and laptop sleep can interrupt unattended overnight sweeps (mitigations in the archive /scripts/recover_failed_config_log.py).
Cross-references¶
- Config / Results Matrix — the single source of truth for per-config results
- CHANGELOG.md — chronological record (version-by-version)
- README — project overview · docs/dinn_design.md — architecture
- docs/cluster_setup.md · data/README.md · archive