BaseGrowthFactor¶
- class hmf.cosmology.growth_factor.BaseGrowthFactor(cosmo: FLRW, **model_parameters)[source]¶
General class for a growth factor calculation.
Sub-classes must implement
_d_plus_unnormalized(), which should take a single argument – the redshift,z– and return an array or float (depending on the input type) of the un-normalized growth factor, \(D^+(a)\). Most typically, the normalization of this function is such that \(D^+(a) \approx a\) at early times, but this is not enforced, and does not affect the user-facing methods of the class.Sub-classes may also implement
growth_rate(), which takes the same argument and returns the growth rate:\[f(a) = d\ln D^+ / d\ln a.\]If this is not implemented, then the growth rate will be calculated by taking the derivative of a spline fitted to the growth factor numerically, and in which the growth factor is evaluated on a logarithmic grid of the scale factor from
aminto 1 in steps ofdlna.Attributes
- references: ClassVar[tuple[str, ...]] = ()¶
References to cite when this model is used, each a formatted citation string. Subclasses inherit their parent’s references unless they set their own.
Methods
- dlne_dlna(z)[source]¶
Compute the derivative of ln(E(a)) with respect to ln(a).
This is useful for the growth factor, which has terms \(E'(a)/E(a) \equiv (1/a)*dlnE/dlna\) in its definition.
This implementation simply uses the exact definition from astropy of E(a) and writes down the derivative analytically. The dark-energy density scales as \(\rho_{\rm DE}(a) \propto \exp(-3\int (1+w)\, d\ln a)\), so its logarithmic derivative is \(-3(1+w(a))\), which vanishes only for a cosmological constant. With massive neutrinos, the radiation term is \(\Omega_\gamma (1 + N(z)) a^{-4}\), where \(N(z)\) is astropy’s
nu_relative_density. \(N\) varies with time as the neutrinos become non-relativistic, so its derivative is included, computed by central finite difference in \(\ln(1+z)\).
- classmethod get_models() Mapping[str, type]¶
Get a read-only mapping of all implemented models for this component.
The mapping is a live view of the registry, so it shows models registered later, but it can not be used to add or remove models.
- growth_factor(z)[source]¶
Compute the normalized growth factor, \(D(a) = D^+(a)/D^+(a=1)\).
- Parameters:
z (array_like) – Redshift.
- Returns:
gf – The growth factor at z.
- Return type:
array_like