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→voidReturn a descriptor for this object suitable for normalization-only usage.
type (inputParameters), intent(inout) :: descriptorlogical , intent(in ), optional :: includeClass, includeFileModificationTimes
powerNormalization→double precisionReturn 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\).
sigma8→double precisionReturn \(\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.
rootVariance→double precisionReturn \(\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, intent(in ) :: mass, time
rootVarianceLogarithmicGradient→double precisionReturn the logarithmic gradient of the root-variance of the cosmological density field with respect to mass.
double precision, intent(in ) :: mass, time
rootVarianceLogarithmicGradientTime→double precisionReturn the logarithmic gradient of the root-variance of the cosmological density field with respect to time.
double precision, intent(in ) :: mass, time
rootVarianceAndLogarithmicGradient→voidReturn the value and logarithmic gradient with respect to mass of the root-variance of the cosmological density field.
double precision, intent(in ) :: mass , timedouble precision, intent( out) :: rootVariance, rootVarianceLogarithmicGradient
mass→double precisionReturn the mass corresponding to the given
rootVarianceof the cosmological density field.double precision, intent(in ) :: rootVariance, time
growthIsMassDependent→logicalReturn 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,
where \(M_0=\)[massZeroPoint] (the mass at which the variance due is 1 at \(z=0\)), \(\alpha=\)[exponentMass], \(\beta=\)[exponentGrowthFactor].
Parameters
[massZeroPoint]— The mass, \(M_0\), in the artificial halo variance model.[exponentMass]— The exponent of mass, \(\alpha\), in the artificial halo variance model.[exponentGrowthFactor]— 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:
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.interpolantsTime— Compute the interpolating factors in time.fileWrite— Write the tabulated mass variance to file.fileRead— Read the tabulated mass variance from file.remakeTable— Return true if the table must be remade.
Parameters
[wavenumberReference]— The reference wavenumber at which the amplitude of the power spectrum is matched to that in the reference model.[amplitudeScalar]— 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](default0.8111d0) — The fractional mass fluctuation in the linear density field at the present day in spheres of radius 8 Mpc/h.[toleranceTopHat](default1.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](default4.0d-6) — The relative tolerance to use in integrating over the linear power spectrum to compute the cosmological mass variance.[nonMonotonicIsFatal](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](default.true.) — If true any failed integrals when evaluating \(\sigma(M)\) are treated as fatal errors. Otherwise a only a warning is issued.[monotonicInterpolation](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](default1.0d-12) — The tolerance in \(\mathrm{d}\log\sigma/\mathrm{d}\log M\) to allow before reporting errors when monotonic interpolation is used..[truncateAtParticleHorizon](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](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
varianceBackground— Compute the variance of the background at this time.
Parameters
[factorMassEnvironment](default1.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
[massResolutionMinimum](default5.0d9) — The minimum mass resolution to use when building merger trees.[massResolutionMaximum](defaulthuge(0.0d0)) — The maximum mass resolution to use when building merger trees.[massResolutionFractional](default1.0d-3) — The fraction of the tree’s root node mass to be used for the mass resolution when building merger trees.[scale](default1.0d0) — The multiplicative factor applied to the rms mass variance \(\sigma(M,t)\) returned by the wrappedcosmologicalMassVarianceClassobject, allowing renormalization of the power spectrum amplitude.