Commit c4276de
ForceFreeStates - BUGFIX! - Default to the DCON fixed-axis initial condition
`fixed_axis` now defaults to `true`: the Euler-Lagrange integration starts from
U1 = 0, U2 = I at psilow (xi^psi = 0 at the magnetic axis), the condition used by
Fortran DCON (dcon/ode.f, ode_axis_init) and Glasser 2016 Sec. VI.
The previous default (`false`) started from the free-axis Frobenius state of
`compute_axis_init`. At practical psilow (1e-2 ... 1e-4) that state has U1 entries
of order 0.1-10 with mixed signs instead of the documented psilow^(|m|/2) limit.
Started from it, the signed critical eigenvalue of W_p^-1 is displaced from the
first stored step onward and never recovers: one eigenvalue of the plasma
response matrix W_p sits ~10x off its DCON value in every equilibrium tested,
and where it crosses zero the free-boundary energy et[1] reports a spurious
-1e2 ... -1e5 "instability". Verified against Fortran DCON on identical
geqdsks (diverted DIII-D-like, n = 1): with the fixed-axis start crit(psi)
agrees to a median relative error of 8e-5, the stiff W_p eigenvalue to ~1e-4,
and et[1] returns to the physical fundamental. The Delta' BVP is unaffected
(<= 1e-4 relative). Integrator (riccati/forward), tolerances, coefficient
matrices and the free-boundary assembly were all exonerated by measurement.
The Frobenius start is retained behind `fixed_axis = false` for comparison; its
docstring now records the measured discrepancy. Two figures documenting the
defect and the fix are added under docs/src/assets/.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>1 parent 987e63f commit c4276de
5 files changed
Lines changed: 26 additions & 11 deletions
File tree
- docs/src/assets
- src/ForceFreeStates
- Riccati
Loading
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| 155 | + | |
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
| |||
220 | 221 | | |
221 | 222 | | |
222 | 223 | | |
223 | | - | |
| 224 | + | |
224 | 225 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
477 | 477 | | |
478 | 478 | | |
479 | 479 | | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
480 | 489 | | |
481 | 490 | | |
482 | 491 | | |
| |||
591 | 600 | | |
592 | 601 | | |
593 | 602 | | |
594 | | - | |
595 | | - | |
596 | | - | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
597 | 608 | | |
598 | 609 | | |
599 | 610 | | |
600 | 611 | | |
601 | | - | |
602 | | - | |
603 | | - | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
604 | 617 | | |
605 | 618 | | |
606 | 619 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
| |||
0 commit comments