Pylians provides routines to smooth fields with several filters. The ingredients needed are:

  • field. This is a 3D float numpy array that contains the input field to be smoothed.

  • BoxSize. This is the size of the box with the input density field.

  • R. This is the smoothing scale.

  • grid. This is the grid size of the input field, i.e. field.shape[0].

  • threads. Number of openmp threads to be used.

  • Filter. Filter to use. 'Top-Hat' or 'Gaussian'.

  • W_k. This is a 3D complex64 numpy array containing the Fourier-transform of the filter. Notice that when smoothing a discrete field, like the one stored on a regular grid, the Fourier-transform of the filter need to be computed in the same way as the for the field, i.e. through DFT instead of FT.

An example is this

import smoothing_library as SL

BoxSize = 75.0 #Mpc/h
R       = 5.0  #Mpc.h
grid    = field.shape[0]
Filter  = 'Top-Hat'
threads = 28

# compute FFT of the filter
W_k = SL.FT_filter(BoxSize, R, grid, Filter, threads)

# smooth the field
field_smoothed = SL.field_smoothing(field, W_k, threads)