Repository navigation
VMEX 0.6.0
Correctness work on the non-stellarator-symmetric lanes, a stricter input gate, and hardened derivative certification.
- LASYM boundary derivatives are exact where the
readin.ftheta normalization is the identity.delta = 0reproduced the value while dropping a rank-one Jacobian term alongRBS(0,1) - ZBC(0,1), so the asymmetric m=1 freedom never reached the optimizer. On an identical seed a LASYM quasi-axisymmetric stage now reaches QS1.60e-4where it previously matched the symmetric2.44e-4; the finite-difference error on that channel falls from1.6e-1to1.6e-7. (#126) presf_ns_scaleis differentiated in both free-boundary adjoint lanes; the solved objective gradient now matches independent cold re-solves to 4.2%, where the frozen normalization sat a factor 4,000 off. (#128, certified end to end in #133)- Boozer input tables project onto the whole grid Nyquist band; agreement with the wout Nyquist tables is ~1e-16 across symmetric and LASYM decks at both grid parities. LASYM Boozer spectra shift by a few percent on coarse grids as a result. (#127)
- Mercier and Glasser stability run for LASYM equilibria, validated against VMEC2000 v6.5.0-42-g9177f58: DMerc to 6.3e-4 per element, with the Dshear/Dcurr/Dwell/Dgeod decomposition pinned term by term. (#118)
- A non-monotonic APHI flux map is rejected at setup with a typed
VmecInputErrornaming the offending interval; VMEC2000 accepts such decks and marches to an unusable WOUT with no diagnosis. (#117) - Implicit-Jacobian certification and release gates hardened; certifier settings are surfaced and the uncertified-column budget is bounded. (#131)
- VMEX runs against released ESSOS; the examples and nightly lanes no longer assume unreleased ESSOS API. (#132)
- Weekly physics campaigns are bounded to one hour per lane on a cold runner, with the 238-mode ladder split so each campaign keeps its converged contract. (#135)
Upgrade notes:
- Decks whose APHI derivative reverses sign inside the plasma now fail at setup. Tangential zeros and zeros at the axis or edge remain valid.
- Gradients with respect to asymmetric m=1 boundary coefficients and free-boundary pressure-profile coefficients change; they were wrong before.
- LASYM Boozer spectra and quantities derived from them shift by a few percent on coarse grids, where the Nyquist band was previously dropped.
Verification: GitHub-hosted CI was unavailable for the final assembly; the released tree passed the full 16-job CI matrix locally (quality, docs, packaging, fast API, nine physics selectors, two-device placement, mirror coverage floor), run twice on content-identical trees. Note: the PyPI publish workflow will not run until Actions minutes are restored; publish manually with python -m build && twine upload if needed sooner.