nbodykit.algorithms.fftcorr

Classes

FFTCorr(first, mode[, Nmesh, BoxSize, …]) Algorithm to compute the 1d or 2d correlation and/or multipoles in a periodic box, using a Fast Fourier Transform (FFT).
class nbodykit.algorithms.fftcorr.FFTCorr(first, mode, Nmesh=None, BoxSize=None, second=None, los=[0, 0, 1], Nmu=5, dr=None, rmin=0.0, poles=[])[source]

Algorithm to compute the 1d or 2d correlation and/or multipoles in a periodic box, using a Fast Fourier Transform (FFT).

This computes the power spectrum as the square of the Fourier modes of the density field, which are computed via a FFT. Then it is transformed back to obtain the correlation function.

Results are computed when the object is inititalized. See the documenation of run() for the attributes storing the results.

Note

This is very similar to FFTPower.

Parameters:
  • first (CatalogSource, MeshSource) – the source for the first field; if a CatalogSource is provided, it is automatically converted to MeshSource using the default painting parameters (via to_mesh())
  • mode ({'1d', '2d'}) – compute either 1d or 2d power spectra
  • Nmesh (int, optional) – the number of cells per side in the particle mesh used to paint the source
  • BoxSize (int, 3-vector, optional) – the size of the box
  • second (CatalogSource, MeshSource, optional) – the second source for cross-correlations
  • los (array_like , optional) – the direction to use as the line-of-sight; must be a unit vector
  • Nmu (int, optional) – the number of mu bins to use from \(\mu=[0,1]\); if mode = 1d, then Nmu is set to 1
  • dr (float, optional) – the linear spacing of r bins to use; if not provided, the fundamental mode of the box is used
  • rmin (float, optional) – the lower edge of the first r bin to use
  • poles (list of int, optional) – a list of multipole numbers ell to compute \(\xi_\ell(r)\) from \(\xi(r,\mu)\)

Methods

load(output[, comm]) Load a saved FFTPower result.
run() Compute the correlation function in a periodic box, using FFTs.
save(output) Save the FFTPower result to disk.
run()[source]

Compute the correlation function in a periodic box, using FFTs. This function returns nothing, but attaches several attributes to the class:

edges

array_like – the edges of the wavenumber bins

corr

BinnedStatistic – a BinnedStatistic object that holds the measured \(\xi(r)\) or \(\xi(r,\mu)\). It stores the following variables:

  • r :

    the mean value for each r bin

  • mu : mode=2d only

    the mean value for each mu bin

  • corr :

    real array storing the correlation function

  • modes :

    the number of modes averaged together in each bin

poles

BinnedStatistic or None – a BinnedStatistic object to hold the multipole results \(\xi_\ell(r)\); if no multipoles were requested by the user, this is None. It stores the following variables:

  • r :
    the mean value for each r bin
  • power_L :
    complex array storing the real and imaginary components for the \(\ell=L\) multipole
  • modes :
    the number of modes averaged together in each bin
attrs

dict – dictionary of meta-data; in addition to storing the input parameters, it includes the following fields computed during the algorithm execution:

  • shotnoise : float
    the power Poisson shot noise, equal to \(V/N\), where \(V\) is the volume of the box and N is the total number of objects; if a cross-correlation is computed, this will be equal to zero
  • N1 : int
    the total number of objects in the first source
  • N2 : int
    the total number of objects in the second source