Overview

Users can specify cosmological parameters by creating a new Cosmology object or by using one of the builtin cosmologies (see Available Cosmologies).

When constructing a new Cosmology object, parameter values should be specified as keyword parameters. The parameters that can be specified are:

Parameter Description
H0 The Hubble constant at z=0, in km/s/Mpc
Om0 The matter density/critical density at z=0
Ob0 The baryon density/critical density at z=0
Ode0 The dark energy density/critical density at z=0
w0 The dark energy equation of state
Tcmb0 The temperature of the CMB in K at z=0
Neff The the effective number of neutrino species
m_nu The mass of neutrino species in eV
sigma8 The the mass variance on the scale of R=8 Mpc/h at z=0, which sets the normalization of the linear power spectrum
n_s The the spectral index of the primoridal power spectrum
flat if True, automatically set Ode0 such that Ok0 is zero

Note

The pyRSD.rsd.cosmology.Cosmology class is nearly identical to the astropy.cosmology.FLRW object, with the addition of the n_s and sigma8 attributes

Examples

In [1]: from pyRSD.rsd import cosmology

# initialize a new Cosmology
In [2]: cosmo = cosmology.Cosmology(H0=70, sigma8=0.80, n_s=0.96)

# access parameters as attribute or key entry
In [3]: print(cosmo['sigma8'], cosmo.sigma8)
0.8 0.8

# compute the comoving distance to z = 0.4
In [4]: Dz = cosmo.comoving_distance(0.4)

In [5]: print(Dz)
1547.1248846885328 Mpc

The Cosmology class is read-only; changes to the parameters should be performed with the clone() function, which creates a copy of the class, with any specified changes.

In [6]: new_cosmo = cosmo.clone(sigma8=0.85, Om0=0.27)

# compare sigma8
In [7]: print(cosmo.sigma8, new_cosmo.sigma8)
0.8 0.85

# compare Om0
In [8]: print(cosmo.Om0, new_cosmo.Om0)
0.31 0.27

# everything else stays the same
In [9]: print(cosmo.n_s, new_cosmo.n_s)
0.96 0.96