Cosmology#
RUBIX cosmology module#
For RUBIX we implemented a cosmology modlue that is similar to the astropy cosmology module and is jax compatible. Therefore, we follow https://github.com/ArgonneCPAC/dsps/blob/main/dsps/cosmology/flat_wcdm.py
We assume Planck15 cosmology: The present day matter density Om0 is set to 0.3089. The present day dark energy equation of state w0 is set to -1. The dark energy equation of state parameter wa is set to 0.0. The Hubble constant h is set to 0.6774.
# NBVAL_IGNORE_OUTPUT
from rubix.cosmology import PLANCK15 as rubix_cosmo
# Compare to astropy
from astropy.cosmology import Planck15 as astropy_cosmo
print(rubix_cosmo)
print(astropy_cosmo)
Comparison to astropy.cosmology#
We can now compare our RUBIX cosmology module with the astropy cosmology module. We show the comparison for the angular diameter distance, the comoving distance, the lookback to z and the age.
# NBVAL_IGNORE_OUTPUT
z = 0.2
print("Angular Diameter Distance")
print("rubix cosmo: ",rubix_cosmo.angular_diameter_distance_to_z(z))
print("astropy cosmo: ",astropy_cosmo.angular_diameter_distance(z))
print("Comoving Distance")
print("rubix cosmo: ",rubix_cosmo.comoving_distance_to_z(z))
print("astropy cosmo: ",astropy_cosmo.comoving_distance(z))
print("lookback to z")
print("rubix cosmo: ",rubix_cosmo.lookback_to_z(z))
print("astropy cosmo: ",astropy_cosmo.lookback_time(z))
print("Age")
print("rubix cosmo: ",rubix_cosmo.age_at_z(z))
print("astropy cosmo: ",astropy_cosmo.age(z))
from rubix.cosmology.utils import trapz
import jax.numpy as jnp
x = jnp.array([0, 1, 2, 3])
y = jnp.array([0, 1, 4, 9])
print(trapz(x, y))
from rubix.cosmology import PLANCK15 as rubix_cosmo
import jax.numpy as jnp
#from rubix.cosmology.base import scale_factor_to_redshift
scale_factor = jnp.array(0.5)
result = rubix_cosmo.scale_factor_to_redshift(jnp.array(0.5))
print(result) # Output: 1.0
result2 = rubix_cosmo.comoving_distance_to_z(0.5)
print(result2) # Output: 0.0