Skip to content

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 studywhich of the six Carroll-6 parameters are identifiable from real ocean observations, which are not, and whynot 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 with base/dan2 at 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_PICPOC was 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 by RATIO_MAX=2). Any ratio anchor recovers R_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's R_PICPOC is 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_rat 8/0, R_PICPOC 9/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 collapsing scav_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); DINNDeep saturates 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