Skip to content

v0.10.3

Compare
Choose a tag to compare
@f0uriest f0uriest released this 04 Dec 11:10
· 4580 commits to master since this release
5a0be57

What's Changed

  • Adds deriv_mode keyword argument to all Objectives for specifying whether to
    use forward or reverse mode automatic differentiation.
  • Adds desc.compat.rescale for rescaling equilibria to a specified size and field
    strength.
  • Adds new keyword surface_fixed to PlasmaVesselDistance objective which says
    whether or not the surface comparing the distance from the plasma to is fixed or not.
    If True, then the surface coordinates can be precomputed, saving on computation during
    optimization. Set to False by default.
  • Adds objective function desc.objectives.GoodCoordinates for finding "good" (ie,
    non-singular, non-degenerate) coordinate mappings for initial guesses. This is applied
    automatically when creating a new Equilibrium if the default initial guess of scaling
    the boundary surface produces self-intersecting surfaces. This can be disabled by
    passing ensure_nested=False when constructing the Equilibrum.
  • Adds loss_function argument to all Objectives for applying one of min/max/mean
    to objective function values (for targeting the average value of a profile, etc).
  • Equilibrium.get_profile now allows user to choose a profile type (power series, spline, etc)
  • Fixes a bug preventing linear objectives like FixPressure from being used as bounds.
  • Updates to tutorials and example scripts
  • desc.interpolate module has been deprecated in favor of the interpax package.
  • Utility functions like desc.objectives.get_fixed_boundary_constraints now no longer
    require the user to specify which profiles the equilibrium has, they will instead be
    inferred from the equilibrium argument.

New Contributors

Full Changelog: v0.10.2...v0.10.3