bluemira.equilibria.plasma
Representation of the plasma
Classes
PlasmaCoil object for finite difference representation of toroidal current |
|
NoPlasmaCoil object for dummy representation of a plasma-less state. |
Functions
|
Decorator for handling array calls to PlasmaCoil methods. |
Module Contents
- bluemira.equilibria.plasma.treat_xz_array(func)
Decorator for handling array calls to PlasmaCoil methods.
- Returns:
Wrapped function
- Raises:
EquilibriaError – x and z must be specified and the same dimension
- class bluemira.equilibria.plasma.PlasmaCoil(plasma_psi: numpy.typing.NDArray[numpy.float64], j_tor: numpy.typing.NDArray[numpy.float64] | None, grid: bluemira.equilibria.grid.Grid)
PlasmaCoil object for finite difference representation of toroidal current carrying plasma.
- Parameters:
plasma_psi (numpy.typing.NDArray[numpy.float64]) – Psi contribution from the plasma on the grid
j_tor (numpy.typing.NDArray[numpy.float64] | None) – Toroidal current density distribution from the plasma on the grid
grid (bluemira.equilibria.grid.Grid) – Grid object on which the finite difference representation of the plasma should be constructed
Notes
Uses direct summing of Green’s functions to avoid SIGKILL and MemoryErrors when using very dense grids (e.g. CREATE).
- _grid
- _set_j_tor(j_tor: numpy.typing.NDArray[numpy.float64] | None)
- Parameters:
j_tor (numpy.typing.NDArray[numpy.float64] | None)
- _set_funcs(plasma_psi: numpy.typing.NDArray[numpy.float64])
- Parameters:
plasma_psi (numpy.typing.NDArray[numpy.float64])
- _Bx_func(x, z)
- _dBx_func(x, z)
- _Bz_func(x, z)
- _dBz_func(x, z)
- _check_in_grid(x, z)
- _convolve(func, x, z)
Map a Green’s function across the grid at a point, without crashing or running out of memory.
- Returns:
Mapped greens function
- Raises:
EquilibriaError – No known toroidal current distribution
- psi(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Poloidal magnetic flux at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Poloidal magnetic flux at the points [V.s/rad]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- Bx(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Radial magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Radial magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- dBx(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Radial magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Radial magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- Bz(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Vertical magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Vertical magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- dBz(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Vertical magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Vertical magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- Bp(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Poloidal magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Poloidal magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- plot(ax=None) bluemira.equilibria.plotting.PlasmaCoilPlotter
Plot the PlasmaCoil.
- Parameters:
ax – The matplotlib axes on which to plot the PlasmaCoil
- Returns:
The plasma coil plotter object
- Return type:
- __repr__() str
- Returns:
A simple string representation of the PlasmaCoil.
- Return type:
str
- class bluemira.equilibria.plasma.NoPlasmaCoil(grid: bluemira.equilibria.grid.Grid)
NoPlasmaCoil object for dummy representation of a plasma-less state.
- Parameters:
grid (bluemira.equilibria.grid.Grid) – Grid object on which the finite difference representation of the plasma should be constructed
- grid
- psi(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Poloidal magnetic flux at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Poloidal magnetic flux at the points [V.s/rad]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- Bx(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Radial magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Radial magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- Bz(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Vertical magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Vertical magnetic field at the points [T]
Notes
If both x and z are None, defaults to the full map on the grid.
- Bp(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Poloidal magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Poloidal magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
- dBx(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Radial magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Radial coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Radial magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- dBz(x: numpy.typing.ArrayLike | None = None, z: numpy.typing.ArrayLike | None = None) float | numpy.typing.NDArray[numpy.float64]
Vertical magnetic field at x, z
- Parameters:
x (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate
z (numpy.typing.ArrayLike | None) – Vertical coordinates at which to calculate.
- Returns:
Vertical magnetic field at the points [T]
- Return type:
float | numpy.typing.NDArray[numpy.float64]
Notes
If both x and z are None, defaults to the full map on the grid.
- _return_zeros(x, z)