GWForge.population.redshift¶
Attributes¶
Classes¶
Functions¶
|
Madau-Dickinson redshift evolution \(\psi(z)\), normalised so that |
|
Power-law redshift evolution \(\psi(z) = (1 + z)^\lambda\). |
Module Contents¶
- GWForge.population.redshift.madau_dickinson_psi_of_z(redshift, gamma, kappa, z_peak)[source]¶
Madau-Dickinson redshift evolution \(\psi(z)\), normalised so that \(\psi(0) = 1\).
\[\psi(z) = \frac{(1 + z)^\gamma}{1 + ((1 + z) / (1 + z_p))^\kappa} \left[1 + (1 + z_p)^{-\kappa}\right]\]Matches
gwpopulation.models.redshift.MadauDickinsonRedshift.psi_of_z(Fishbach+ arXiv:1805.10270 Eq. 33; normalisation from Callister+ arXiv:2003.12152 Eq. 2). Written with plain arithmetic so it also accepts asympysymbol, as required byRedshift.transform().
- GWForge.population.redshift.power_law_psi_of_z(redshift, lamb)[source]¶
Power-law redshift evolution \(\psi(z) = (1 + z)^\lambda\).
Matches
gwpopulation.models.redshift.PowerLawRedshift.psi_of_z(Fishbach+ arXiv:1805.10270).
- class GWForge.population.redshift.Redshift(redshift_model, local_merger_rate_density, maximum_redshift, gps_start_time, analysis_time=YRJUL_SI, cosmology='Planck18', parameters={'gamma': 2.7, 'kappa': 5.6, 'z_peak': 1.9}, time_delay_model='inverse', time_delay_slope=1.0, time_delay_minimum=DEFAULT_TIME_DELAY_MINIMUM, H0=70, Om0=0.3, Ode0=0.7, Tcmb0=2.725, Ob0=None)[source]¶
-
- import_cosmology()[source]¶
Resolve this object’s cosmology specification.
Delegates to
GWForge.cosmology.astropy_cosmology(), which is the single place a GWForge cosmology specification is resolved, so that the redshifts a population is sampled from and the luminosity distances it is labelled with cannot come from two different universes.- Return type:
astropy.cosmology.FLRW
- differential_lookback_time(redshift)[source]¶
Derivative of lookback time t(z) with respect to z, in Gyr. See Eq.(A3) of <arXiv:2011.02717v3>. Vectorised over
redshift.
- time_delay_probability(tau)[source]¶
Formation->merger time-delay distribution, \(p(\tau)\).
Power-law model \(p(\tau) \propto \tau^{-\mathrm{slope}}\) supported on
[time_delay_minimum, age_of_universe]and zero elsewhere.slope = 1recovers the1/\tau(“inverse”) model. The normalisation is a global constant and cancels inrate_density(), so it is omitted here.
- rate_density(elements=1000)[source]¶
Merger-rate density \(R(z_m)\) as a function of merger redshift.
Convolves the star-formation rate with the time-delay distribution,
\[R(z_m) \propto \int_{z_m}^{\infty} \psi(z_f)\, p\!\left(t(z_f) - t(z_m)\right) \frac{dt}{dz_f}\, dz_f,\]where \(\psi\) is the SFR, \(p(\tau)\) the time-delay distribution (
time_delay_probability()), and \(t(z)\) the lookback time. The result is normalised and rescaled tolocal_merger_rate_densityat \(z_m = 0\). Replaces the previous pycbc + sympy implementation with direct vectorised numerical integration.- Returns:
merger rate density – Callable over
[0, maximum_redshift], in Mpc^-3 yr^-1.- Return type:
scipy.interpolate.interp1d
- coalescence_rate()[source]¶
Detector-frame merger rate per unit redshift, \(dR/dz\) (yr^-1).
\[\frac{dR}{dz} = R(z)\, \frac{1}{1 + z}\, \frac{dV_c}{dz},\]with \(dV_c/dz = 4\pi\, (dV_c/d\Omega/dz)\) the comoving volume element and the \(1/(1+z)\) factor converting source-frame to detector-frame time. Reproduces
pycbc.population.population_models.coalescence_rate.