jax_sbgeom.flux_surfaces.flux_surfaces_extended module
- class FluxSurfaceNormalExtended(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None)[source]
Bases:
FluxSurfaceBaseClass 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
- class FluxSurfaceNormalExtendedNoPhi(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None)[source]
Bases:
FluxSurfaceBaseClass 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.
- class FluxSurfaceNormalExtendedConstantPhi(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None)[source]
Bases:
FluxSurfaceBaseClass 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.
- class FluxSurfaceFourierExtended(data: FluxSurfaceData = None, modes: FluxSurfaceModes = None, settings: FluxSurfaceSettings = None, extension_flux_surface: FluxSurfaceBase = None)[source]
Bases:
FluxSurfaceBaseA 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:
- 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