Skip to content

Frequently Asked Questions

General

Q: Does Helicon include a PIC solver?

No. Helicon wraps WarpX — the DOE Exascale Computing Project's particle-in-cell code. You must install WarpX separately. Helicon handles configuration, field pre-computation, parameter scanning, optimization, and post-processing.

Q: Can I use Helicon without WarpX?

Yes — for everything except running PIC simulations: - Biot-Savart field computation works standalone - Analytical pre-screening (helicon.optimize.analytical) requires no WarpX - Post-processing can re-analyze existing WarpX output - Use dry_run=True to generate input files without launching WarpX

Q: Why does the default configuration use full physical mass ratio?

Reduced mass ratio (mass_ratio=100 instead of 3672 for deuterium) runs ~6x faster but gives qualitatively wrong electron dynamics. All preset validation cases use the physical ratio. Reduced ratio is only for qualitative parameter scans — always flagged in output metadata as mass_ratio_reduced=true.

Apple Silicon / MLX

Q: Does WarpX run on the Apple Silicon GPU?

No — WarpX uses CPU/OpenMP on macOS (no Metal backend). The Apple Silicon GPU is used by Helicon's Python layer: Biot-Savart computation, optimization, and post-processing via MLX.

Q: How fast is Helicon on Apple Silicon vs NVIDIA?

WarpX itself runs ~2-4x slower on Apple Silicon CPU vs an NVIDIA A100. For production parameter scans (100+ runs), use a Linux/NVIDIA cluster. Apple Silicon is excellent for development, quick validation, and optimization (which uses MLX GPU).

Physics

Q: Which detachment efficiency definition should I use?

Report all three (momentum, particle, energy) when comparing with literature. Specify which one you're comparing — different papers use different definitions and they can differ by 10-20% for the same simulation.

Q: What does the Hall parameter Ω_e τ_e = 1 threshold mean physically?

When Ω_e τ_e ~ 1, electrons complete approximately one gyration per collision. Below this (Ω_e τ_e < 1), electrons are effectively demagnetized — resistive detachment can occur. The standard simulation target is Ω_e τ_e >> 1 for magnetized plasma.

Q: What grid resolution do I need?

  • Quick tests: 128×64 (minutes on CPU)
  • Standard runs: 512×256 (hours on CPU, ~1h on A100)
  • Production: 1024×512 (10+ hours on A100)

Use run_convergence_study() to verify your results are grid-converged before publishing.

Troubleshooting

Q: ImportError: No module named 'mlx'

Install MLX: pip install mlx (macOS with Apple Silicon only). On other platforms, Helicon automatically falls back to NumPy.

Q: WarpX input is generated but simulation doesn't start

Install WarpX Python bindings: see WarpX installation guide. Use dry_run=True to test without WarpX.

Q: How do I reproduce a result from a previous run?

Every run saves run_metadata.json containing the config_hash, helicon_git_sha, warpx_version, random_seed, and all dependency versions. Replicate the environment using the provided Dockerfile or environment.yml.