# 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 `vmap` structure - low-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?)