Skip to content

Commit 99bc2cd

Browse files
logan-ncclaude
andcommitted
EXP - DOC - s29: axis-validity suppression verified on DIII-D; certified-grid failure relocated to mid-radius
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzbLFQKyuRE5DYZmLokKmk
1 parent ea14860 commit 99bc2cd

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

handoff/issue376/RESULTS.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,6 +1273,39 @@ validity: a local (per-region or solution-amplitude-weighted) certificate scale,
12731273
post-Schur f0/K/G the ODE consumes, and dropping the ideal-derived Frobenius core floor for
12741274
kinetic increments.
12751275

1276+
## 29. The physics ruling implemented: axis-validity suppression fixes the pathology; the certified grid's failure was never the axis
1277+
1278+
User's ruling (2026-08-20): do not chase kinetic physics noise near the axis — the model loses
1279+
validity (Fortran precedent: `ktanh_flag`, dcon/fourfit.F:1117-1122, four hand-tuned knobs
1280+
ktc/ktw/kinfac1/kinfac2 — adopted as supporting evidence, rejected as design). Chosen design:
1281+
ψ_c = outermost ψ where max(potato width (q²ρ²R₀)^(1/3), banana width qρ/√ε, poloidal gyroradius
1282+
qρ/ε) ≥ ⟨r⟩, all coefficient 1, computed from profiles at runtime (no user knobs; one Bool
1283+
`axis_validity_suppression`, default true); C² quintic envelope, zero below ψ_c (kernel skipped),
1284+
1 at 2ψ_c; same boundary/envelope applied to the NTV ψ quadrature. Also added
1285+
`KineticForces/Validity/` output (ρ_i, ρ_banana, ρ_θ, w_potato, ⟨r⟩, L_p, L_q, d_separatrix,
1286+
psi_c, envelope, is_valid) written whenever kinetic profiles are used; far edge and
1287+
gradient-length violations are FLAGGED, never suppressed (edge can dominate physical NTV).
1288+
Commits e1dc05e2b, 18f4507cc on performance/certified-kinetic-grid.
1289+
1290+
**DIII-D verification (sup_off/sup_on, pre-registered in run_suppressed.sh):**
1291+
1292+
| run | et[1] | nstep_total | wall |
1293+
|---|---|---|---|
1294+
| full grid, suppressed (ψ_c=0.04) | 1.005298 − 0.259472i | **3,590** | 397 s |
1295+
| full grid, unsuppressed (§28) | 1.005545 − 0.259371i | 223,271 | 905 s |
1296+
| certified 1e-3, suppressed | 0.840086 − 0.280205i | 8,275 | 382 s |
1297+
1298+
- Prediction (a) CONFIRMED spectacularly: steps collapse 62× and et[1] is preserved to **2.5e-4**
1299+
— the invalid near-axis structure cost 98% of the ODE work while contributing ~nothing physical.
1300+
The DIII-D calculated-kinetic workflow is now practical (no more 17 GB dumps either).
1301+
- Prediction (b) REFUTED: the certified grid still lands on ~the same wrong value (0.8401 vs
1302+
0.8391 unsuppressed) — its 16% error never came from the axis. With the core zeroed in both
1303+
runs, the discrepancy must live in the mid-radius rational-free span [0.08, 0.52] (4 seed
1304+
points; the global-scale certificate blind there too; the f0 ~2% deviation at ψ≈0.40 from §28's
1305+
localization was the live signal — the core deviations were a red herring at the eigenvalue
1306+
level). #410's certificate redesign (local scale, certify post-Schur f0/K/G) remains necessary
1307+
and is now cleanly separated from the physics fix.
1308+
12761309
## Implications / ranked follow-ups
12771310

12781311
1. **Use the two-pass auto grid** (`mpsi=0`, `psi_accuracy`) — already the example default; it

0 commit comments

Comments
 (0)