v0.10.3
What's Changed
- Adds
deriv_modekeyword argument to allObjectives for specifying whether to
use forward or reverse mode automatic differentiation. - Adds
desc.compat.rescalefor rescaling equilibria to a specified size and field
strength. - Adds new keyword
surface_fixedtoPlasmaVesselDistanceobjective 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.GoodCoordinatesfor finding "good" (ie,
non-singular, non-degenerate) coordinate mappings for initial guesses. This is applied
automatically when creating a newEquilibriumif the default initial guess of scaling
the boundary surface produces self-intersecting surfaces. This can be disabled by
passingensure_nested=Falsewhen constructing theEquilibrum. - Adds
loss_functionargument to allObjectives for applying one of min/max/mean
to objective function values (for targeting the average value of a profile, etc). Equilibrium.get_profilenow allows user to choose a profile type (power series, spline, etc)- Fixes a bug preventing linear objectives like
FixPressurefrom being used as bounds. - Updates to tutorials and example scripts
desc.interpolatemodule has been deprecated in favor of theinterpaxpackage.- Utility functions like
desc.objectives.get_fixed_boundary_constraintsnow 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