v0.10.4
Equilibrium.map_coordinates
is now differentiable.- Removes method
Equilibrium.compute_flux_coordinates
as it is now redundant with the
more generalEquilibrium.map_coordinates
. - Allows certain objectives to target
FourierRZToroidalSurface
objects as well as
Equilibrium
objects, such asMeanCurvature
,PrincipalCurvature
, andVolume
. - Allow optimizations where the only object being optimized is not an
Equilibrium
object e.g. optimizing only aFourierRZToroidalSurface
object to have a certain
Volume
. - Many functions from
desc.plotting
now also work for plotting quantities from
Curve
andSurface
classes. - Adds method
FourierRZToroidalSurface.constant_offset_surface
which creates
a surface with a specified constant offset from the base surface. - Adds method
FourierRZToroidalSurface.from_values
to 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
LinearObjectiveFromUser
for custom linear constraints. elongation
is now computed as a function of zeta rather than a single global scalar.- Adds
beta_vol
andbetaxis
to VMEC output. - Reorder steps in
solve_continuation_automatic
to 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