Cases

Case files (YAML) define the optimization problem: plasma surface, coil configuration, optimizer, and objective terms.

surface_params
  • surface: Name from plasma_surfaces/ (e.g. input.LandremanPaul2021_QA)

  • range: "half period" or "full torus"

  • virtual_casing: Optional bool. Set true to use virtual-casing B-field from a VMEC wout file. Requires the virtual_casing Python package.

coils_params
  • ncoils: Number of coils (4, 6, 8, …)

  • order: Fourier order (4, 8, 16, …)

optimizer_params (keys optional; section required)

Individual keys may be omitted; defaults: algorithm = "augmented_lagrangian", max_iterations = 30, max_iter_subopt = 10. - algorithm: "augmented_lagrangian" (recommended; auto-tunes weights) or "L-BFGS-B" (weights set to reactor defaults, scaled by plasma surface minor radius) - max_iterations: e.g. 200–1000 - max_iter_subopt: For augmented Lagrangian (e.g. 10–40)

coil_objective_terms (optional)

If omitted, defaults to total_length (l2_threshold), coil_curvature (lp_threshold), coil_mean_squared_curvature (l2_threshold), linking_number (“”), coil_arclength_variation (l2_threshold). Each term maps to a penalty type: l1, l2, lp, l1_threshold, l2_threshold, lp_threshold, or "". Common terms: total_length, coil_curvature, coil_mean_squared_curvature, coil_arclength_variation, linking_number, coil_coil_force, coil_coil_torque. coil_coil_distance and coil_surface_distance are always included; use cc_threshold and cs_threshold.

fourier_continuation (optional)

Progressive refinement by order: enabled: true, orders: [4, 8, 16].

post_processing_params (optional)

Flags for submission post-processing: run_vmec (VMEC equilibrium), run_simple (SIMPLE particle tracing), plot_poincare, plot_boozer, plot_finite_build. Defaults: VMEC off, Poincaré off, Boozer on, finite-build off.

description: "Basic Landreman-Paul QA case"
surface_params:
  surface: "input.LandremanPaul2021_QA"
coils_params:
  ncoils: 4
  order: 4
optimizer_params:
  max_iterations: 200
coil_objective_terms:
  coil_coil_force: "lp_threshold"
  coil_coil_torque: "lp_threshold"
# post_processing_params:  # optional; add to enable VMEC, Poincaré, etc.
#   run_vmec: true
#   plot_poincare: true

See Metric Definitions for metric notation and API Reference for full schema details. Run stellcoilbench update-db to refresh leaderboards after adding submissions.