Skip to content

v0.10.0

Compare
Choose a tag to compare
@f0uriest f0uriest released this 01 Sep 00:39
· 5383 commits to master since this release
74e8faa

Major Changes

  • Removes the various compute_* methods from Surface and Curve classes in
    favor of a unified compute method, similar to Equilibrium.compute. The method
    takes as arguments strings containing the desired data. A full list of available options
    is at https://desc-docs.readthedocs.io/en/stable/variables.html
  • Analytic limits at the magnetic axis of all quantities have now been implemented.
  • New functions desc.random.random_surface and desc.random.random_pressure for
    generating pseudo-random toroidal surfaces and monotonic profiles.
  • Adds new curve parameterization desc.geometry.SplineXYZCurve and corresponding
    coil desc.coils.SplineXYZCoil that use a local spline of points in real space.
  • New methods CoilSet.from_makegrid_coilfile and CoilSet.save_in_makegrid_format
    for creating a CoilSet of SplineXYZCoil from a MAKEGRID style text file or saving
    coil data in the format expected by MAKEGRID.
  • New function desc.magnetic_fields.read_BNORM_file for reading the Bnormal distribution
    on a surface from a BNORM code output file.
  • New methods compute_Bnormal and save_BNORM_file for all magnetic field classes
    to compute the normal component of the field on a given surface and save the data in the
    same format as the BNORM code.

Minor Changes

  • Increases default radial resolution for stability objectives to be consistent with
    other objectives.
  • Creating Equilibrium objects or calling change_resolution on objects that have
    it should now be significantly faster.
  • Grid and Transform objects can now be created within the context of jit,
    by passing jitable=True to the constructor.
  • Added support for newer JAX versions, up to v0.4.14. Newer versions likely work as well
    but are not automatically tested.
  • Adds ability to compute curvatures of constant theta and constant zeta surfaces.
  • Fixes definition of derivatives of co- and contra-variant basis vectors to properly
    account for the chain rule derivatives of the cylindrical basis vectors as well.
  • Adds calculation of A(r), the approximate cross sectional area as a function of rho.
  • Adds method desc.io.InputReader.descout_to_input to create a text input file for
    DESC from a saved hdf5 output.

Bug Fixes

  • Fixes bug in saving nested dicts/lists.
  • Removes default node at rho=1 for BootstrapRedlConsistency objective to avoid
    dividing by zero where profiles may be zero.
  • Fixes bug causing QuasisymmetryBoozer to fail when compiling due to JAX issues.
  • Fixes incorrect implementation of derivatives of contravariant metric tensor elements
    (these were unused at present so shouldn't have caused any issues.)
  • Fixes bug where bounds for profile objectives were not scaled correctly when used
    as an inequality constraint.
  • Fixes a bug where calculating elongation would return NaN for near-circular cross sections.

Full Changelog: v0.9.2...v0.10.0