nbodykit.cosmology.power.zeldovich¶
Functions
|
Returns True if the given object is iterable. |
|
Helper function to vectorize functions on array inputs |
Classes
|
An integral over \(j_0\) needed to compute the Zeldovich power. |
|
An integral over \(j_1\) needed to compute the Zeldovich power. |
|
The matter power spectrum in the Zel’dovich approximation. |
|
The integral needed to evaluate the density auto spectrum in the Zel’dovich approximation. |
-
class
nbodykit.cosmology.power.zeldovich.
ZeldovichJ0
(k)[source]¶ An integral over \(j_0\) needed to compute the Zeldovich power. The integral is given by:
\[I_0(r) = \int \frac{dk}{2\pi^2} P_L(k) j_0(kr).\]- Attributes
- postfac
- prefac
Methods
__call__
(self, F[, axis, extrap, keeppads, …])Evaluate the integral.
check
(self, F)Rough sanity checks on the input function.
inv
(self)Invert the transform.
matrix
(self[, full, keeppads])Return matrix form of the integral transform.
-
__call__
(self, F, axis=-1, extrap=False, keeppads=False, convonly=False)¶ Evaluate the integral.
- Parameters
F ((.., Nin, ..) array_like) – input function
axis (int, optional) – axis along which to integrate
extrap ({bool, 'const'} or 2-tuple, optional) – Method to extrapolate F. For a 2-tuple, the two elements are for the left and right pads, whereas a single value applies to both ends. Options are: * True: power-law extrapolation using the end segment * False: zero padding * ‘const’: constant padding with the end point value
keeppads (bool, optional) – whether to keep the padding in the output
convonly (bool, optional) – whether to skip the scaling by _xfac_ and _yfac_, useful for evaluating integral with multiple kernels
- Returns
y ((Nin,) or (N,) ndarray) – logarithmically spaced output argument
G ((…, Nin, …) or (…, N, …) ndarray) – output function
Notes
y, and G are unpadded by default. Pads can be kept if keeppads is set to True.
-
check
(self, F)¶ Rough sanity checks on the input function.
-
inv
(self)¶ Invert the transform.
After calling this method, calling the instance will do the inverse transform. Calling this twice return the instance to the original transform.
-
matrix
(self, full=False, keeppads=True)¶ Return matrix form of the integral transform.
- Parameters
- Returns
If full is False, output separately
a ((1, N) or (1, Nin) ndarray) – “After” factor, _yfac_ or yfac
b ((N,) or (Nin,) ndarray) – “Before” factor, _xfac_ or xfac
C ((N, N) or (Nin, Nin) ndarray) – Convolution matrix, circulant
Otherwise, output the full matrix, combining a, b, and C
M ((N, N) or (Nin, Nin) ndarray) – Full transformation matrix, M = a * C * b
Notes
M, a, b, and C are padded by default. Pads can be discarded if keeppads is set to False.
This is not meant for evaluation with matrix multiplication but in case one is interested in the tranformation itself.
When N is even and lowring is False, \(C C^{-1}\) and \(M M^{-1}\) can deviate from the identity matrix because the imaginary part of the Nyquist modes are dropped.
The convolution matrix is a circulant matrix, with its first row and first column being the Fourier transform of \(u_m\). Indeed \(u_m\) are the eigenvalues of the convolution matrix, that are diagonalized by the DFT matrix. Thus \(1/u_m\) are the eigenvalues of the inverse convolution matrix.
-
class
nbodykit.cosmology.power.zeldovich.
ZeldovichJ1
(k)[source]¶ An integral over \(j_1\) needed to compute the Zeldovich power. The integral is given by:
\[I_1(r) = \int \frac{dk}{2\pi^2} P_L(k) \frac{j_1(kr)}{kr}.\]- Attributes
- postfac
- prefac
Methods
__call__
(self, F[, axis, extrap, keeppads, …])Evaluate the integral.
check
(self, F)Rough sanity checks on the input function.
inv
(self)Invert the transform.
matrix
(self[, full, keeppads])Return matrix form of the integral transform.
-
__call__
(self, F, axis=-1, extrap=False, keeppads=False, convonly=False)¶ Evaluate the integral.
- Parameters
F ((.., Nin, ..) array_like) – input function
axis (int, optional) – axis along which to integrate
extrap ({bool, 'const'} or 2-tuple, optional) – Method to extrapolate F. For a 2-tuple, the two elements are for the left and right pads, whereas a single value applies to both ends. Options are: * True: power-law extrapolation using the end segment * False: zero padding * ‘const’: constant padding with the end point value
keeppads (bool, optional) – whether to keep the padding in the output
convonly (bool, optional) – whether to skip the scaling by _xfac_ and _yfac_, useful for evaluating integral with multiple kernels
- Returns
y ((Nin,) or (N,) ndarray) – logarithmically spaced output argument
G ((…, Nin, …) or (…, N, …) ndarray) – output function
Notes
y, and G are unpadded by default. Pads can be kept if keeppads is set to True.
-
check
(self, F)¶ Rough sanity checks on the input function.
-
inv
(self)¶ Invert the transform.
After calling this method, calling the instance will do the inverse transform. Calling this twice return the instance to the original transform.
-
matrix
(self, full=False, keeppads=True)¶ Return matrix form of the integral transform.
- Parameters
- Returns
If full is False, output separately
a ((1, N) or (1, Nin) ndarray) – “After” factor, _yfac_ or yfac
b ((N,) or (Nin,) ndarray) – “Before” factor, _xfac_ or xfac
C ((N, N) or (Nin, Nin) ndarray) – Convolution matrix, circulant
Otherwise, output the full matrix, combining a, b, and C
M ((N, N) or (Nin, Nin) ndarray) – Full transformation matrix, M = a * C * b
Notes
M, a, b, and C are padded by default. Pads can be discarded if keeppads is set to False.
This is not meant for evaluation with matrix multiplication but in case one is interested in the tranformation itself.
When N is even and lowring is False, \(C C^{-1}\) and \(M M^{-1}\) can deviate from the identity matrix because the imaginary part of the Nyquist modes are dropped.
The convolution matrix is a circulant matrix, with its first row and first column being the Fourier transform of \(u_m\). Indeed \(u_m\) are the eigenvalues of the convolution matrix, that are diagonalized by the DFT matrix. Thus \(1/u_m\) are the eigenvalues of the inverse convolution matrix.
-
class
nbodykit.cosmology.power.zeldovich.
ZeldovichPower
(cosmo, redshift, transfer='CLASS', nmax=32)[source]¶ The matter power spectrum in the Zel’dovich approximation.
- Parameters
-
cosmo
¶ the object giving the cosmological parameters
- Type
class:Cosmology, astropy.cosmology.FLRW
-
Plin
¶ the linear power spectrum class used to compute the Zel’dovich power
- Type
class:LinearPower
- Attributes
Methods
__call__
(self, k)Return the Zel’dovich power in \(h^{-3} \mathrm{Mpc}^3 at :attr:\) and
k
, wherek
is in units of \(h \mathrm{Mpc}^{-1}\).-
__call__
(self, k)[source]¶ Return the Zel’dovich power in \(h^{-3} \mathrm{Mpc}^3 at :attr:\) and
k
, wherek
is in units of \(h \mathrm{Mpc}^{-1}\).- Parameters
k (float, array_like) – the wavenumbers to evaluate the power at
-
property
attrs
¶ The meta-data dictionary
-
property
redshift
The redshift of the power spectrum
-
property
sigma8
The amplitude of matter fluctuations at \(z=0\).
-
class
nbodykit.cosmology.power.zeldovich.
ZeldovichPowerIntegral
(r, n)[source]¶ The integral needed to evaluate the density auto spectrum in the Zel’dovich approximation.
This evaluates:
\[I(k, n) = 4\pi \int dr r^2 \mathrm{exp}\left[-0.5k^2(X(r) + Y(r)) \right] \left (\frac{k Y(r)}{r} \right)^n j_n(kr).\]- Attributes
- postfac
- prefac
Methods
__call__
(self, F[, axis, extrap, keeppads, …])Evaluate the integral.
check
(self, F)Rough sanity checks on the input function.
inv
(self)Invert the transform.
matrix
(self[, full, keeppads])Return matrix form of the integral transform.
-
__call__
(self, F, axis=-1, extrap=False, keeppads=False, convonly=False)¶ Evaluate the integral.
- Parameters
F ((.., Nin, ..) array_like) – input function
axis (int, optional) – axis along which to integrate
extrap ({bool, 'const'} or 2-tuple, optional) – Method to extrapolate F. For a 2-tuple, the two elements are for the left and right pads, whereas a single value applies to both ends. Options are: * True: power-law extrapolation using the end segment * False: zero padding * ‘const’: constant padding with the end point value
keeppads (bool, optional) – whether to keep the padding in the output
convonly (bool, optional) – whether to skip the scaling by _xfac_ and _yfac_, useful for evaluating integral with multiple kernels
- Returns
y ((Nin,) or (N,) ndarray) – logarithmically spaced output argument
G ((…, Nin, …) or (…, N, …) ndarray) – output function
Notes
y, and G are unpadded by default. Pads can be kept if keeppads is set to True.
-
check
(self, F)¶ Rough sanity checks on the input function.
-
inv
(self)¶ Invert the transform.
After calling this method, calling the instance will do the inverse transform. Calling this twice return the instance to the original transform.
-
matrix
(self, full=False, keeppads=True)¶ Return matrix form of the integral transform.
- Parameters
- Returns
If full is False, output separately
a ((1, N) or (1, Nin) ndarray) – “After” factor, _yfac_ or yfac
b ((N,) or (Nin,) ndarray) – “Before” factor, _xfac_ or xfac
C ((N, N) or (Nin, Nin) ndarray) – Convolution matrix, circulant
Otherwise, output the full matrix, combining a, b, and C
M ((N, N) or (Nin, Nin) ndarray) – Full transformation matrix, M = a * C * b
Notes
M, a, b, and C are padded by default. Pads can be discarded if keeppads is set to False.
This is not meant for evaluation with matrix multiplication but in case one is interested in the tranformation itself.
When N is even and lowring is False, \(C C^{-1}\) and \(M M^{-1}\) can deviate from the identity matrix because the imaginary part of the Nyquist modes are dropped.
The convolution matrix is a circulant matrix, with its first row and first column being the Fourier transform of \(u_m\). Indeed \(u_m\) are the eigenvalues of the convolution matrix, that are diagonalized by the DFT matrix. Thus \(1/u_m\) are the eigenvalues of the inverse convolution matrix.