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.