Skip to content

v0.10.2

Compare
Choose a tag to compare
@f0uriest f0uriest released this 27 Oct 23:06
· 4920 commits to master since this release
456e535

What's Changed

  • Updates desc.examples:
    • NCSX now has a fixed current profile. Previously it used a fixed iota based on a
      fit, but this was somewhat inaccurate.
    • QAS has been removed as it is now redundant with NCSX.
    • ARIES-CS has been scaled to the correct size and field strength.
    • WISTELL-A is now a true vacuum solution, previously it approximated the vacuum
      solution with fixed rotational transform.
    • Flips sign of iota for W7-X and ATF to account for positive jacobian.
    • new example for HSX.
  • Adds new compute quantities "iota current" and "iota vacuum" to compute the
    rotational transform contributions from the toroidal current and background field.
  • Adds ability to compute equilibria with anisotropic pressure. This includes a new
    profile, Equilibrium.anisotropy, new compute quantity F_anisotropic, and a new
    objective ForceBalanceAnisotropic.
  • plot_3d and plot_coils have been updated to use Plotly as a backend instead of
    Matplotlib, since Matplotlib isn't great for 3d plots, especially ones with multiple
    overlapping objects in the scene. Main API differences:
    • Plotly doesn't have "axes" like Matplotlib does, just figures. So the ax
      argument has been replaced by fig for plot_3d and plot_coils, and they no
      longer return ax.
    • Names of colormaps, line patterns, etc are different, so use caution when
      specifying those using kwargs. Thankfully the error messages Plotly generates are
      usually pretty informative and list the available options.
  • Adds zeroth and first order NAE constraints on the poloidal stream function lambda,
    accessible by passing in fix_lambda=True to the get_NAE_constraint getter function.
  • Implements CurrentPotentialField and FourierCurrentPotentialField classes,
    which allow for computation of the magnetic field from a surface current density
    given by K = n x grad(Phi) where Phi is a surface current potential.
    • CurrentPotentialField allows for an arbitrary current potential function Phi
    • FourierCurrentPotentialField assumes the current potential function to
      be of the form of a periodic potential (represented by a DoubleFourierSeries)
      and two secular terms, one each linear in the poloidal and in the toroidal angle.
  • Small fixes to make VMEC IO stuff more robust against different profile types, input file formatting etc.
  • Improve Biot-Savart discretization, add new methods for converting between coil types

New Contributors

Full Changelog: v0.10.1...v0.10.2