Skip to content

VMEX 0.6.0

Choose a tag to compare

@rogeriojorge rogeriojorge released this 23 Aug 03:57
· 744 commits to main since this release
274e7ac

Correctness work on the non-stellarator-symmetric lanes, a stricter input gate, and hardened derivative certification.

  • LASYM boundary derivatives are exact where the readin.f theta normalization is the identity. delta = 0 reproduced the value while dropping a rank-one Jacobian term along RBS(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 QS 1.60e-4 where it previously matched the symmetric 2.44e-4; the finite-difference error on that channel falls from 1.6e-1 to 1.6e-7. (#126)
  • presf_ns_scale is 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 VmecInputError naming 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.