Equilibrium, Surfaces, and Profile classes

Equilibrium

The Equilibrium is the core class representing an MHD equilibrium configuration. An EquilibriaFamily is a list like object for storing multiple equilibria.

desc.equilibrium.Equilibrium([Psi, NFP, L, ...])

Equilibrium is an object that represents a plasma equilibrium.

desc.equilibrium.EquilibriaFamily(*args)

EquilibriaFamily stores a list of Equilibria.

Geometry

The desc.geometry module contains important classes such as FourierRZToroidalSurface for representing the shape of the plasma boundary, as well as classes for representing the magnetic axis, cross section, and various space curves.

desc.geometry.FourierRZToroidalSurface([...])

Toroidal surface represented by Fourier series in poloidal and toroidal angles.

desc.geometry.FourierRZCurve([R_n, Z_n, ...])

Curve parameterized by Fourier series for R,Z in terms of toroidal angle phi.

desc.geometry.FourierXYZCurve([X_n, Y_n, ...])

Curve parameterized by Fourier series for X,Y,Z in terms of arbitrary angle s.

desc.geometry.FourierPlanarCurve([center, ...])

Curve that lies in a plane.

desc.geometry.SplineXYZCurve(X, Y, Z[, ...])

Curve parameterized by spline knots in X,Y,Z.

desc.geometry.ZernikeRZToroidalSection([...])

A toroidal cross section represented by a Zernike polynomial in R,Z.

Profiles

desc.profiles contains objects representing 1-D flux functions such as pressure, current, rotational transform, temperature, or density. It is also possible to combine profiles together by addition, multiplication, or scaling.

desc.profiles.PowerSeriesProfile([params, ...])

Profile represented by a monic power series.

desc.profiles.SplineProfile([values, knots, ...])

Profile represented by a piecewise cubic spline.

desc.profiles.MTanhProfile([params, name])

Profile represented by a modified hyperbolic tangent + polynomial.

desc.profiles.ScaledProfile(scale, profile, ...)

Profile times a constant value.

desc.profiles.SumProfile(*profiles, **kwargs)

Sum of two or more Profiles.

desc.profiles.ProductProfile(*profiles, **kwargs)

Product of two or more Profiles.

Utilities

desc.compat has utility functions for enforcing sign conventions or rescaling equilibria to a given size and/or field strength.

desc.compat.ensure_positive_jacobian(eq)

Convert an Equilibrium to have a positive coordinate Jacobian.

desc.compat.flip_helicity(eq)

Change the sign of the helicity of an Equilibrium.

desc.compat.rescale(eq[, L, B, ...])

Rescale an Equilibrium in size L and magnetic field strength B.