spectre.converters.compare_vmec_spectre
Comparison plots: VMEC continuous profiles vs SPECTRE discretised values.
Module Contents
- spectre.converters.compare_vmec_spectre.plot_pressure_comparison(ax, pressure, tfluxes, pressure_spectre)
Overlay VMEC continuous pressure and SPECTRE volume-averaged pressure.
Both curves are in SPECTRE’s internal (mu0-scaled) pressure units: the continuous VMEC profile as a line, the SPECTRE values as horizontal segments spanning each volume.
- Args:
ax: matplotlib
Axesto draw into. pressure: callablepressure(s)in SPECTRE units (mu0-scaled). tfluxes: 1-D array of interface toroidal-flux values. pressure_spectre: 1-D array of mu0*<p> per volume from SPECTRE.
- spectre.converters.compare_vmec_spectre.plot_iota_comparison(ax, iota, tfluxes, iota_spectre=None)
Overlay VMEC continuous iota and optionally the SPECTRE interface values.
- Args:
ax: matplotlib
Axesto draw into. iota: callableiota(s)returning the VMEC rotational transform. tfluxes: 1-D array of interface toroidal-flux values. iota_spectre: 1-D array of iota values at interfaces from SPECTRE;omit to show only the VMEC profile (e.g. for current equilibria).
- spectre.converters.compare_vmec_spectre.plot_current_comparison(ax, current_density, tfluxes, enclosed_spectre=None)
Overlay the VMEC and SPECTRE enclosed toroidal current vs flux.
Plots the normalised cumulative integral of the VMEC current-density profile (the enclosed current Î(s) ∈ [0, 1]) and, when given, the SPECTRE enclosed current — the combined contribution of the volume (
ivolume) and sheet (isurf) representations,ivolume + cumsum(isurf)— normalised by its boundary value so the two curves are directly comparable.- Args:
ax: matplotlib
Axesto draw into. current_density: callablej(s) = dI/dsfor the VMEC current profile. tfluxes: 1-D array of interface toroidal-flux values. enclosed_spectre: 1-D array of SPECTRE enclosed current per interface(
ivolume + cumsum(isurf)); omit to show only the VMEC profile (e.g. for iota equilibria).
- spectre.converters.compare_vmec_spectre.compare_vmec_spectre(vmec, spectre_params)
Three-panel comparison of VMEC profiles vs SPECTRE discretised values.
Produces a figure with three subplots — pressure, rotational transform, and toroidal current — by calling the three individual plot functions. The VMEC continuous profiles are read directly from the simsopt object; the SPECTRE discretised values are extracted from the pydantic
InputParameters. The current mode (volume or sheet) is determined automatically from the InputParameters.- Args:
- vmec: simsopt
Vmecobject (loaded from either an input file or a wout netCDF file).
- spectre_params:
InputParameters returned by
simsvmec2spectre().
- vmec: simsopt
- Returns:
Tuple
(fig, axes)— matplotlib figure and array of 3 axes.