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