SharpK

class hmf.density_field.filters.SharpK(k, power, **model_parameters)[source]

Fourier-space top-hat window function.

This class is based on Filter, which can be consulted for details of how to instantiate it.

Notes

The real-space filter is

\[F(r) = \frac{\sin(r/R) -(r/R)\cos(r/R)}{2\pi^2r^3},\]

for a filter scale of R.

The fourier-transform of the filter is

\[W(x=kR) = H(kR-1)\]

where H is the Heaviside step-function. The mass-assignment is

\[m(R) = \frac{4\pi}{3}[cR]^3\bar{\rho},\]

where c is a free parameter, typically c~2.5. The derivative of the window function is

\[\frac{dW}{d\ln x}(x=kR) = \delta_D(x-1),\]

where \(\delta_D\) is the Dirac delta. Furthermore, the derivative of the mass variance takes a particularly simple form in this filter:

\[\frac{d\ln \sigma^2}{d \ln R} = -\frac{P(1/R)}{2\pi^2\sigma^2(R)R^3}.\]

Methods

__init__(k, power, **model_parameters)
dlnr_dlnm(r)

Compute the derivative of log radius with log mass.

For the usual \(m\propto r^3\) mass assignment, this is just 1/3.

Parameters:

r (array_like) – Radii.

dlnss_dlnm(r)

Compute the logarithmic slope of mass variance with mass.

This is an important quantity, and is used directly to calculate \(\frac{dn}{dm}\).

Parameters:

r (array_like) – Radii.

dlnss_dlnr(r)[source]

Compute the derivative of the mass variance with radius.

Parameters:

r (array_like) – Radii

Returns:

dlnss_dlnr – The derivative of the the mass variance with radius.

Return type:

array_like

Notes

Given a prescription for how radius grows with mass (typically with a log-slope of 1/3, and set in dlnr_dlnm()), this specifies the quantity \(\frac{d \ln \sigma^2}{d\ln m}\).

The general formula is

\[\frac{d\ln \sigma^2}{d\ln R} = \frac{1}{\pi^2\sigma^2} \int_0^\infty W(kR) \frac{dW(kR)}{d\ln(kR)} P(k)k^2 dk\]
dw_dlnkr(kr)[source]

Compute the derivative of the (fourier-transformed) filter with \(\ln(kr)\).

Parameters:

kr (array_like) – Scale(s) at which the derivative is evaluated.

Notes

In terms of \(\frac{dw^2}{dm}\), which is a commonly used quantity, this has the relationship

\[w\frac{dw}{d\ln r} = \frac{2}{r}\frac{dw^2}{dm}\frac{dm}{dr}.\]
classmethod get_models() dict[str, type]

Get a dictionary of all implemented models for this component.

k_space(kr)[source]

Fourier-transform of the real-space filter.

Parameters:

kr (array_like) – The scales at which to return the filter function

Returns:

w – The filter in fourier space, len(kr)

Return type:

array_like

mass_to_radius(m, rho_mean)[source]

Return radius of a region of space given its mass.

Parameters:
  • m (array_like) – Masses

  • rho_mean (float) – Mean density of the Universe.

Returns:

r – The corresponding radii to m

Return type:

array_like

Notes

The units of m don’t matter as long as they are consistent with rho_mean.

nu(r, delta_c=1.68647)

Peak height, \(\frac{\delta_c^2}{\sigma^2(r)}\).

Parameters:
  • r (array_like) – Radii

  • delta_c (float, optional) – Critical overdensity for collapse.

radius_to_mass(r, rho_mean)[source]

Return mass of a region of space given its radius.

Parameters:
  • r (array_like) – Radii

  • rho_mean (float) – Mean density of the Universe.

Returns:

m – The corresponding masses to r

Return type:

float or array of floats

Notes

The units of r don’t matter as long as they are consistent with rho_mean.

real_space(R, r)[source]

Filter definition in real space.

Parameters:
  • R (float) – The smoothing scale

  • r (array_like) – The radial co-ordinate

sigma(r, order=0)[source]

Calculate the nth-moment of the smoothed density field, \(\sigma_n(r)\).

Note

This is not \(\sigma_n^2(r)\)!

Parameters:
  • r (float or array_like) – The radii of the spheres at which to calculate the nth moment.

  • order (int, optional) – The order of the moment. Default 0 corresponds to common mass variance.

Returns:

sigma – The square root of the moment at r.

Return type:

array_like

Notes

The general definition for the nth-moment of the smoothed density field is (see Bardeen et al. 1986, Eq 4.6c)

\[\sigma^2_n(R) = \frac{1}{2\pi^2} \int_0^\infty dk\ k^{2(1+n)} P(k) W^2(kR)\]