Open jecampagne opened 2 years ago
Hi, concerning radial_comoving_distance at low z (< 5e-2)
radial_comoving_distance
def radial_comoving_distance(cosmo, a, log10_amin=-3, steps=256)
the number of steps needs to be increased to 1024.
1024
If one sets
cosmo_jax = Cosmology( Omega_c=0.2545, Omega_b=0.0485, h=0.682, Omega_k=0.0, w0=-1.0, wa=0.0 ### other params if needed ) z = jnp.logspace(-3, 3,100) grad_lum = vmap(grad(luminosity_distance), in_axes=(None,0))(cosmo_jax,z2a(z)) # direct integration d(d_L)/dOmega_k(cosmo_jax) func = lambda a: -0.5*const.rh * (-1.+1./a**2) / (a**2 * Esqr(cosmo_jax, a)**1.5) dLdOmega_k = quadIntegral(func,z2a(z),1.0,ClenshawCurtisQuad(100))*(1+z) plt.figure(figsize=(10,10)) plt.plot(z,grad_lum.Omega_c/cosmo_jax.h,ls='-',lw=3,label=r"$\frac{\partial d_L}{\partial \Omega_c}$") plt.plot(z,grad_lum.Omega_b/cosmo_jax.h,ls='--',lw=3, label=r"$\frac{\partial d_L}{\partial \Omega_b}$") plt.plot(z,grad_lum.h/cosmo_jax.h,ls='--',lw=3, label=r"$\frac{\partial d_L}{\partial h}$") plt.plot(z,grad_lum.Omega_k/cosmo_jax.h,ls='-',lw=3, label=r"$\frac{\partial d_L}{\partial \Omega_k}$") plt.plot(z,grad_lum.w0/cosmo_jax.h,ls='--',lw=3, label=r"$\frac{\partial d_L}{\partial w_0}$") plt.plot(z,grad_lum.wa/cosmo_jax.h,ls='--',lw=3, label=r"$\frac{\partial d_L}{\partial w_a}$") plt.plot(z,dLdOmega_k/cosmo_jax.h, ls='--',lw=3,c='k',label=r"Direct Integ: $\frac{\partial d_L}{\partial \Omega_k}$") plt.yscale("symlog") plt.xscale("log") plt.legend() plt.grid();
leads to a perfect matching (black vs red curves)
While using 256 steps leads to a discrepancy (black vs red curves):
Hi, concerning
radial_comoving_distance
at low z (< 5e-2)the number of steps needs to be increased to
1024
.If one sets
leads to a perfect matching (black vs red curves)
While using 256 steps leads to a discrepancy (black vs red curves):