v0.10.4
Equilibrium.map_coordinatesis now differentiable.- Removes method
Equilibrium.compute_flux_coordinatesas it is now redundant with the
more generalEquilibrium.map_coordinates. - Allows certain objectives to target
FourierRZToroidalSurfaceobjects as well as
Equilibriumobjects, such asMeanCurvature,PrincipalCurvature, andVolume. - Allow optimizations where the only object being optimized is not an
Equilibrium
object e.g. optimizing only aFourierRZToroidalSurfaceobject to have a certain
Volume. - Many functions from
desc.plottingnow also work for plotting quantities from
CurveandSurfaceclasses. - Adds method
FourierRZToroidalSurface.constant_offset_surfacewhich creates
a surface with a specified constant offset from the base surface. - Adds method
FourierRZToroidalSurface.from_valuesto create a surface by fitting
(R,phi,Z) points, along with a user-defined poloidal angle theta which sets the poloidal
angle for the created surface - Adds new objective
LinearObjectiveFromUserfor custom linear constraints. elongationis now computed as a function of zeta rather than a single global scalar.- Adds
beta_volandbetaxisto VMEC output. - Reorder steps in
solve_continuation_automaticto avoid finite pressure tokamak with
zero current. - Fix error in lambda o(rho) constraint for near axis behavior.
- Fix bug when optimizing with only a single constraint.
- Fix some bugs causing NaN in reverse mode AD for some objectives.
- Fix incompatible array shapes when user supplies initial guess for lagrange multipliers
for augmented lagrangian optimizers. - Fix a bug caused when optimizing multiple objects at the same time and the order of
the objects gets mixed up.
Full Changelog: v0.10.3...v0.10.4