bluemira.equilibria.shapes
Useful parameterisations for plasma flux surface shapes.
Classes
Zakharov last closed flux surface geometry parameterisation. |
|
Cunningham last closed flux surface geometry parameterisation. |
|
Manickam last closed flux surface geometry parameterisation. |
|
Kuiroukidis last closed flux surface geometry parameterisation (adjusted). |
|
Johner last closed flux surface geometry parameterisation. |
Functions
Hirshman and Neilson flux surface parameterisation. |
|
As featured in Zakharov's EMEQ |
|
As featured in Geof Cunningham's FIESTA (shape_fun) |
|
Make an up-down asymmetric flux surface with a lower X-point. |
|
|
Initial plasma shape parameterisation from HELIOS author |
Module Contents
- bluemira.equilibria.shapes.flux_surface_hirshman(r_0: float, z_0: float, a: float, kappa: float, n: int = 20) bluemira.geometry.coordinates.Coordinates
Hirshman and Neilson flux surface parameterisation.
- Parameters:
r_0 (float) – Plasma magnetic axis radius [m]
z_0 (float) – Plasma magnetic axis height [m]
a (float) – Plasma geometric minor radius [m]
kappa (float) – Plasma elongation
n (int) – Number of points
- Return type:
Plasma flux surface shape
Notes
Hirshman and Neilson, “External inductance of an axisymmetric plasma”, 1986
- bluemira.equilibria.shapes.flux_surface_zakharov(r_0: float, z_0: float, a: float, kappa: float, delta: float, n: int = 20) bluemira.geometry.coordinates.Coordinates
As featured in Zakharov’s EMEQ
- Parameters:
r_0 (float) – Plasma magnetic axis radius [m]
z_0 (float) – Plasma magnetic axis height [m]
a (float) – Plasma geometric minor radius [m]
kappa (float) – Plasma elongation
delta (float) – Plasma triangularity
n (int) – Number of points
- Return type:
Plasma flux surface shape
Notes
https://inis.iaea.org/collection/NCLCollectionStore/_Public/17/074/17074881.pdf?r=1
Shafranov shift should be included in the r_0 parameter, as R_0 is defined in the above as the magnetic axis. The Shafranov shift is not subtracted to the r coordinates, contrary to the above equation (4). This is because benchmarking with EMEQ shows this does not appear to occur.
- class bluemira.equilibria.shapes.ZakharovLCFS(var_dict: bluemira.utilities.opt_variables.VarDictT | None = None)
Bases:
bluemira.geometry.parameterisations.GeometryParameterisation[ZakharovLCFSOptVariables]Zakharov last closed flux surface geometry parameterisation.
- Parameters:
var_dict (bluemira.utilities.opt_variables.VarDictT | None)
- __slots__ = ()
- create_shape(label: str = 'LCFS', n_points: int = 1000) bluemira.geometry.wire.BluemiraWire
Make a CAD representation of the Zakharov LCFS.
- Parameters:
label (str) – Label to give the wire
n_points (int) – Number of points to use when creating the Bspline representation
- Return type:
CAD Wire of the geometry
- bluemira.equilibria.shapes.flux_surface_cunningham(r_0: float, z_0: float, a: float, kappa: float, delta: float, delta2: float = 0.0, n: int = 20) bluemira.geometry.coordinates.Coordinates
As featured in Geof Cunningham’s FIESTA (shape_fun)
- Parameters:
r_0 (float) – Plasma geometric major radius [m]
z_0 (float) – Plasma geometric vertical height [m]
a (float) – Plasma geometric minor radius [m]
kappa (float) – Plasma elongation
delta (float) – Plasma triangularity
delta2 (float) – Plasma “delta2” curliness?
n (int) – Number of points
- Return type:
Plasma flux surface shape
Notes
This parameterisation does not appear to match delta perfectly for abs(delta) > 0 and delta2=0.
- class bluemira.equilibria.shapes.CunninghamLCFS(var_dict: bluemira.utilities.opt_variables.VarDictT | None = None)
Bases:
bluemira.geometry.parameterisations.GeometryParameterisation[CunninghamLCFSOptVariables]Cunningham last closed flux surface geometry parameterisation.
- Parameters:
var_dict (bluemira.utilities.opt_variables.VarDictT | None)
- __slots__ = ()
- create_shape(label: str = 'LCFS', n_points: int = 1000) bluemira.geometry.wire.BluemiraWire
Make a CAD representation of the Cunningham LCFS.
- Parameters:
label (str) – Label to give the wire
n_points (int) – Number of points to use when creating the Bspline representation
- Return type:
CAD Wire of the geometry
- bluemira.equilibria.shapes.flux_surface_manickam(r_0: float, z_0: float, a: float, kappa: float = 1.0, delta: float = 0.0, indent: float = 0.0, n: int = 20) bluemira.geometry.coordinates.Coordinates
Manickam, Nucl. Fusion 24 595 (1984)
- Parameters:
r_0 (float) – Plasma geometric major radius [m]
z_0 (float) – Plasma geometric vertical height [m]
a (float) – Plasma geometric minor radius [m]
kappa (float) – Plasma elongation
delta (float) – Plasma triangularity
indent (float) – Plasma indentation (beaniness)
n (int) – Number of points
- Return type:
Plasma flux surface shape
Notes
This parameterisation does not appear to match delta perfectly for abs(delta) > 0 and indent=0.
- class bluemira.equilibria.shapes.ManickamLCFS(var_dict: bluemira.utilities.opt_variables.VarDictT | None = None)
Bases:
bluemira.geometry.parameterisations.GeometryParameterisation[ManickamLCFSOptVariables]Manickam last closed flux surface geometry parameterisation.
- Parameters:
var_dict (bluemira.utilities.opt_variables.VarDictT | None)
- __slots__ = ()
- create_shape(label: str = 'LCFS', n_points: int = 1000) bluemira.geometry.wire.BluemiraWire
Make a CAD representation of the Manickam LCFS.
- Parameters:
label (str) – Label to give the wire
n_points (int) – Number of points to use when creating the Bspline representation
- Return type:
CAD Wire of the geometry
- bluemira.equilibria.shapes.flux_surface_kuiroukidis(r_0: float, z_0: float, a: float, kappa_u: float, kappa_l: float, delta_u: float, delta_l: float, n_power: int = 8, n_points: int = 100) bluemira.geometry.coordinates.Coordinates
Make an up-down asymmetric flux surface with a lower X-point.
Ap. Kuiroukidis and G. N. Throumoulopoulos, Plasma Phys. Control. Fusion 57 (2015)
- Parameters:
r_0 (float) – Plasma geometric major radius [m]
z_0 (float) – Plasma geometric vertical height [m]
a (float) – Plasma geometric minor radius [m]
kappa_u (float) – Upper plasma elongation
kappa_l (float) – Lower plasma elongation
delta_u (float) – Upper plasma triangularity
delta_l (float) – Lower plasma triangularity
n_power (int) – Exponent related to the steepness of the triangularity
n_points (int) – Number of points
- Return type:
Plasma flux surface shape
Notes
As far as I can tell, the reference parameterisation is either flawed in two places or is insufficiently specified to reproduce properly. I’ve included two workarounds here, which actually result in a very decent shape description. Furthermore, the grad_rho term does not appear to behave as described, given that it is just an offset. The key may lie in understand what “relative to the X-point” means but it’s not enough for me to go on at the moment.
- class bluemira.equilibria.shapes.KuiroukidisLCFS(var_dict: bluemira.utilities.opt_variables.VarDictT | None = None)
Bases:
bluemira.geometry.parameterisations.GeometryParameterisation[KuiroukidisLCFSOptVariables]Kuiroukidis last closed flux surface geometry parameterisation (adjusted).
- Parameters:
var_dict (bluemira.utilities.opt_variables.VarDictT | None)
- __slots__ = ()
- create_shape(label: str = 'LCFS', n_points: int = 1000) bluemira.geometry.wire.BluemiraWire
Make a CAD representation of the Kuiroukidis LCFS.
- Parameters:
label (str) – Label to give the wire
n_points (int) – Number of points to use when creating the Bspline representation
- Return type:
CAD Wire of the geometry
- bluemira.equilibria.shapes.flux_surface_johner(r_0: float, z_0: float, a: float, kappa_u: float, kappa_l: float, delta_u: float, delta_l: float, psi_u_neg: float, psi_u_pos: float, psi_l_neg: float, psi_l_pos: float, n: int = 100) bluemira.geometry.coordinates.Coordinates
Initial plasma shape parameterisation from HELIOS author J. Johner (CEA). Sets initial separatrix shape for the plasma core (does not handle divertor target points or legs). Can handle: - DN (positive, negative delta) [TESTED] - SN (positive, negative delta) (upper, lower) [TESTED]
- Parameters:
r_0 (float) – Major radius [m]
z_0 (float) – Vertical position of major radius [m]
a (float) – Minor radius [m]
kappa_u (float) – Upper elongation at the plasma edge (psi_n=1)
kappa_l (float) – Lower elongation at the plasma edge (psi_n=1)
delta_u (float) – Upper triangularity at the plasma edge (psi_n=1)
delta_l (float) – Lower triangularity at the plasma edge (psi_n=1)
psi_u_neg (float) – Upper inner angle [°]
psi_u_pos (float) – Upper outer angle [°]
psi_l_neg (float) – Lower inner angle [°]
psi_l_pos (float) – Lower outer angle [°]
n (int) – Number of point to generate on the flux surface
- Return type:
Plasma flux surface shape
- class bluemira.equilibria.shapes.JohnerLCFS(var_dict: bluemira.utilities.opt_variables.VarDictT | None = None)
Bases:
bluemira.geometry.parameterisations.GeometryParameterisation[JohnerLCFSOptVariables]Johner last closed flux surface geometry parameterisation.
- Parameters:
var_dict (bluemira.utilities.opt_variables.VarDictT | None)
- __slots__ = ()
- create_shape(label: str = 'LCFS', n_points: int = 1000) bluemira.geometry.wire.BluemiraWire
Make a CAD representation of the Johner LCFS.
- Parameters:
label (str) – Label to give the wire
n_points (int) – Number of points to use when creating the Bspline representation
- Return type:
CAD Wire of the geometry