Mass Variance of Cosmological Density Field

Class providing the rms mass variance \(\sigma(M,t)\) of the cosmological density field—the standard deviation of the linear density contrast when smoothed on the scale enclosing mass \(M\) at cosmic time \(t\). The variance is the fundamental ingredient of the Press-Schechter and excursion-set formalisms: the halo mass function, merger tree branching rates, and bias all depend on \(\sigma(M)\) and its logarithmic gradient \(\mathrm{d}\ln\sigma/\mathrm{d}\ln M\). Implementations typically filter the linear matter power spectrum through a window function (e.g. top-hat in real space) and integrate over wavenumber, with normalization set by \(\sigma_8\).

Default implementation: cosmologicalMassVarianceFilteredPower

Methods

descriptorNormalizationOnly

Return a descriptor for this object suitable for normalization-only usage.

  • type(inputParameters) descriptor [inout]

  • logical includeClass (optional) [in]

  • logical includeFileModificationTimes (optional) [in]

powerNormalizationdouble precision

Return the overall amplitude normalization of the linear matter power spectrum, used to scale the dimensionless power \(\Delta^2(k)\) so that the integrated variance matches the observed \(\sigma_8\).

sigma8double precision

Return \(\sigma_8\), the rms linear density fluctuation smoothed with a top-hat filter of radius \(8\,h^{-1}\,\mathrm{Mpc}\), which sets the overall normalization of the matter power spectrum.

rootVariancedouble precision

Return \(\sigma(M,t)\), the rms linear density contrast smoothed on the scale enclosing mass \(M\) at cosmic time \(t\), computed from the filtered linear matter power spectrum and used as the fundamental input to excursion-set and Press-Schechter halo statistics.

  • double precision mass [in]

  • double precision time [in]

rootVarianceLogarithmicGradientdouble precision

Return the logarithmic gradient of the root-variance of the cosmological density field with respect to mass.

  • double precision mass [in]

  • double precision time [in]

rootVarianceLogarithmicGradientTimedouble precision

Return the logarithmic gradient of the root-variance of the cosmological density field with respect to time.

  • double precision mass [in]

  • double precision time [in]

rootVarianceAndLogarithmicGradient

Return the value and logarithmic gradient with respect to mass of the root-variance of the cosmological density field.

  • double precision mass [in]

  • double precision time [in]

  • double precision rootVariance [out]

  • double precision rootVarianceLogarithmicGradient [out]

massdouble precision

Return the mass corresponding to the given rootVariance of the cosmological density field.

  • double precision rootVariance [in]

  • double precision time [in]

growthIsMassDependentlogical

Return true if the growth of \(\sigma(M,t)\) with cosmic time is mass-dependent (e.g. in warm or fuzzy dark matter models where the transfer function suppresses power on small scales), requiring the variance to be recomputed at each mass when the epoch changes.

cosmologicalMassVarianceArtificialHalos

The mass variance of cosmological density fields is computed by adding to the variance of another class to mimic that associated with the formation of artificial halos. Specifically,

\[\sigma^2(M,t) \rightarrow \sigma^2(M,t) + \left(\frac{M}{M_0}\right)^\alpha D^{2\beta}(t),\]

where \(M_0=\)[massZeroPoint] (the mass at which the variance due is 1 at \(z=0\)), \(\alpha=\)[exponentMass], \(\beta=\)[exponentGrowthFactor].

Parameters

  • [massZeroPoint] (real) — The mass, \(M_0\), in the artificial halo variance model.

  • [exponentMass] (real) — The exponent of mass, \(\alpha\), in the artificial halo variance model.

  • [exponentGrowthFactor] (real) — The exponent of growth factor, \(\beta\), in the artificial halo variance model.

cosmologicalMassVarianceFilteredPower

Mass variance of cosmological density fields computed from a filtered power spectrum:

\[\sigma^2(M) = {1 \over 2 \pi^2} \int_0^\infty P(k) T^2(k) W^2(k) k^2 \mathrm{d}k\]

where \(P(k)\) is the primordial power spectrum (see powerSpectrumPrimordial), \(T(k)\) is the transfer function (see transferFunction), and \(W(k)\) is the power spectrum variance window function (see powerSpectrumWindowFunction).

The normalization of the mass variance is specified via the [sigma_8] parameter, which defines the linear theory root-variance of the density field in spheres of radii \(8h^{-1}\)Mpc. Note that when computing the normalization of the power spectrum to match the specified value of \(\sigma_8\) a top-hat real-space window function is used (as per the definition of \(\sigma_8\)), unless a different window function is explicitly defined via the [powerSpectrumWindowFunctionTopHat] parameter.

The mass variance, \(\sigma(M)\), is found by integration over the linear theory power spectrum, with the specified power spectrum window function. The fractional tolerance for this integration can be set via the [tolerance] parameter. (The normalization of \(\sigma(M)\) to give the desired \(\sigma_8\) always uses a top-hat window function. For this integration the tolerance can be set via the [toleranceTopHat] parameter.) This is tabulated across the required range.

Cubic spline interpolation is then used to interpolate in this table to give \(\sigma(M)\) at any required value of \(M\). The tabulation is always forced to be monotonically decreasing with \(M\). However, the interpolation is not necessarily monotonic—for example in cases where \(\sigma(M)\) becomes constant or close to constant as a function of \(M\) the interpolation can become non-monotonic over some ranges of \(M\). If strict monotonicity is required set [monotonicInterpolation]=true. This causes a monotonic spline interpolator to be used instead which guarantees monotonicity.

(Default implementation)

Methods

retabulate

Tabulate cosmological mass variance.

  • double precision mass (optional) [in]

  • double precision time (optional) [in]

interpolantsTime

Compute the interpolating factors in time.

  • double precision time [in]

  • integer i [out]

  • double precision h [out]

fileWrite

Write the tabulated mass variance to file.

fileRead

Read the tabulated mass variance from file.

remakeTablelogical

Return true if the table must be remade.

  • double precision mass (optional) [in]

  • double precision time (optional) [in]

Parameters

  • [wavenumberReference] (real) — The reference wavenumber at which the amplitude of the power spectrum is matched to that in the reference model.

  • [amplitudeScalar] (real) — The amplitude of the primordial scalar power spectrum, \(A_\mathrm{s}\), such that \(P_\chi(k) = A_\mathrm{s} (k/k_\mathrm{s0})^{n_\mathrm{s}-1}\) with \(k_\mathrm{s0}=0.05\) Mpc\(^{-1}\).

  • [sigma_8] (real; default 0.8111d0) — The fractional mass fluctuation in the linear density field at the present day in spheres of radius 8 Mpc/h. Default from: Planck Collaboration et al. 2020; TT,TE,EE\(+\)lowE\(+\)lensing.

  • [toleranceTopHat] (real; default 1.0d-6) — The relative tolerance to use in integrating over the linear power spectrum using a top-hat (real space) window function to compute the cosmological mass variance.

  • [tolerance] (real; default 4.0d-6) — The relative tolerance to use in integrating over the linear power spectrum to compute the cosmological mass variance.

  • [nonMonotonicIsFatal] (boolean; default .true.) — If true any non-monotonicity in the tabulated \(\sigma(M)\) is treated as a fatal error. Otherwise a only a warning is issued.

  • [integrationFailureIsFatal] (boolean; default .true.) — If true any failed integrals when evaluating \(\sigma(M)\) are treated as fatal errors. Otherwise a only a warning is issued.

  • [monotonicInterpolation] (boolean; default .false.) — If true use a monotonic cubic spline interpolator to interpolate in the \(\sigma(M)\) table. Otherwise use a standard cubic spline interpolator. Use of the monotonic interpolator can be helpful is \(\sigma(M)\) must be strictly monotonic but becomes a very weak function of \(M\) at low masses.

  • [rootVarianceLogarithmicGradientTolerance] (real; default 1.0d-12) — The tolerance in \(\mathrm{d}\log\sigma/\mathrm{d}\log M\) to allow before reporting errors when monotonic interpolation is used..

  • [truncateAtParticleHorizon] (boolean; default .false.) — If true then integration over the power spectrum is truncated at a wavenumber \(k=1/H_\mathrm{p}(t_0)\), where \(H_\mathrm{p}(t_0)\) is the comoving distance to the particle horizon at the present epoch. Otherwise, integration continues to \(k=0\).

  • [storeTabulations] (boolean; default .true.) — If true then tabulated \(\sigma(M)\) results are stored to file for future re-use.

cosmologicalMassVariancePeakBackgroundSplit

The cosmological mass variance is computed by taking the variance from some other mass variance class, \(\sigma^2(M)\), and offsetting it by the variance of the background in the peak-background split model, \(\sigma^2(M_\mathrm{e})\), where \(M_\mathrm{e}\) is the mass contained within the region defined as the background.

Methods

varianceBackgrounddouble precision

Compute the variance of the background at this time.

  • double precision time [in]

Parameters

  • [factorMassEnvironment] (real; default 1.0d0) — The background variance is computed as \(\sigma(\alpha M_\mathrm{env})^2\) where \(M_\mathrm{env}\) is the environment mass and \(\alpha=\)[factorMassEnvironment].

cosmologicalMassVarianceScaled

The mass variance of cosmological density fields is computed by scaling that from another class by a factor of [scale].

Parameters

  • [scale] (real; default 1.0d0) — The multiplicative factor applied to the rms mass variance \(\sigma(M,t)\) returned by the wrapped cosmologicalMassVarianceClass object, allowing renormalization of the power spectrum amplitude.