jax_sbgeom.flux_surfaces.flux_surfaces_extended module

class FluxSurfaceNormalExtended(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None)[source]

Bases: FluxSurfaceBase

Class representing a flux surface that is extended along the normal direction.

The extension is done such that: - For s <= 1.0, the original flux surface is used - For s > 1.0, the position is given by moving along the normal direction of the flux surface at s = 1.0

cartesian_position(s, theta, phi)[source]
cylindrical_position(s, theta, phi)[source]
normal(s, theta, phi)[source]
principal_curvatures(s, theta, phi)[source]
class FluxSurfaceNormalExtendedNoPhi(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None)[source]

Bases: FluxSurfaceBase

Class representing a flux surface that is extended along the normal direction, but with no toroidal (phi) component in the extension.

The extension is done such that: - For s <= 1.0, the original flux surface is used - For s > 1.0, the position is given by moving along the normal direction of the flux surface at s = 1.0, but with the toroidal component removed

This is useful for creating an extension label that preserves phi_in = phi_out but still extends in a straight line. However, the label does not have the meaning of ‘distance to the lcfs’ anymore, as the extension is not along the actual normal direction.

cartesian_position(s, theta, phi)[source]
cylindrical_position(s, theta, phi)[source]
normal(s, theta, phi)[source]
principal_curvatures(s, theta, phi)[source]
class FluxSurfaceNormalExtendedConstantPhi(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None)[source]

Bases: FluxSurfaceBase

Class representing a flux surface that is extended along the normal direction, but keeping the toroidal angle (phi) constant during the extension. The extension is done such that: - For s <= 1.0, the original flux surface is used - For s > 1.0, the position is given by moving along the normal direction of the flux surface at s = 1.0, but adjusting the toroidal angle to keep it constant

This is useful for creating an extension label that preserves phi_in = phi_out while retaining the meaning of ‘distance to the lcfs’, as the extension is still along the normal direction. However, the extension is no longer a straight line in 3D space.

cartesian_position(s, theta, phi)[source]
cylindrical_position(s, theta, phi)[source]
normal(s, theta, phi)[source]
principal_curvatures(s, theta, phi)[source]
class FluxSurfaceFourierExtended(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None, extension_flux_surface: FluxSurfaceBase = None)[source]

Bases: FluxSurfaceBase

A flux surface that is extended using another flux surface defined in Fourier space. This does not necessarily have to have the same mpol & ntor as the inner flux surface.

The inner flux surface is used for s <= 1.0, and the extension flux surface is used for s > 1.0.

s = 1.0 corresponds to the LCFS of the inner surface s = 2.0 corresponds to the first surface of the extension surface etc.. s = n_extension + 1.0 corresponds to the last surface of the extension surface

Beyond that, the additional s is ignored.

extension_flux_surface: FluxSurfaceBase = None
classmethod from_flux_surface_and_extension(flux_surface: FluxSurfaceBase, extension_flux_surface: FluxSurfaceBase)[source]

Create a FluxSurfaceFourierExtended from a base flux surface and an extension flux surface.

Parameters:
  • flux_surface (FluxSurfaceBase) – Base flux surface to extend.

  • extension_flux_surface (FluxSurfaceBase) – Extension flux surface to use for s > 1.0.

Return type:

FluxSurfaceFourierExtended

cartesian_position(s, theta, phi)[source]
cylindrical_position(s, theta, phi)[source]
normal(s, theta, phi)[source]
principal_curvatures(s, theta, phi)[source]
class FluxSurfaceExtendedDistanceMatrix(flux_surface_extended: FluxSurfaceBase, d_layers: Array)[source]

Bases: ParametrisedSurface

flux_surface_extended: FluxSurfaceBase

Flux surface extenion used. Cannot be of type FluxSurface.

d_layers: Array

assumed to be shaped like [n_theta_sampled, n_phi_sampled]. s[0,0] is (0,0), s[-1-1] corresponds to (2pi, 2pi/nfp)

Type:

The distance matrices of each layer

cylindrical_position(s, theta, phi)[source]
s_interp(s, theta, phi)[source]
cartesian_position(s, theta, phi)[source]
normal(s, theta, phi)[source]
principal_curvatures(s, theta, phi)[source]