Roadmap and extension ideas¶
This project intentionally starts from a “minimal torus” so that validation and differentiation are easy, but it is meant to grow into a research platform for coil/current optimization.
Near-term goals (high leverage)¶
Convergence studies: add scripts that sweep \((N_\theta,N_\phi)\) and Fourier mode cutoffs, demonstrating convergence of \(B_n/|B|\) and field-line diagnostics.
Stronger regression testing: store small reference metrics for key examples (e.g. final
max|Bn/B|) and fail CI if they drift unexpectedly.Better diagnostics:
Poincaré sections
rotational transform estimates
field-line divergence metrics (surface distance over time)
Geometry generalization¶
Today, the winding surface is a circular torus with spectral derivatives. A natural next step is to support more general surfaces:
“deformed tori” (Fourier surfaces) with accurate metric tensors and surface operators
triangulated surfaces with discrete exterior calculus (DEC) operators
The key design constraint is to keep everything:
differentiable (or differentiable “enough” for optimization)
fast under
jax.jit
Faster Biot–Savart backends¶
Biot–Savart evaluation is the dominant cost at high resolution. Potential directions:
better batching and
vmapstructurelow-rank / FFT-based accelerations for special geometries
fast multipole methods (FMM) or hierarchical treecodes
GPU-friendly kernels
Physics extensions¶
Finite thickness / resistive wall models (time-dependent diffusion of currents)
External background fields beyond idealized \(1/R\) models
Plasma response / equilibrium coupling (outside the scope of this repo today, but a key research direction)
Optimization and constraints¶
Beyond minimizing \(B_n/|B|\), practical coil design often needs constraints:
smoothness / curvature penalties on \(\Phi\) or \(\mathbf K\)
symmetry constraints
bounds on electrode strengths or actuator sparsity
manufacturability proxies
Because the code is JAX-first, many of these can be added as differentiable penalties or constraints.
Interop with existing tools¶
REGCOIL comparison: establish a “same surface, same target, same regularization” benchmark to cross-check against
regcoil-master/.VMEC I/O: expand parsing/writing of VMEC-like surfaces and add utilities for field-period handling.
Near-axis / pyQSC: add a helper that converts near-axis surfaces into VMEC Fourier coefficients for direct targeting.
If you are extending the codebase for research, consider opening an issue/PR with:
the proposed math/model
a minimal reproducible example
a validation plan (what analytic scaling, invariants, or external code will you compare against?)