v0.10.3
What's Changed
- Adds
deriv_mode
keyword argument to allObjective
s 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
toPlasmaVesselDistance
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 newEquilibrium
if the default initial guess of scaling
the boundary surface produces self-intersecting surfaces. This can be disabled by
passingensure_nested=False
when constructing theEquilibrum
. - Adds
loss_function
argument to allObjective
s 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 theinterpax
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