Public Methods
The following methods are part of our publicly exported API.
Temperatures
Cosmology.T_cmb — FunctionT_cmb([u::Unitful.Unitlike,] c::AbstractCosmology)
T_cmb([u::Unitful.Unitlike,] c::AbstractCosmology, z)
T_cmb([u::Unitful.Unitlike,] z, Tcmb0)Return the temperature of the CMB at redshift z, in Kelvin. Will convert to compatible unit u if provided.
\[\text{T}_\text{CMB}(z) = \text{T}_\text{CMB,0} \times \left( 1+z \right)\]
Examples
julia> T_cmb(Cosmology.Planck18) ≈ 2.7255 * Unitful.K
true
julia> T_cmb(Cosmology.Planck18, 1.0) ≈ 5.451 * Unitful.K
true
julia> T_cmb(Unitful.°C, Cosmology.Planck18, 1.0) ≈ -267.69899999999996 * Unitful.°C
true
julia> T_cmb(1.0, 2.7255) ≈ 5.451 * Unitful.K
true
julia> T_cmb(1.0, 2.7255 * Unitful.K) ≈ 5.451 * Unitful.K
true
julia> T_cmb(Unitful.°C, 1.0, 2.7255 * Unitful.K) ≈ -267.69899999999996 * Unitful.°C
trueCosmology.T_nu — FunctionT_nu([u::Unitful.Unitlike,] c::AbstractCosmology [,z::Number])
T_nu(Tcmb0::Number [,z::Number])
T_nu(Tcmb0::u.Temperature [,z::Number])Return the neutrino temperature of the cosmology at redshift z in Kelvin. If z is not provided, will return neutrino temperature at z=0. Will convert to compatible unit u if provided.
\[\begin{aligned} \text{T}_{\nu,0} &= \frac{4}{11}^{\left(1/3\right)} \times \text{T}_\text{CMB,0} \newline \text{T}_\nu(z) &= \text{T}_{\nu,0} \times \left( 1+z \right) \end{aligned}\]
See, e.g., Equation 3.1.20 on page 154 of Weinberg's "Cosmology" for an explanation of the prefactor.
Examples
julia> T_nu(2.7255) ≈ 1.9453688391750839 * Unitful.K
true
julia> T_nu(Cosmology.Planck18) ≈ 1.9453688391750839 * Unitful.K
true
julia> T_nu(2.7255, 1) ≈ 3.8907376783501677 * Unitful.K
true
julia> T_nu(2.7255 * Unitful.K, 1) ≈ 3.8907376783501677 * Unitful.K
true
julia> T_nu(Cosmology.Planck18) ≈ 1.9453688391750839 * Unitful.K
true
julia> T_nu(Cosmology.Planck18, 1) ≈ 3.8907376783501677 * Unitful.K
trueHubble Factors
Cosmology.E — FunctionE(c::AbstractCosmology, z::Real)
E(z,h,OmegaM,OmegaK,OmegaL,OmegaG,Tcmb0,m_nu,Neff,w0=-1,wa=0)Return the Hubble parameter as a function of redshift, in units of H₀.
\[E(z) \equiv \frac{H(z)}{H_0} = \frac{H(z)}{h} \ \frac{1}{100 \ \text{km} \ \text{s}^{-1} \ \text{Mpc}^{-1}}\]
Examples
julia> E(Cosmology.Planck18,1.0)
1.7828937335017068Cosmology.H — FunctionH(c::AbstractCosmology, z::Real)Return the Hubble parameter as a function of redshift, in km / s / Mpc. From the Friedmann equation,
\[H^2 = \left( \frac{\dot{a}}{a} \right) = \frac{8 \pi G \rho}{3} - \frac{kc^2}{a^2}\]
where a is the cosmological scale factor, $\dot{a}$ is the time derivative of a, G is Newton's gravitational constant, c is the speed of light, $\rho$ is a mass density, and k is the curvature parameter. k is typically -1, 0, or 1; k=-1 corresponds to an open Universe (forever expanding), k=0 corresponds to a "flat" Universe with ρ==ρ_c, and k=1 corresponds to a closed Universe (eventual contraction). See also Ω_k.
Examples
julia> H(Cosmology.Planck18,1.0) ≈ 120.63059000872548 * Unitful.km / UnitfulAstro.Mpc / Unitful.s
trueCosmology.hubble_time — Functionhubble_time(c::AbstractCosmology, z::Real)Return $\frac{1}{\text{H}\left(z\right)}$ in Gyr.
Examples
julia> hubble_time(Cosmology.Planck18, 1.0) ≈ 8.105673872689037 * Unitful.Gyr
trueCosmology.hubble_dist — Functionhubble_dist(c::AbstractCosmology, z::Real)Return the speed of light times the Hubble time at redshift z in Mpc.
\[ D(z) = \frac{c}{H(z)}\]
Examples
julia> hubble_dist(Cosmology.Planck18,1.0) ≈ 2485.21090693758 * UnitfulAstro.Mpc
trueLengths and Volumes
Cosmology.comoving_radial_dist — Functioncomoving_radial_dist([u::Unitlike,] c::AbstractCosmology, [z₁,] z₂; kws...)Calculate the comoving radial distance (sometimes also called comoving line-of-sight distance) in Mpc at redshift z₂ as seen by an observer at z₁. Redshift z₁ defaults to 0 if omitted. Will convert to compatible unit u if provided. kws are integration options passed to QuadGK.quadgk.
\[\begin{aligned} D_R(z_1,z_2) = \frac{c}{H_0} \int_{z_1}^{z_2} \frac{1}{E(z)} \ dz = \frac{c}{H_0} \int_{a(z_2)}^{a(z_1)} \frac{1}{E(a^{\prime}) \, a^{\prime \, 2}} \ da^{\prime} \end{aligned}\]
Examples
julia> comoving_radial_dist(Cosmology.Planck18, 1.0) ≈ 3395.6344711515626 * UnitfulAstro.Mpc
true
julia> comoving_radial_dist(Cosmology.Planck18, 1.0, 2.0) ≈ 1912.5544127348157 * UnitfulAstro.Mpc
true
julia> comoving_radial_dist(UnitfulAstro.Gpc, Cosmology.Planck18, 1.0, 2.0) ≈ 1.9125544127348157 * UnitfulAstro.Gpc
trueCosmology.comoving_transverse_dist — Functioncomoving_transverse_dist(c::AbstractCosmology, z₁, z₂ = nothing; kws...)Returns the comoving transverse distance between two points with an angular separation of 1 radian at redshift z₂ as measured by an observer at redshift z₁. This is the same as the comoving distance if Ω_k is zero (as in the current concordance ΛCDM model). Will convert to compatible unit u if provided. kws are integration options passed to quadgk.
\[D_T(z_1,z_2) = \begin{cases} \frac{c}{H_0 \ \sqrt{\Omega_{k,0}}} \ \text{sinh} \left( \frac{H_0 \ \sqrt{\Omega_{k,0}}}{c} \ D_R(z_1,z_2) \right) \ &\forall \ \Omega_k > 0 \newline D_R(z_1,z_2) \ &\forall \ \Omega_k = 0 \newline \frac{c}{H_0 \ \sqrt{-\Omega_{k,0}}} \ \text{sin} \left( \frac{H_0 \ \sqrt{-\Omega_{k,0}}}{c} \ D_R(z_1,z_2) \right) \ &\forall \ \Omega_k < 0 \newline \end{cases}\]
where $D_R(z_1,z_2)$ is the comoving radial distance.
Examples
julia> comoving_transverse_dist(Cosmology.Planck18, 1.0) == comoving_radial_dist(Cosmology.Planck18, 1.0)
true
julia> comoving_transverse_dist(cosmology(OmegaK=0.1), 1.0) ≈ 3331.2531218753124 * UnitfulAstro.Mpc
trueCosmology.angular_diameter_dist — Functionangular_diameter_dist([u::Unitlike,] c::AbstractCosmology, [z₁,] z₂; kws...)Ratio of the proper transverse size in Mpc of an object at redshift z₂ to its angular size in radians, as seen by an observer at z₁. Redshift z₁ defaults to 0 if omitted. Will convert to compatible unit u if provided. kws are integration options passed to quadgk.
\[\begin{aligned} D_A(z_1,z_2) &= \frac{D_T(z_1, z_2)}{1+z_2} = D_T(z_1, z_2) \, a(z_2) \newline D_A(z) &= \frac{D_T(z)}{1+z} = D_T(z) \, a(z) \end{aligned}\]
where $D_T$ is the comoving transverse distance and a is the scale factor.
Examples
julia> angular_diameter_dist(Cosmology.Planck18, 1.0) ≈ 1697.8172355757813 * UnitfulAstro.Mpc
true
julia> angular_diameter_dist(Cosmology.Planck18, 1.0, 2.0) ≈ 637.5181375782719 * UnitfulAstro.Mpc
true
julia> angular_diameter_dist(UnitfulAstro.Gpc, Cosmology.Planck18, 1.0, 2.0) ≈ 0.6375181375782719 * UnitfulAstro.Gpc
trueCosmology.luminosity_dist — Functionluminosity_dist([u::Unitlike,] c::AbstractCosmology, z; kws...)Bolometric luminosity distance in Mpc at redshift z. Will convert to compatible unit u if provided. kws... are integration options passed to QuadGK.quadgk.
\[D_L(z) = D_T(z) \times \left(1 + z\right) = \frac{D_T(z)}{a\left(z\right)}\]
where $D_T$ is the comoving transverse distance and a is the scale factor.
Examples
julia> luminosity_dist(Cosmology.Planck18, 1.0) ≈ 6791.268942303125 * UnitfulAstro.Mpc
true
julia> luminosity_dist(UnitfulAstro.Gpc, Cosmology.Planck18, 1.0) ≈ 6.791268942303125 * UnitfulAstro.Gpc
trueCosmology.distmod — Functiondistmod(c::AbstractCosmology, z; kws...)Distance modulus in magnitudes at redshift z. kws... are integration options passed to QuadGK.quadgk.
\[\mu(z) = 5 \times \text{log}_{10} \left( D_L(z) \right) + 25\]
where $D_L(z)$ is the luminosity distance in units of Mpc.
Examples
julia> distmod(Cosmology.Planck18,1.0)
44.159754646918806Cosmology.comoving_volume — Functioncomoving_volume([u::Unitlike,] c::AbstractCosmology, z; kws...)Comoving volume in Gpc^3 at redshift z. Will convert to compatible unit u if provided. kws... are integration options passed to QuadGK.quadgk.
Examples
julia> comoving_volume(Cosmology.Planck18, 1.0) ≈ 164.00285577357855 * UnitfulAstro.Gpc^3
true
julia> comoving_volume(UnitfulAstro.Mpc^3, Cosmology.Planck18, 1.0) ≈ 1.6400285577357855e11 * UnitfulAstro.Mpc^3
trueCosmology.comoving_volume_element — Functioncomoving_volume_element([u::Unitlike,] c::AbstractCosmology, z; kws...)Comoving volume element in Gpc out to redshift z. Will convert to compatible unit u if provided. kws... are integration options passed to QuadGK.quadgk.
Examples
julia> comoving_volume_element(Cosmology.Planck18, 1.0) ≈ 28.655310479576467 * UnitfulAstro.Gpc^3
true
julia> comoving_volume_element(UnitfulAstro.Mpc^3, Cosmology.Planck18, 1.0) ≈ 2.8655310479576466e10 * UnitfulAstro.Mpc^3
trueCosmology.sound_horizon — Functionsound_horizon(c::AbstractCosmology)Return the sound horizon length (in Mpc), given by Equation 26 in Eisenstein & Hu 1998.
\[s = \frac{44.5 \, \text{log} \left( 9.83 / \Omega_0 / h^2 \right)}{ \sqrt{ 1 + 10 \, \left( \Omega_b \, h^2 \right)^{3/4} } } \ \text{Mpc}\]
Examples
julia> sound_horizon(Cosmology.Planck18) ≈ 150.10339082768203 * UnitfulAstro.Mpc
trueTimes
Cosmology.age — Functionage([u::Unitlike,] c::AbstractCosmology, z; kws...)Return the age of the universe in Gyr at redshift z. Will convert to compatible unit u if provided. kws... are integration options passed to QuadGK.quadgk.
Examples
julia> age(Cosmology.Planck18, 0.0) ≈ 13.786885301987898 * Unitful.Gyr
true
julia> age(UnitfulAstro.Myr, Cosmology.Planck18, 0.0) ≈ 13786.885301987897 * Unitful.Myr
trueCosmology.lookback_time — Functionlookback_time([u::Unitlike,] c::AbstractCosmology, z; kws...)Difference between age at redshift 0 and age at redshift z in Gyr. Will convert to compatible unit u if provided. kws... are integration options passed to QuadGK.quadgk.
Examples
julia> lookback_time(Cosmology.Planck18, 1.0) ≈ 7.935542002084356 * Unitful.Gyr
true
julia> lookback_time(UnitfulAstro.Myr, Cosmology.Planck18, 1.0) ≈ 7935.542002084356 * Unitful.Myr
trueCosmology.matter_radiation_equality — Functionmatter_radiation_equality(c::AbstractCosmology)Return the redshift of matter-radiation equality. This is computed as Equation 2 in Eisenstein and Hu 1998. I previously had a different formula but couldn't figure out where it came from.
Examples
julia> matter_radiation_equality(Cosmology.Planck18) ≈ 3413.1817608491015
trueDensities
Cosmology.ρ_c — Functionρ_c([u::UnitLike,] c::AbstractCosmology, z)
ρ_c([u::UnitLike,] z, h, OmegaM, OmegaK, OmegaL, Tcmb0, m_nu, Neff, w0=-1, wa=0)
ρ_c(h::Number,E::Number)The critical density of the Universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\begin{aligned} \rho_{0,c} &\equiv \frac{3 H_0^2}{8 \pi G} = 1.878 \times 10^{-29} \ h^2 \ \text{g/cm}^3 \newline \rho_{c}(z) &\equiv \frac{3 H(z)^2}{8 \pi G} = 1.878 \times 10^{-29} \ \left(E(z) \times h\right)^2 \ \text{g/cm}^3 \end{aligned}\]
where E is the Hubble factor in units of $H_0$. See, e.g., Equation 1.5.28 on page 57 of Weinberg's "Cosmology" for more information.
Examples
julia> ρ_c(Cosmology.Planck18, 0.0) ≈ 8.598814256619093e-30 * Unitful.g / Unitful.cm^3
true
julia> ρ_c(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 127.05281539744222 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_m — Functionρ_m([u::UnitLike,] c::AbstractCosmology, z)
ρ_m([u::UnitLike,] z, h, OmegaM)The matter density of the universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\rho_m(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{m,0} \ (1+z)^3 \ \text{g/cm}^3 \]
Examples
julia> ρ_m(Cosmology.Planck18, 0.0) ≈ 2.6627088227046682e-30 * Unitful.g / Unitful.cm^3
true
julia> ρ_m(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 39.343174815971956 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_b — Functionρ_b([u::UnitLike,] c::AbstractCosmology, z)
ρ_b([u::UnitLike,] z, h, OmegaB)The baryon density of the universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\rho_b(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{b,0} \ (1+z)^3 \ \text{g/cm}^3 \]
Examples
julia> ρ_b(Cosmology.Planck18, 0.0) ≈ 4.21083934146637e-31 * Unitful.g / Unitful.cm^3
true
julia> ρ_b(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 6.221776370012746 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_dm — Functionρ_dm([u::UnitLike,] c::AbstractCosmology, z)
ρ_dm([u::UnitLike,] z, h, OmegaDM)The dark matter density of the universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\rho_{dm}(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{dm,0} \ (1+z)^3 \ \text{g/cm}^3 \]
Examples
julia> ρ_dm(Cosmology.Planck18, 0.0) ≈ 2.2416248885580312e-30 * Unitful.g / Unitful.cm^3
true
julia> ρ_dm(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 33.12139844595921 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_Λ — Functionρ_Λ([u::UnitLike,] c::AbstractCosmology, z)
ρ_Λ([u::UnitLike,] z, h, Ω_Λ, w0=-1, wa=0)The dark energy density of the universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided. For a general dark energy equation of state $w(z)$,
\[\rho_\Lambda(z) = \rho_{\Lambda,0} \ \exp \left[ 3 \int_0^z \frac{1+w \left( z^\prime\right)}{1+z^\prime} \ dz^\prime \ \right]\]
For constant $w$, this reduces to
\[\rho_\Lambda(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{\Lambda,0} \ \left(1+z\right)^{3\left(1+w\right)} \ \text{g/cm}^3 \]
and for a cosmological constant $w=-1$,
\[\rho_\Lambda(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{\Lambda,0} \ \text{g/cm}^3 \]
See also de_density_scale.
Examples
julia> ρ_Λ(Cosmology.Planck18, 0.0) ≈ 5.923261432735804e-30 * Unitful.g / Unitful.cm^3
true
julia> ρ_Λ(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 87.51986249556084 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
true
julia> ρ_Λ(Cosmology.Planck18, 0.0) == ρ_Λ(Cosmology.Planck18, 1.0)
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_γ — Functionρ_γ([u::UnitLike,] c::AbstractCosmology, z)
ρ_γ([u::UnitLike,] z, h, Ω_γ)The photon matter density of the universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\rho_\gamma(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{\gamma,0} \ (1+z)^4 \ \text{g/cm}^3 \]
Examples
julia> ρ_γ(Cosmology.Planck18, 0.0) ≈ 4.645092477570597e-34 * Unitful.g / Unitful.cm^3
true
julia> ρ_γ(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 0.006863412319931541 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_ν — Functionρ_ν([u::UnitLike,] c::AbstractCosmology, z)
ρ_ν([u::UnitLike,] z, h, Tcmb0, Neff, m_nu, N_nu=Cosmology.n_nu(Neff))The neutrino energy density of the universe at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\rho_\nu(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{\nu,0} \ (1+z)^4 \ \text{g/cm}^3 \]
Examples
julia> ρ_ν(Cosmology.Planck18, 0.0) ≈ 1.2379491930863195e-32 * Unitful.g / Unitful.cm^3
true
julia> ρ_ν(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 0.1829146735894845 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.ρ_r — Functionρ_r([u::UnitLike,] c::AbstractCosmology, z)
ρ_r([u::UnitLike,] z, h, Tcmb0, Neff, m_nu, N_nu=Cosmology.n_nu(Neff))The energy density of the universe in relativistic species at redshift z, in g / cm^3. Will convert to compatible unit u if provided.
\[\rho_r(z) = 1.878 \times 10^{-29} \ h^2 \ \Omega_{r,0} \ (1+z)^4 \ \text{g/cm}^3 \]
Examples
julia> ρ_r(Cosmology.Planck18, 0.0) ≈ 1.2844001178620257e-32 * Unitful.g / Unitful.cm^3
true
julia> ρ_r(UnitfulAstro.Msun / UnitfulAstro.kpc^3, Cosmology.Planck18, 0.0) ≈ 0.18977808590941606 * UnitfulAstro.Msun / UnitfulAstro.kpc^3
true
julia> ρ_r(Cosmology.Planck18, 0.0) ≈ ρ_γ(Cosmology.Planck18, 0.0) + ρ_ν(Cosmology.Planck18, 0.0)
trueNotes
If you want the critical density with the dimensionless hubble constant h factored out (i.e., in units of [density * h^2] you need to divide this result by h^2.
Cosmology.lagrangianR — FunctionlagrangianR([u::UnitLike,] M::Union{Real,u.Mass}, c::AbstractCosmology, z::Real=0.0)The Lagrangian radius (in Mpc) of a sphere of mass M (in solar masses) at redshift z; i.e. the radius of a sphere that would enclose the mass M given the mean density of the universe at redshift z.
\[R(z) = \left( \frac{3 M}{4π \ ρ_m(z)} \right)^{1/3}\]
Examples
julia> lagrangianR(10^12, Cosmology.Planck18, 0.0) == lagrangianR(10^12, Cosmology.Planck18) == lagrangianR(10^12 * UnitfulAstro.Msun, Cosmology.Planck18) ≈ 1.8239544820629736 * UnitfulAstro.Mpc
true
julia> lagrangianR(Unitful.m, 10^12, Cosmology.Planck18, 0.0) ≈ 5.628135454962416e22 * Unitful.m
trueNotes
If you want to provide M in units of Msun / h and get out R in units of Mpc / h, then you need to multiply the result by h^(2/3); i.e. R[Mpc/h] = lagrangianR(M[Msun/h], c, z) * h^(2/3).
Cosmology.lagrangianM — FunctionlagrangianM([u::UnitLike,] R::Union{Number,u.Length}, c::AbstractCosmology, z::Number=0.0)The Lagrangian mass of a sphere of radius R in Mpc at redshift z; i.e. the mass enclosed by a sphere of radius R at redshift z given the mean density of the universe at redshift z.
\[M(z) = \frac{4π}{3} R^3 ρ_m(z)\]
Examples
julia> lagrangianM(8.0, Cosmology.Planck18, 0.0) == lagrangianM(8.0, Cosmology.Planck18) == lagrangianM(8.0 * UnitfulAstro.Mpc, Cosmology.Planck18) ≈ 8.437775631070308e13 * UnitfulAstro.Msun
true
julia> lagrangianM(Unitful.kg, 8.0, Cosmology.Planck18, 0.0) ≈ 1.6777756351555676e44 * Unitful.kg
trueNotes
If you want to provide R in units of Mpc / h and get out M in units of Msun / h, then you need to divide the result by h^2; i.e. M[Msun/h] = lagrangianR(R[Mpc/h], c, z) / h^2.
Cosmology.Ω_m — FunctionΩ_m(c::AbstractCosmology,z)
Ω_m(c::AbstractCosmology)
Ω_m(z,h,OmegaM,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Density of matter at redshift z in units of the critical density. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_m(Cosmology.Planck18)
0.30966
julia> Ω_m(Cosmology.Planck18, 1.0)
0.7793349973337195Cosmology.Ω_b — FunctionΩ_b(c::AbstractCosmology,z)
Ω_b(c::AbstractCosmology)
Ω_b(z,h,OmegaM,OmegaB,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Density of baryons at redshift z in units of the critical density. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_b(Cosmology.Planck18)
0.04897
julia> Ω_b(Cosmology.Planck18, 1.0)
0.1232449616335085Cosmology.Ω_dm — FunctionΩ_dm(c::AbstractCosmology,z)
Ω_dm(c::AbstractCosmology)
Ω_dm(z,h,OmegaM,OmegaB,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Density of dark matter at redshift z in units of the critical density. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_dm(Cosmology.Planck18)
0.26069
julia> Ω_dm(Cosmology.Planck18, 1.0)
0.6560900357002108Cosmology.Ω_k — FunctionΩ_k(c::AbstractCosmology,z)
Ω_k(c::AbstractCosmology)
Ω_k(z,h,OmegaM,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Energy density of curvature at redshift z in units of the critical density. When called without a redshift, returns the z=0 value.
\[\Omega_k = -\frac{k}{H_0^2}\]
where k is the curvature parameter in the Friedmann equation. See Equations 1.5.19 and 1.5.40 on pages 56 and 60 in Weinberg's "Cosmology".
Examples
julia> Ω_k(Cosmology.Planck18) == Ω_k(Cosmology.Planck18, 1.0) == 0.0
true
julia> Ω_k( cosmology(OmegaK = 0.1 ), 1.0)
0.11498515039500401
julia> Ω_k( cosmology(OmegaK = -0.1 ), 1.0)
-0.13895112427920248Cosmology.Ω_γ — FunctionΩ_γ(c::AbstractCosmology,z)
Ω_γ(c::AbstractCosmology)
Ω_γ(z,h,OmegaM,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Energy density of photons at redshift z in units of the critical density. Calculated from T_cmb. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_γ(Cosmology.Planck18) ≈ 5.4020151371393475e-5
true
julia> Ω_γ(Cosmology.Planck18, 10000.0) ≈ 0.44150560915009124
trueCosmology.Ω_ν — FunctionΩ_ν(c::AbstractCosmology,z)
Ω_ν(z,h,OmegaM,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Energy density in neutrinos at redshift z in units of the critical density. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_ν(Cosmology.Planck18) ≈ 0.0014396743040860382
true
julia> Ω_ν(Cosmology.Planck18, 10000.0) ≈ 0.30543520244776484
trueCosmology.Ω_r — FunctionΩ_r(c::AbstractCosmology,z)
Ω_r(c::AbstractCosmology)
Ω_r(z,h,OmegaM,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Energy density in radiation at redshift z in units of the critical density. Evaluated as Ω_γ(c,z) + Ω_ν(c,z); sum of photons and neutrinos. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_r(Cosmology.Planck18) ≈ 0.0014936944554574316
true
julia> Ω_r(Cosmology.Planck18, 10000.0) ≈ 0.7469408115978561
true
julia> Ω_r(Cosmology.Planck18, 10000.0) == Ω_γ(Cosmology.Planck18, 10000.0) + Ω_ν(Cosmology.Planck18, 10000.0)
trueCosmology.Ω_Λ — FunctionΩ_Λ(c::AbstractCosmology,z)
Ω_Λ(c::AbstractCosmology)
Ω_Λ(z,h,OmegaM,OmegaK,OmegaL,Tcmb0,m_nu,Neff,w0=-1,wa=0)Energy density in dark energy at redshift z in units of the critical density. When called without a redshift, returns the z=0 value.
Examples
julia> Ω_Λ(Cosmology.Planck18)
0.6888463055445425
julia> Ω_Λ(Cosmology.Planck18, 1.0)
0.21670623978512665Cosmology.δc — Functionδc(c::AbstractCosmology, z::Real)
δc(z::Real, h, OmegaM, OmegaK, OmegaL, Tcmb0, m_nu, Neff, w0=-1, wa=0)The linear overdensity threshold for halo collapse as calculated from the spherical top-hat collapse model. The canonical value for an Einstein-de-Sitter (EdS) cosmology is $3/5(3π/2)^{2/3} ≈ 1.686$ but there is a redshift dependence for non-EdS cosmologies. We adopt the fitting function from Nakamura & Suto 1997 (Equation C-28 in the ArXiv version), also given by Equation 56 in Chisari et al. 2019.
Examples
julia> δc(Cosmology.Planck18, 0.0) ≈ 1.675910191226453
true
julia> δc(Cosmology.Planck18, 10.0) ≈ 1.686388790734125
true
julia> δc(Cosmology.Planck18,10^10,0.0,1.0,1.5) ≈ 1.712312778883257
trueδc(c::AbstractCosmology, M::Union{Real,AbstractArray}, z::Real, mx::Real, gx::Real=1.5)Return the linear overdensity threshold for collapse in warm dark matter cosmologies as formulated by Equations 7–10 in Benson 2013. M is the halo mass, z is the redshift of evaluation, mx is the mass of the WDM particle in keV, and gx is the effective degrees of freedom with 1.5 being the expected value for a fermionic spin-1/2 particle.
Examples
julia> δc(Cosmology.Planck18, 10^10, 0.0, 1.0, 1.5) ≈ 1.712312778883257
trueEquation Solving
Cosmology.z_at_value — Functionz_at_value(c::AbstractCosmology, func::Function, fval; zmin=1e-8, zmax=1000.0, kws...)Find the redshift z at which func(c,z) == fval for cosmology instance c. This uses a numerical root finder and searches between zmin and zmax. Additional kws... are passed through to Roots.find_zero.
Examples
julia> z_at_value(Cosmology.Planck18, scale_factor, 0.8) ≈ 0.25
true
julia> z_at_value(Cosmology.Planck18, distmod, 50.0) ≈ 9.5f0
trueNot all cosmological methods defined in this module are monotonic with redshift, such that there may not be a unique solution over the default zmin->zmax (e.g., angular_diameter_dist). In this case, you need to make sure that zmin and zmax properly bracket the solution you are looking for.
julia> z_at_value(Cosmology.Planck18, angular_diameter_dist, 1250.0; zmin=1e-5, zmax=2.5)
0.46668775101654764
julia> z_at_value(Cosmology.Planck18, angular_diameter_dist, 1250.0; zmin=2.5, zmax=10.0)
5.595635655898187Miscellaneous
Cosmology.scale_factor — Functionscale_factor(z::Real)
scale_factor(c::AbstractCosmology, z::Real)Calculate the scale factor at redshift z. The scale factor is defined as $a=\frac{1}{1+z}$. The method that takes a cosmology is for compatibility with z_at_value. The derivative with respect to z is available as ∇scale_factor.
Examples
julia> scale_factor(1.0)
0.5
julia> scale_factor(Cosmology.Planck18, 1.0)
0.5Cosmology.∇scale_factor — Function∇scale_factor(z::Real) or ∇scale_factor(c::AbstractCosmology, z::Real)Calculate the derivative of the scale factor at redshift z with respect to z; $\frac{da}{dz} = -\frac{1}{\left(1+z\right)^2}$.
Examples
julia> ∇scale_factor(1.0)
-0.25
julia> ∇scale_factor(Cosmology.Planck18, 1.0)
-0.25