Skip to content

VMEX 0.12.0

Choose a tag to compare

@rogeriojorge rogeriojorge released this 22 Oct 02:28
· 58 commits to main since this release
76745a6
  • Faster optimization. Implicit executables are keyed on problem structure
    and share one block factorization: QA stage compile 32-40 s to 24-27 s, a
    second stage of the same shape 24-38 s to 13-15 s, peak memory about 30 %
    lower (#599, #618). Adjoint tolerances are traced, so changing one no longer
    recompiles (#623). Rejected trials stop early (#608), the Jacobian reuses the
    refinement's block bands (#622), and multi-stage examples share one problem
    (#621). Geometry synthesis is separable, 10-15 % faster warm solves (#597).
  • Ballooning stability is resolved along the field line (Richardson step,
    fourth-order radial reads) and matches COBRAVMEC within 1.7 %; the hard
    maximum is the default and the Jacobian is 6x cheaper (#589).
  • Free boundary: opt-in Newton anchoring (solve_free_boundary_newton, #575),
    opt-in position control (LPOSITION_CONTROL, #570), a DEL-BSQ gate and a
    coil-gradient test for single-stage runs (#614).
  • Opt-in radial preconditioner for the m = 0 lambda force,
    lambda_m0_floor=1e-3 (#598). 3-D force polishing with prescribed current (#558).
  • boozer_spectrum_state(..., geometry=True) returns the Boozer R, Z, nu and
    Jacobian spectra (#610). Tracing takes explicit energy, mass and charge (#540).
  • JAX 0.12 support: the on-axis coil field stays differentiable (#620).
  • Every example finishes in under five minutes on a laptop and prints
    progress (#562). README and docs restructured, with ballooning, polishing
    and MRX sections and a CLI reference (#605, #617, #540).
  • CI runs all seven VMEC2000 golden-digest cases on every PR (#616); a
    packaging-triggered and weekly install check covers Linux, macOS and Windows
    (#588). neo-jax>=1.0.6 (#588). About 880 fewer source lines (#601, #602).