vmec-jax v0.0.13
vmec-jax v0.0.13
This release closes the v0.0.13 performance, parity, packaging, and docs lanes.
User-facing changes
- Plain
pip install vmec-jaxnow includes the plotting and Boozer-coordinate dependencies needed by the documented examples. - The public API exports
plot_wout, matching the README and API docs. - Quickstart WOUT plotting examples now point at the tracked pressure fixture.
- GPU high-mode non-LASYM cases keep the precomputed tridiagonal preconditioner policy used by the primal solve through exact accepted-point replay.
Performance and correctness
- Exact accepted-point replay now records and reuses the preconditioner tridiagonal policy, including replay cache-key separation for different tridiagonal paths.
- Added coverage for high-mode non-LASYM precomputed-tridi propagation and equivalence.
- Verified that the experimental
jax.lax.linalg.tridiagonal_solvepath is not ready to promote as a default: it was slower on the QH warm-start GPU test.
Validation
- Local full fast coverage gate:
2196 passed, 20 skipped, 109 deselected, 1 xfailed, coverage95.09%. - Local full docs build passed with warnings as errors.
- Local package build and
twine checkpassed. - Local slow exact replay checks passed:
2 passed. - Local VMEC2000 executable fast validation passed:
5 passed. - Main CI for the release commit passed before tagging.
Known limitations
- Seed-robust QI for NFP=4 remains a research/optimization lane rather than a guaranteed arbitrary-seed workflow.
- Some external VMEC2000 parity rows remain optional, skipped, or xfailed where documented because they require external assets, mgrids, or unresolved near-zero LASYM-channel differences.
- Remaining performance work is concentrated in cold exact tape/forward-force cost, accepted-point tangent construction, scan-trial timing instrumentation, and GPU kernel/launch overhead for preconditioner application.