Skip to content

Keep Boozer splines continuous and avoid duplicate m=0 storage - #168

Open
rogeriojorge wants to merge 5 commits into
mainfrom
fix/boozer-table-precision
Open

rogeriojorge wants to merge 5 commits into
mainfrom
fix/boozer-table-precision

Conversation

@rogeriojorge

@rogeriojorge rogeriojorge commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Keep radial splines continuous in float64, and store the theta-independent m=0 channel once. The cubic and independent orbit-energy regressions pass. Python 3.11/3.12 CI and coverage are green. Two existing files change; no new files.

ARIES CPU timings with JAX 0.12.0.1, versus the original float32 code:

  • 32 particles, 1 ms: 11.4% lower total API time (five warm pairs).
  • 500 particles, 10 ms: 22.1% lower total API time (one warm pair).
  • Default VMEX --trace checks: 13.2% and 21.0% lower whole-process time (two cold pairs).

Resident table storage rises 1.4% in this case, rather than doubling. Direct Fourier execution is unchanged. These measurements do not guarantee performance on every workload or device.

With identical births, the 500-particle loss count changes from 75 to 63; tightening the new tracer tolerance from 3e-7 to 3e-8 gives 60. These are numerical sensitivity checks, not a confinement improvement or a converged loss estimate. Keep unmerged for review.

@rogeriojorge
rogeriojorge marked this pull request as ready for review October 20, 2026 14:03
@rogeriojorge rogeriojorge changed the title Preserve radial continuity in Boozer field tables Keep Boozer splines continuous and avoid duplicate m=0 storage Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant