swiftsimio.visualisation.projection_backends.gpu module
- swiftsimio.visualisation.projection_backends.gpu.kernel(r: float32, H: float32)[source]
Single precision kernel implementation for swiftsimio.
This is the Wendland-C2 kernel as shown in Denhen & Aly (2012) [1].
- Parameters:
r (float32) – radius used in kernel computation
H (float32) – kernel width (i.e. radius of compact support for the kernel)
- Returns:
Contribution to the density by the particle
- Return type:
float32
References
Notes
This is the cuda-compiled version of the kernel, designed for use within the gpu backend. It has no double precision cousin.
- swiftsimio.visualisation.projection_backends.gpu.scatter_gpu(x: float64, y: float64, m: float32, h: float32, box_x: float64, box_y: float64, img: float32)[source]
Creates a weighted scatter plot
Computes contributions to from particles with positions (x,`y`) with smoothing lengths h weighted by quantities m. This includes periodic boundary effects.
- Parameters:
x (np.array[float64]) – array of x-positions of the particles. Must be bounded by [0, 1].
y (np.array[float64]) – array of y-positions of the particles. Must be bounded by [0, 1].
m (np.array[float32]) – array of masses (or otherwise weights) of the particles
h (np.array[float32]) – array of smoothing lengths of the particles
box_x (float64) – box size in x, in the same rescaled length units as x and y. Used for periodic wrapping.
box_y (float64) – box size in y, in the same rescaled length units as x and y. Used for periodic wrapping.
img (np.array[float32]) – The output image.
Notes
Explicitly defining the types in this function allows for a performance improvement. This is the cuda version, and as such can only be ran on systems with a supported GPU. Do not call this where cuda is not available (checks can be performed using
swiftsimio.optional_packages.CUDA_AVAILABLE
)
- swiftsimio.visualisation.projection_backends.gpu.scatter(x: float64, y: float64, m: float32, h: float32, res: int, box_x: float64 = 0.0, box_y: float64 = 0.0) ndarray [source]
Parallel implementation of scatter
Creates a weighted scatter plot. Computes contributions from particles with positions (x,`y`) with smoothing lengths h weighted by quantities m. This includes periodic boundary effects.
- Parameters:
x (np.array[float64]) – array of x-positions of the particles. Must be bounded by [0, 1].
y (np.array[float64]) – array of y-positions of the particles. Must be bounded by [0, 1].
m (np.array[float32]) – array of masses (or otherwise weights) of the particles
h (np.array[float32]) – array of smoothing lengths of the particles
res (int) – the number of pixels along one axis, i.e. this returns a square of res * res.
box_x (float64) – box size in x, in the same rescaled length units as x and y. Used for periodic wrapping.
box_y (float64) – box size in y, in the same rescaled length units as x and y. Used for periodic wrapping.
- Returns:
pixel grid of quantity
- Return type:
np.array[float32, float32, float32]
See also
scatter
Creates 2D scatter plot from SWIFT data
Notes
Explicitly defining the types in this function allows a performance improvement.
- swiftsimio.visualisation.projection_backends.gpu.scatter_parallel(x: float64, y: float64, m: float32, h: float32, res: int, box_x: float64 = 0.0, box_y: float64 = 0.0) ndarray
Parallel implementation of scatter
Creates a weighted scatter plot. Computes contributions from particles with positions (x,`y`) with smoothing lengths h weighted by quantities m. This includes periodic boundary effects.
- Parameters:
x (np.array[float64]) – array of x-positions of the particles. Must be bounded by [0, 1].
y (np.array[float64]) – array of y-positions of the particles. Must be bounded by [0, 1].
m (np.array[float32]) – array of masses (or otherwise weights) of the particles
h (np.array[float32]) – array of smoothing lengths of the particles
res (int) – the number of pixels along one axis, i.e. this returns a square of res * res.
box_x (float64) – box size in x, in the same rescaled length units as x and y. Used for periodic wrapping.
box_y (float64) – box size in y, in the same rescaled length units as x and y. Used for periodic wrapping.
- Returns:
pixel grid of quantity
- Return type:
np.array[float32, float32, float32]
See also
scatter
Creates 2D scatter plot from SWIFT data
Notes
Explicitly defining the types in this function allows a performance improvement.