simsoptpp package

class simsoptpp.BiotSavart

Bases: MagneticField

A(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing the magnetic potential (in cartesian coordinates). Denoting the indices by i and l, the result contains A_l(x_i).

A_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As A, but returns a reference to the array (this array should be read only).

AbsB(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the absolute value of the magnetic field (in cartesian coordinates).

AbsB_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As AbsB, but returns a reference to the array (this array should be read only).

B(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing the magnetic field (in cartesian coordinates). Denoting the indices by i and l, the result contains B_l(x_i).

B_cyl(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Return a (npoints, 3) array containing the magnetic field (in cylindrical coordinates) (the order is \((B_r, B_\phi, B_z)\)).

B_cyl_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As B_cyl, but returns a reference to the array (this array should be read only).

B_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As B, but returns a reference to the array (this array should be read only).

GradAbsB(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing the gradient of the absolute value of the magnetic field (in cartesian coordinates).

GradAbsB_cyl(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]
GradAbsB_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As GradAbsB, but returns a reference to the array (this array should be read only).

property coils
compute(self: simsoptpp.BiotSavart, arg0: int) None
d2A_by_dXdX(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3) array containing the hessian of the magnetic potential (in cartesian coordinates). Denoting the indices by i, j, k and l, the result contains partial_kpartial_j A_l(x_i).

d2A_by_dXdX_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As d2A_by_dXdX, but returns a reference to the array (this array should be read only).

d2B_by_dXdX(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3, 3) array containing the hessian of magnetic field (in cartesian coordinates). Denoting the indices by i, j, k and l, the result contains partial_kpartial_j B_l(x_i).

d2B_by_dXdX_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As d2B_by_dXdX, but returns a reference to the array (this array should be read only).

dA_by_dX(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3) array containing the gradient of the magnetic potential (in cartesian coordinates). Denoting the indices by i, j and l, the result contains partial_j A_l(x_i).

dA_by_dX_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As dA_by_dX, but returns a reference to the array (this array should be read only).

dB_by_dX(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3) array containing the gradient of magnetic field (in cartesian coordinates). Denoting the indices by i, j and l, the result contains partial_j B_l(x_i).

dB_by_dX_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As dB_by_dX, but returns a reference to the array (this array should be read only).

fieldcache_get_or_create(self: simsoptpp.BiotSavart, arg0: str, arg1: List[int]) numpy.ndarray[numpy.float64]
fieldcache_get_status(self: simsoptpp.BiotSavart, arg0: str) bool
get_points_cart(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Get the point where the field should be evaluated in cartesian coordinates.

get_points_cart_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As get_points_cart, but returns a reference to the array (this array should be read only).

get_points_cyl(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

Get the point where the field should be evaluated in cylindrical coordinates (the order is \((r, \phi, z)\)).

get_points_cyl_ref(self: simsoptpp.BiotSavart) numpy.ndarray[numpy.float64]

As get_points_cyl, but returns a reference to the array (this array should be read only).

invalidate_cache(self: simsoptpp.BiotSavart) None

Clear the cache. Called automatically after each call to set_points[…].

set_points(self: simsoptpp.BiotSavart, arg0: numpy.ndarray[numpy.float64]) simsoptpp.MagneticField

Shorthand for set_points_cart.

set_points_cart(self: simsoptpp.BiotSavart, arg0: numpy.ndarray[numpy.float64]) simsoptpp.MagneticField

Set the points where to evaluate the magnetic fields, in cartesian coordinates.

set_points_cyl(self: simsoptpp.BiotSavart, arg0: numpy.ndarray[numpy.float64]) simsoptpp.MagneticField

Set the points where to evaluate the magnetic fields, in cylindrical coordinates (the order is \((r, \phi, z)\)).

class simsoptpp.BoozerMagneticField

Bases: pybind11_object

G(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the magnetic field toroidal covariant component in Boozer coordinates.

G_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as G, but returns a reference to the array (this array should be read only).

I(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the magnetic field poloidal covariant component in Boozer coordinates.

I_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as I, but returns a reference to the array (this array should be read only).

K(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the Boozer radial covariant component, K, where B = G nabla zeta + I nabla theta + K nabla psi.

K_derivs(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 2) array containing the dKdtheta and dKdzeta, where K is the Boozer radial covariant component, and B = G nabla zeta + I nabla theta + K nabla psi.

K_derivs_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as K_derivs, but returns a reference to the array (this array should be read only).

K_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as K, but returns a reference to the array (this array should be read only).

R(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the major radius as a function of Boozer coordinates.

R_derivs(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing (dRds,dRdtheta,dRdzeta).

R_derivs_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as R_derivs, but returns a reference to the array (this array should be read only).

R_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as R, but returns a reference to the array (this array should be read only).

Z(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the height as a function of Boozer coordinates.

Z_derivs(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing (dZds,dZdtheta,dZdzeta).

Z_derivs_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as Z_derivs, but returns a reference to the array (this array should be read only).

Z_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as Z, but returns a reference to the array (this array should be read only).

dGds(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the magnetic field toroidal covariant component wrt s in Boozer coordinates.

dGds_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dGds, but returns a reference to the array (this array should be read only).

dIds(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the magnetic field poloidal covariant component wrt s in Boozer coordinates.

dIds_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dIds, but returns a reference to the array (this array should be read only).

dKdtheta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the theta derivative of the Boozer radial covariant component, K, where B = G nabla zeta + I nabla theta + K nabla psi.

dKdtheta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dKdtheta, but returns a reference to the array (this array should be read only).

dKdzeta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the zeta derivative of the Boozer radial covariant component, K, where B = G nabla zeta + I nabla theta + K nabla psi.

dKdzeta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dKdzeta, but returns a reference to the array (this array should be read only).

dRds(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the major radius wrt s as a function of Boozer coordinates.

dRds_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dRds, but returns a reference to the array (this array should be read only).

dRdtheta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the major radius wrt theta as a function of Boozer coordinates.

dRdtheta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dRdtheta, but returns a reference to the array (this array should be read only).

dRdzeta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the major radius wrt zeta as a function of Boozer coordinates.

dRdzeta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dRdzeta, but returns a reference to the array (this array should be read only).

dZds(*args, **kwargs)

Overloaded function.

  1. dZds(self: simsoptpp.BoozerMagneticField) -> numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the height wrt s as a function of Boozer coordinates.

  1. dZds(self: simsoptpp.BoozerMagneticField) -> numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the height wrt s as a function of Boozer coordinates.

dZds_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dZds, but returns a reference to the array (this array should be read only).

dZdtheta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the height wrt theta as a function of Boozer coordinates.

dZdtheta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dZdtheta, but returns a reference to the array (this array should be read only).

dZdzeta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the height wrt zeta as a function of Boozer coordinates.

dZdzeta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dZdzeta, but returns a reference to the array (this array should be read only).

diotads(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the rotational transform wrt s in Boozer coordinates.

diotads_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as diotads, but returns a reference to the array (this array should be read only).

dmodBds(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the magnetic field strength wrt s in Boozer coordinates.

dmodBds_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dmodBds, but returns a reference to the array (this array should be read only).

dmodBdtheta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the magnetic field strength wrt theta in Boozer coordinates.

dmodBdtheta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dmodBdtheta, but returns a reference to the array (this array should be read only).

dmodBdzeta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of the magnetic field strength wrt zeta in Boozer coordinates.

dmodBdzeta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dmodBdzeta, but returns a reference to the array (this array should be read only).

dnuds(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of nu wrt s as a function of Boozer coordinates.

dnuds_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dnuds, but returns a reference to the array (this array should be read only).

dnudtheta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of nu wrt theta as a function of Boozer coordinates.

dnudtheta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dnudtheta, but returns a reference to the array (this array should be read only).

dnudzeta(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the derivative of nu wrt zeta as a function of Boozer coordinates.

dnudzeta_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as dnudzeta, but returns a reference to the array (this array should be read only).

get_points(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Get the point where the field should be evaluated in Boozer coordinates.

get_points_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

As get_points, but returns a reference to the array (this array should be read only).

invalidate_cache(self: simsoptpp.BoozerMagneticField) None

Clear the cache. Called automatically after each call to set_points[…].

iota(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the rotational transform in Boozer coordinates.

iota_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as iota, but returns a reference to the array (this array should be read only).

modB(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the magnetic field strength in Boozer coordinates.

modB_derivs(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing (dmodBds,dmodBdtheta,dmodBdzeta).

modB_derivs_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as modB_derivs, but returns a reference to the array (this array should be read only).

modB_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as modB, but returns a reference to the array (this array should be read only).

nu(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the difference between the Boozer and cylindrical toroidal angles, e.g. zeta_b = phi + nu.

nu_derivs(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing (dnuds,dnudtheta,dnudzeta).

nu_derivs_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as nu_derivs, but returns a reference to the array (this array should be read only).

nu_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as nu, but returns a reference to the array (this array should be read only).

psip(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the (poloidal flux)/(2*pi) in Boozer coordinates.

psip_ref(self: simsoptpp.BoozerMagneticField) numpy.ndarray[numpy.float64]

Same as psip, but returns a reference to the array (this array should be read only).

set_points(self: simsoptpp.BoozerMagneticField, arg0: numpy.ndarray[numpy.float64]) simsoptpp.BoozerMagneticField
class simsoptpp.ChebyshevInterpolationRule

Bases: InterpolationRule

Polynomial interpolation using chebychev points.

property degree

The degree of the polynomial. The number of interpolation points in degree+1.

class simsoptpp.Coil

Bases: pybind11_object

Optimizable that represents a coil, consisting of a curve and a current.

property current

Get the underlying current.

property curve

Get the underlying curve.

class simsoptpp.Current

Bases: CurrentBase

Simple class that wraps around a single double representing a coil current.

get_dofs(self: simsoptpp.Current) numpy.ndarray[numpy.float64]

Get the current.

get_value(self: simsoptpp.Current) float

Get the current.

set_dofs(self: simsoptpp.Current, arg0: numpy.ndarray[numpy.float64]) None

Set the current.

class simsoptpp.CurrentBase

Bases: pybind11_object

get_value(self: simsoptpp.CurrentBase) float

Get the current.

class simsoptpp.Curve

Bases: pybind11_object

dgamma_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp_impl(self: simsoptpp.Curve, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
dgammadash_by_dcoeff_vjp_impl(self: simsoptpp.Curve, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadashdash_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
dgammadashdash_by_dcoeff_vjp_impl(self: simsoptpp.Curve, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadashdashdash_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
dgammadashdashdash_by_dcoeff_vjp_impl(self: simsoptpp.Curve, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dincremental_arclength_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
dkappa_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
dtorsion_by_dcoeff(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
gamma(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.Curve, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64]) None
gammadash(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
gammadashdash(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
gammadashdashdash(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
get_dofs(self: simsoptpp.Curve) List[float]
incremental_arclength(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
invalidate_cache(self: simsoptpp.Curve) None
kappa(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
least_squares_fit(self: simsoptpp.Curve, arg0: numpy.ndarray[numpy.float64]) None
num_dofs(self: simsoptpp.Curve) int
property quadpoints
set_dofs(self: simsoptpp.Curve, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.Curve, arg0: List[float]) None
torsion(self: simsoptpp.Curve) numpy.ndarray[numpy.float64]
class simsoptpp.CurveRZFourier

Bases: Curve

dgamma_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp_impl(self: simsoptpp.CurveRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
dgammadash_by_dcoeff_vjp_impl(self: simsoptpp.CurveRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadashdash_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
dgammadashdash_by_dcoeff_vjp_impl(self: simsoptpp.CurveRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadashdashdash_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
dgammadashdashdash_by_dcoeff_vjp_impl(self: simsoptpp.CurveRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dincremental_arclength_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
dkappa_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
dtorsion_by_dcoeff(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
gamma(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.CurveRZFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64]) None
gammadash(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
gammadashdash(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
gammadashdashdash(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
get_dofs(self: simsoptpp.CurveRZFourier) List[float]
incremental_arclength(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
invalidate_cache(self: simsoptpp.CurveRZFourier) None
kappa(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
least_squares_fit(self: simsoptpp.CurveRZFourier, arg0: numpy.ndarray[numpy.float64]) None
property nfp
num_dofs(self: simsoptpp.CurveRZFourier) int
property order
property quadpoints
property rc
property rs
set_dofs(self: simsoptpp.CurveRZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.CurveRZFourier, arg0: List[float]) None
property stellsym
torsion(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
property zc
property zs
class simsoptpp.CurveXYZFourier

Bases: Curve

dgamma_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp_impl(self: simsoptpp.CurveXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
dgammadash_by_dcoeff_vjp_impl(self: simsoptpp.CurveXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadashdash_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
dgammadashdash_by_dcoeff_vjp_impl(self: simsoptpp.CurveXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadashdashdash_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
dgammadashdashdash_by_dcoeff_vjp_impl(self: simsoptpp.CurveXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dincremental_arclength_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
dkappa_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
property dofs
dtorsion_by_dcoeff(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
gamma(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.CurveXYZFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64]) None
gammadash(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
gammadashdash(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
gammadashdashdash(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
get_dofs(self: simsoptpp.CurveXYZFourier) List[float]
incremental_arclength(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
invalidate_cache(self: simsoptpp.CurveXYZFourier) None
kappa(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
least_squares_fit(self: simsoptpp.CurveXYZFourier, arg0: numpy.ndarray[numpy.float64]) None
num_dofs(self: simsoptpp.CurveXYZFourier) int
property order
property quadpoints
set_dofs(self: simsoptpp.CurveXYZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.CurveXYZFourier, arg0: List[float]) None
torsion(self: simsoptpp.CurveXYZFourier) numpy.ndarray[numpy.float64]
simsoptpp.DommaschkB(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.DommaschkdB(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
class simsoptpp.InterpolatedBoozerField

Bases: BoozerMagneticField

estimate_error_G(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_I(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_K(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_R(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_Z(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_iota(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_modB(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
estimate_error_nu(self: simsoptpp.InterpolatedBoozerField, arg0: int) Tuple[float, float]
property rule
property s_range
property theta_range
property zeta_range
class simsoptpp.InterpolatedField

Bases: MagneticField

estimate_error_B(self: simsoptpp.InterpolatedField, arg0: int) Tuple[float, float]
estimate_error_GradAbsB(self: simsoptpp.InterpolatedField, arg0: int) Tuple[float, float]
property phi_range
property r_range
property rule
property z_range
class simsoptpp.InterpolationRule

Bases: pybind11_object

Abstract class for interpolation rules on an interval.

property degree

The degree of the polynomial. The number of interpolation points in degree+1.

class simsoptpp.IterationStoppingCriterion

Bases: StoppingCriterion

class simsoptpp.LevelsetStoppingCriterion

Bases: StoppingCriterion

class simsoptpp.MagneticField

Bases: pybind11_object

Abstract class representing magnetic fields.

A(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing the magnetic potential (in cartesian coordinates). Denoting the indices by i and l, the result contains A_l(x_i).

A_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As A, but returns a reference to the array (this array should be read only).

AbsB(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 1) array containing the absolute value of the magnetic field (in cartesian coordinates).

AbsB_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As AbsB, but returns a reference to the array (this array should be read only).

B(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing the magnetic field (in cartesian coordinates). Denoting the indices by i and l, the result contains B_l(x_i).

B_cyl(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Return a (npoints, 3) array containing the magnetic field (in cylindrical coordinates) (the order is \((B_r, B_\phi, B_z)\)).

B_cyl_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As B_cyl, but returns a reference to the array (this array should be read only).

B_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As B, but returns a reference to the array (this array should be read only).

GradAbsB(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3) array containing the gradient of the absolute value of the magnetic field (in cartesian coordinates).

GradAbsB_cyl(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]
GradAbsB_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As GradAbsB, but returns a reference to the array (this array should be read only).

d2A_by_dXdX(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3) array containing the hessian of the magnetic potential (in cartesian coordinates). Denoting the indices by i, j, k and l, the result contains partial_kpartial_j A_l(x_i).

d2A_by_dXdX_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As d2A_by_dXdX, but returns a reference to the array (this array should be read only).

d2B_by_dXdX(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3, 3) array containing the hessian of magnetic field (in cartesian coordinates). Denoting the indices by i, j, k and l, the result contains partial_kpartial_j B_l(x_i).

d2B_by_dXdX_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As d2B_by_dXdX, but returns a reference to the array (this array should be read only).

dA_by_dX(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3) array containing the gradient of the magnetic potential (in cartesian coordinates). Denoting the indices by i, j and l, the result contains partial_j A_l(x_i).

dA_by_dX_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As dA_by_dX, but returns a reference to the array (this array should be read only).

dB_by_dX(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Returns a (npoints, 3, 3) array containing the gradient of magnetic field (in cartesian coordinates). Denoting the indices by i, j and l, the result contains partial_j B_l(x_i).

dB_by_dX_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As dB_by_dX, but returns a reference to the array (this array should be read only).

get_points_cart(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Get the point where the field should be evaluated in cartesian coordinates.

get_points_cart_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As get_points_cart, but returns a reference to the array (this array should be read only).

get_points_cyl(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

Get the point where the field should be evaluated in cylindrical coordinates (the order is \((r, \phi, z)\)).

get_points_cyl_ref(self: simsoptpp.MagneticField) numpy.ndarray[numpy.float64]

As get_points_cyl, but returns a reference to the array (this array should be read only).

invalidate_cache(self: simsoptpp.MagneticField) None

Clear the cache. Called automatically after each call to set_points[…].

set_points(self: simsoptpp.MagneticField, arg0: numpy.ndarray[numpy.float64]) simsoptpp.MagneticField

Shorthand for set_points_cart.

set_points_cart(self: simsoptpp.MagneticField, arg0: numpy.ndarray[numpy.float64]) simsoptpp.MagneticField

Set the points where to evaluate the magnetic fields, in cartesian coordinates.

set_points_cyl(self: simsoptpp.MagneticField, arg0: numpy.ndarray[numpy.float64]) simsoptpp.MagneticField

Set the points where to evaluate the magnetic fields, in cylindrical coordinates (the order is \((r, \phi, z)\)).

class simsoptpp.MaxToroidalFluxStoppingCriterion

Bases: StoppingCriterion

class simsoptpp.MinToroidalFluxStoppingCriterion

Bases: StoppingCriterion

class simsoptpp.RegularGridInterpolant3D

Bases: pybind11_object

Interpolates a (vector valued) function on a uniform grid. This interpolant is optimized for fast function evaluation (at the cost of memory usage). The main purpose of this class is to be used to interpolate magnetic fields and then use the interpolant for tasks such as fieldline or particle tracing for which the field needs to be evaluated many many times.

evaluate(self: simsoptpp.RegularGridInterpolant3D, arg0: float, arg1: float, arg2: float) List[float]

Evaluate the interpolant at a point.

evaluate_batch(self: simsoptpp.RegularGridInterpolant3D, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64]) None

Evaluate the interpolant at multiple points (faster than evaluate as it uses prefetching).

interpolate_batch(self: simsoptpp.RegularGridInterpolant3D, arg0: Callable[[List[float], List[float], List[float]], List[float]]) None

Interpolate a function by evaluating the function on all interpolation nodes simultanuously.

simsoptpp.ReimanB(arg0: float, arg1: float, arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: int, arg5: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.ReimandB(arg0: float, arg1: float, arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: int, arg5: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
class simsoptpp.StoppingCriterion

Bases: pybind11_object

class simsoptpp.Surface

Bases: pybind11_object

area(self: simsoptpp.Surface) float
d2area_by_dcoeffdcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
d2normal_by_dcoeffdcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
d2volume_by_dcoeffdcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
darea(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
darea_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dfirst_fund_form_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of first_fund_form wrt the surface coefficients.

dgamma_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff_vjp(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1dash1_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash1 wrt surface coefficients.

dgammadash1dash2_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash2 wrt surface coefficients.

dgammadash2_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dgammadash2_by_dcoeff_vjp(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash2dash2_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash2dash2 wrt surface coefficients.

dnormal_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dnormal_by_dcoeff_vjp(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dsecond_fund_form_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of second_fund_form wrt the surface coefficients.

dsurface_curvatures_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4, ndofs) array containing the derivatives of surface_curvatures wrt the surface coefficients.

dunitnormal_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dvolume(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
dvolume_by_dcoeff(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
extend_via_normal(self: simsoptpp.Surface, arg0: float) None
first_fund_form(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [partial_{phi} Gamma(phi_i, theta_j) cdot partial_{phi} Gamma(phi_i, theta_j), partial_{phi} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j), partial_{theta} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta}.

fit_to_curve(self: simsoptpp.Surface, curve: simsoptpp.Curve, radius: float, flip_theta: bool = False) None
gamma(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gamma_lin(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gammadash1(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
gammadash1dash1(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,phi} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash1dash2(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash2(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
gammadash2dash2(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{theta,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

get_dofs(self: simsoptpp.Surface) List[float]
invalidate_cache(self: simsoptpp.Surface) None
least_squares_fit(self: simsoptpp.Surface, arg0: numpy.ndarray[numpy.float64]) None
normal(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
property quadpoints_phi
property quadpoints_theta
scale(self: simsoptpp.Surface, arg0: float) None
second_fund_form(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [n(phi_i, theta_j) cdot partial^2_{phi,phi} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{phi,theta} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{theta,theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where n is the unit normal.

set_dofs(self: simsoptpp.Surface, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.Surface, arg0: List[float]) None
surface_curvatures(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4) array containing [G(phi_i, theta_j),K(phi_i, theta_j),kappa_1(phi_i, theta_j),kappa_2(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where H is the mean curvature, K is the Gaussian curvature, and kappa_{1,2} are the principal curvatures with kappa_1>kappa_2.

unitnormal(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.Surface) float
class simsoptpp.SurfaceRZFourier

Bases: pybind11_object

allocate(self: simsoptpp.SurfaceRZFourier) None
area(self: simsoptpp.SurfaceRZFourier) float
d2area_by_dcoeffdcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
d2normal_by_dcoeffdcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
d2volume_by_dcoeffdcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
darea(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
darea_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dfirst_fund_form_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of first_fund_form wrt the surface coefficients.

dgamma_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff_vjp(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1dash1_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash1 wrt surface coefficients.

dgammadash1dash2_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash2 wrt surface coefficients.

dgammadash2_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dgammadash2_by_dcoeff_vjp(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash2dash2_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash2dash2 wrt surface coefficients.

dnormal_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dnormal_by_dcoeff_vjp(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dsecond_fund_form_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of second_fund_form wrt the surface coefficients.

dsurface_curvatures_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4, ndofs) array containing the derivatives of surface_curvatures wrt the surface coefficients.

dunitnormal_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dvolume(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
dvolume_by_dcoeff(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
extend_via_normal(self: simsoptpp.SurfaceRZFourier, arg0: float) None
first_fund_form(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [partial_{phi} Gamma(phi_i, theta_j) cdot partial_{phi} Gamma(phi_i, theta_j), partial_{phi} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j), partial_{theta} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta}.

fit_to_curve(self: simsoptpp.SurfaceRZFourier, curve: simsoptpp.Curve, radius: float, flip_theta: bool = False) None
gamma(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gamma_lin(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gammadash1(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
gammadash1dash1(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,phi} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash1dash2(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash2(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
gammadash2dash2(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{theta,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

get_dofs(self: simsoptpp.SurfaceRZFourier) List[float]
invalidate_cache(self: simsoptpp.SurfaceRZFourier) None
least_squares_fit(self: simsoptpp.SurfaceRZFourier, arg0: numpy.ndarray[numpy.float64]) None
property mpol
property nfp
normal(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
property ntor
property quadpoints_phi
property quadpoints_theta
property rc
property rs
scale(self: simsoptpp.SurfaceRZFourier, arg0: float) None
second_fund_form(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [n(phi_i, theta_j) cdot partial^2_{phi,phi} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{phi,theta} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{theta,theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where n is the unit normal.

set_dofs(self: simsoptpp.SurfaceRZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.SurfaceRZFourier, arg0: List[float]) None
property stellsym
surface_curvatures(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4) array containing [G(phi_i, theta_j),K(phi_i, theta_j),kappa_1(phi_i, theta_j),kappa_2(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where H is the mean curvature, K is the Gaussian curvature, and kappa_{1,2} are the principal curvatures with kappa_1>kappa_2.

unitnormal(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.SurfaceRZFourier) float
property zc
property zs
class simsoptpp.SurfaceXYZFourier

Bases: pybind11_object

area(self: simsoptpp.SurfaceXYZFourier) float
d2area_by_dcoeffdcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
d2normal_by_dcoeffdcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
d2volume_by_dcoeffdcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
darea(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
darea_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dfirst_fund_form_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of first_fund_form wrt the surface coefficients.

dgamma_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1dash1_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash1 wrt surface coefficients.

dgammadash1dash2_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash2 wrt surface coefficients.

dgammadash2_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dgammadash2_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash2dash2_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash2dash2 wrt surface coefficients.

dnormal_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dnormal_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dsecond_fund_form_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of second_fund_form wrt the surface coefficients.

dsurface_curvatures_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4, ndofs) array containing the derivatives of surface_curvatures wrt the surface coefficients.

dunitnormal_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dvolume(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
dvolume_by_dcoeff(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
extend_via_normal(self: simsoptpp.SurfaceXYZFourier, arg0: float) None
first_fund_form(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [partial_{phi} Gamma(phi_i, theta_j) cdot partial_{phi} Gamma(phi_i, theta_j), partial_{phi} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j), partial_{theta} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta}.

fit_to_curve(self: simsoptpp.SurfaceXYZFourier, curve: simsoptpp.Curve, radius: float, flip_theta: bool = False) None
gamma(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gamma_lin(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gammadash1(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
gammadash1dash1(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,phi} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash1dash2(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash2(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
gammadash2dash2(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{theta,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

get_dofs(self: simsoptpp.SurfaceXYZFourier) List[float]
invalidate_cache(self: simsoptpp.SurfaceXYZFourier) None
least_squares_fit(self: simsoptpp.SurfaceXYZFourier, arg0: numpy.ndarray[numpy.float64]) None
property mpol
property nfp
normal(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
property ntor
property quadpoints_phi
property quadpoints_theta
scale(self: simsoptpp.SurfaceXYZFourier, arg0: float) None
second_fund_form(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [n(phi_i, theta_j) cdot partial^2_{phi,phi} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{phi,theta} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{theta,theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where n is the unit normal.

set_dofs(self: simsoptpp.SurfaceXYZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.SurfaceXYZFourier, arg0: List[float]) None
property stellsym
surface_curvatures(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4) array containing [G(phi_i, theta_j),K(phi_i, theta_j),kappa_1(phi_i, theta_j),kappa_2(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where H is the mean curvature, K is the Gaussian curvature, and kappa_{1,2} are the principal curvatures with kappa_1>kappa_2.

unitnormal(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.SurfaceXYZFourier) float
property xc
property xs
property yc
property ys
property zc
property zs
class simsoptpp.SurfaceXYZTensorFourier

Bases: pybind11_object

area(self: simsoptpp.SurfaceXYZTensorFourier) float
property clamped_dims
d2area_by_dcoeffdcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
d2normal_by_dcoeffdcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
d2volume_by_dcoeffdcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
darea(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
darea_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dfirst_fund_form_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of first_fund_form wrt the surface coefficients.

dgamma_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dgamma_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dgammadash1_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash1dash1_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash1 wrt surface coefficients.

dgammadash1dash2_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash1dash2 wrt surface coefficients.

dgammadash2_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dgammadash2_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dgammadash2dash2_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing derivatives of gammadash2dash2 wrt surface coefficients.

dnormal_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dnormal_by_dcoeff_vjp(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
dsecond_fund_form_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3, ndofs) array containing the derivatives of second_fund_form wrt the surface coefficients.

dsurface_curvatures_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4, ndofs) array containing the derivatives of surface_curvatures wrt the surface coefficients.

dunitnormal_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dvolume(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
dvolume_by_dcoeff(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
extend_via_normal(self: simsoptpp.SurfaceXYZTensorFourier, arg0: float) None
first_fund_form(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [partial_{phi} Gamma(phi_i, theta_j) cdot partial_{phi} Gamma(phi_i, theta_j), partial_{phi} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j), partial_{theta} Gamma(phi_i, theta_j) cdot partial_{theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta}.

fit_to_curve(self: simsoptpp.SurfaceXYZTensorFourier, curve: simsoptpp.Curve, radius: float, flip_theta: bool = False) None
gamma(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
gamma_impl(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gamma_lin(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) None
gammadash1(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
gammadash1dash1(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,phi} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash1dash2(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{phi,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

gammadash2(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
gammadash2dash2(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing partial^2_{theta,theta} Gamma(phi_i, theta_j) for i in {1, …, n_phi}, j in{1, …, n_theta}

get_dofs(self: simsoptpp.SurfaceXYZTensorFourier) List[float]
invalidate_cache(self: simsoptpp.SurfaceXYZTensorFourier) None
least_squares_fit(self: simsoptpp.SurfaceXYZTensorFourier, arg0: numpy.ndarray[numpy.float64]) None
property mpol
property nfp
normal(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
property ntor
property quadpoints_phi
property quadpoints_theta
scale(self: simsoptpp.SurfaceXYZTensorFourier, arg0: float) None
second_fund_form(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 3) array containing [n(phi_i, theta_j) cdot partial^2_{phi,phi} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{phi,theta} Gamma(phi_i, theta_j), n(phi_i, theta_j) cdot partial^2_{theta,theta} Gamma(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where n is the unit normal.

set_dofs(self: simsoptpp.SurfaceXYZTensorFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.SurfaceXYZTensorFourier, arg0: List[float]) None
property stellsym
surface_curvatures(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]

Returns a (n_phi, n_theta, 4) array containing [G(phi_i, theta_j),K(phi_i, theta_j),kappa_1(phi_i, theta_j),kappa_2(phi_i, theta_j)] for i in {1, …, n_phi}, j in {1, …, n_theta} where H is the mean curvature, K is the Gaussian curvature, and kappa_{1,2} are the principal curvatures with kappa_1>kappa_2.

unitnormal(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.SurfaceXYZTensorFourier) float
property xcs
property ycs
property zcs
class simsoptpp.ToroidalTransitStoppingCriterion

Bases: StoppingCriterion

class simsoptpp.UniformInterpolationRule

Bases: InterpolationRule

Polynomial interpolation using equispaced points.

property degree

The degree of the polynomial. The number of interpolation points in degree+1.

simsoptpp.biot_savart(arg0: numpy.ndarray[numpy.float64], arg1: List[numpy.ndarray[numpy.float64]], arg2: List[numpy.ndarray[numpy.float64]], arg3: List[numpy.ndarray[numpy.float64]], arg4: List[numpy.ndarray[numpy.float64]], arg5: List[numpy.ndarray[numpy.float64]]) None
simsoptpp.biot_savart_B(arg0: numpy.ndarray[numpy.float64], arg1: List[numpy.ndarray[numpy.float64]], arg2: List[numpy.ndarray[numpy.float64]], arg3: List[float]) numpy.ndarray[numpy.float64]
simsoptpp.biot_savart_vector_potential_vjp_graph(arg0: numpy.ndarray[numpy.float64], arg1: List[numpy.ndarray[numpy.float64]], arg2: List[numpy.ndarray[numpy.float64]], arg3: List[float], arg4: numpy.ndarray[numpy.float64], arg5: List[numpy.ndarray[numpy.float64]], arg6: List[numpy.ndarray[numpy.float64]], arg7: numpy.ndarray[numpy.float64], arg8: List[numpy.ndarray[numpy.float64]], arg9: List[numpy.ndarray[numpy.float64]]) None
simsoptpp.biot_savart_vjp(arg0: numpy.ndarray[numpy.float64], arg1: List[numpy.ndarray[numpy.float64]], arg2: List[numpy.ndarray[numpy.float64]], arg3: List[float], arg4: numpy.ndarray[numpy.float64], arg5: numpy.ndarray[numpy.float64], arg6: List[numpy.ndarray[numpy.float64]], arg7: List[numpy.ndarray[numpy.float64]], arg8: List[numpy.ndarray[numpy.float64]], arg9: List[numpy.ndarray[numpy.float64]]) None
simsoptpp.biot_savart_vjp_graph(arg0: numpy.ndarray[numpy.float64], arg1: List[numpy.ndarray[numpy.float64]], arg2: List[numpy.ndarray[numpy.float64]], arg3: List[float], arg4: numpy.ndarray[numpy.float64], arg5: List[numpy.ndarray[numpy.float64]], arg6: List[numpy.ndarray[numpy.float64]], arg7: numpy.ndarray[numpy.float64], arg8: List[numpy.ndarray[numpy.float64]], arg9: List[numpy.ndarray[numpy.float64]]) None
simsoptpp.boozer_dresidual_dc(arg0: float, arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64], arg5: numpy.ndarray[numpy.float64], arg6: float, arg7: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.compute_kmnc_kmns(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64], arg5: numpy.ndarray[numpy.float64], arg6: numpy.ndarray[numpy.float64], arg7: numpy.ndarray[numpy.float64], arg8: numpy.ndarray[numpy.float64], arg9: numpy.ndarray[numpy.float64], arg10: numpy.ndarray[numpy.float64], arg11: numpy.ndarray[numpy.float64], arg12: numpy.ndarray[numpy.float64], arg13: numpy.ndarray[numpy.float64], arg14: numpy.ndarray[numpy.float64], arg15: numpy.ndarray[numpy.float64], arg16: numpy.ndarray[numpy.float64], arg17: numpy.ndarray[numpy.float64], arg18: numpy.ndarray[numpy.float64], arg19: numpy.ndarray[numpy.float64], arg20: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.compute_kmns(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64], arg5: numpy.ndarray[numpy.float64], arg6: numpy.ndarray[numpy.float64], arg7: numpy.ndarray[numpy.float64], arg8: numpy.ndarray[numpy.float64], arg9: numpy.ndarray[numpy.float64], arg10: numpy.ndarray[numpy.float64], arg11: numpy.ndarray[numpy.float64], arg12: numpy.ndarray[numpy.float64], arg13: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.fieldline_tracing(field: simsoptpp.MagneticField, xyz_init: List[float[3]], tmax: float, tol: float, phis: List[float] = [], stopping_criteria: List[simsoptpp.StoppingCriterion] = []) Tuple[List[List[float[4]]], List[List[float[5]]]]
simsoptpp.fourier_transform_even(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.fourier_transform_odd(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.get_phi(arg0: float, arg1: float, arg2: float) float
simsoptpp.get_pointclouds_closer_than_threshold_between_two_collections(pointCloudsA: List[numpy.ndarray[numpy.float64]], pointCloudsB: List[numpy.ndarray[numpy.float64]], threshold: float) List[Tuple[int, int]]

Between two lists of pointclouds, get all pairings that are closer than threshold to each other.

simsoptpp.get_pointclouds_closer_than_threshold_within_collection(pointClouds: List[numpy.ndarray[numpy.float64]], threshold: float, num_base_curves: int) List[Tuple[int, int]]

In a list of point clouds, get all pairings that are closer than threshold to each other.

simsoptpp.integral_BdotN(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64]) float
simsoptpp.inverse_fourier_transform_even(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64], arg5: numpy.ndarray[numpy.float64]) None
simsoptpp.inverse_fourier_transform_odd(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64], arg2: numpy.ndarray[numpy.float64], arg3: numpy.ndarray[numpy.float64], arg4: numpy.ndarray[numpy.float64], arg5: numpy.ndarray[numpy.float64]) None
simsoptpp.matmult(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]
simsoptpp.particle_fullorbit_tracing(field: simsoptpp.MagneticField, xyz_init: List[float[3]], v_init: List[float[3]], m: float, q: float, tmax: float, tol: float, phis: List[float] = [], stopping_criteria: List[simsoptpp.StoppingCriterion] = []) Tuple[List[List[float[7]]], List[List[float[8]]]]
simsoptpp.particle_guiding_center_boozer_tracing(field: simsoptpp.BoozerMagneticField, stz_init: List[float[3]], m: float, q: float, vtotal: float, vtang: float, tmax: float, tol: float, vacuum: bool, noK: bool, zetas: List[float] = [], stopping_criteria: List[simsoptpp.StoppingCriterion] = []) Tuple[List[List[float[5]]], List[List[float[6]]]]
simsoptpp.particle_guiding_center_tracing(field: simsoptpp.MagneticField, xyz_init: List[float[3]], m: float, q: float, vtotal: float, vtang: float, tmax: float, tol: float, vacuum: bool, phis: List[float] = [], stopping_criteria: List[simsoptpp.StoppingCriterion] = []) Tuple[List[List[float[5]]], List[List[float[6]]]]
simsoptpp.vjp(arg0: numpy.ndarray[numpy.float64], arg1: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]