simsoptpp package

Module contents

class simsoptpp.BiotSavart

Bases: simsoptpp.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_builtins.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: simsoptpp.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_builtins.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: simsoptpp.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_builtins.pybind11_object

class simsoptpp.Curve

Bases: pybind11_builtins.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: simsoptpp.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 quadpoints
property rc
property rs
set_dofs(self: simsoptpp.CurveRZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.CurveRZFourier, arg0: List[float]) None
torsion(self: simsoptpp.CurveRZFourier) numpy.ndarray[numpy.float64]
property zc
property zs
class simsoptpp.CurveXYZFourier

Bases: simsoptpp.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: simsoptpp.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: simsoptpp.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_builtins.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: simsoptpp.StoppingCriterion

class simsoptpp.LevelsetStoppingCriterion

Bases: simsoptpp.StoppingCriterion

class simsoptpp.MagneticField

Bases: pybind11_builtins.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: simsoptpp.StoppingCriterion

class simsoptpp.MinToroidalFluxStoppingCriterion

Bases: simsoptpp.StoppingCriterion

class simsoptpp.RegularGridInterpolant3D

Bases: pybind11_builtins.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.ScaledCurrent

Bases: simsoptpp.CurrentBase

Multiply a current object with a scalar (e.g. to flip its sign).

get_value(self: simsoptpp.ScaledCurrent) float

Get the current.

property scale

Get the scaling factor.

class simsoptpp.StoppingCriterion

Bases: pybind11_builtins.pybind11_object

class simsoptpp.Surface

Bases: pybind11_builtins.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]
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]
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]
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]
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
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]
gammadash2(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
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
set_dofs(self: simsoptpp.Surface, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.Surface, arg0: List[float]) None
unitnormal(self: simsoptpp.Surface) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.Surface) float
class simsoptpp.SurfaceRZFourier

Bases: pybind11_builtins.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]
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]
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]
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]
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
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]
gammadash2(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
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
set_dofs(self: simsoptpp.SurfaceRZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.SurfaceRZFourier, arg0: List[float]) None
property stellsym
unitnormal(self: simsoptpp.SurfaceRZFourier) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.SurfaceRZFourier) float
property zc
property zs
class simsoptpp.SurfaceXYZFourier

Bases: pybind11_builtins.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]
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]
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]
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]
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
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]
gammadash2(self: simsoptpp.SurfaceXYZFourier) numpy.ndarray[numpy.float64]
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
set_dofs(self: simsoptpp.SurfaceXYZFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.SurfaceXYZFourier, arg0: List[float]) None
property stellsym
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_builtins.pybind11_object

area(self: simsoptpp.SurfaceXYZTensorFourier) float
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]
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]
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]
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]
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
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]
gammadash2(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
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
set_dofs(self: simsoptpp.SurfaceXYZTensorFourier, arg0: List[float]) None
set_dofs_impl(self: simsoptpp.SurfaceXYZTensorFourier, arg0: List[float]) None
property stellsym
unitnormal(self: simsoptpp.SurfaceXYZTensorFourier) numpy.ndarray[numpy.float64]
volume(self: simsoptpp.SurfaceXYZTensorFourier) float
property xcs
property ycs
property zcs
class simsoptpp.ToroidalTransitStoppingCriterion

Bases: simsoptpp.StoppingCriterion

class simsoptpp.UniformInterpolationRule

Bases: simsoptpp.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_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]