def check_power(cosmo): """ Check that power spectrum and sigma functions can be run. """ # Types of scale factor a = 0.9 a_arr = np.linspace(0.2, 1., 5) # Types of wavenumber input (scalar, list, array) k_scl = 1e-1 k_lst = [1e-4, 1e-3, 1e-2, 1e-1, 1e0] k_arr = np.logspace(-4., 0., 5) # Types of smoothing scale, R R_scl = 8. R_lst = [1., 5., 10., 20., 50., 100.] R_arr = np.array([1., 5., 10., 20., 50., 100.]) # linear_matter_power assert_(all_finite(ccl.linear_matter_power(cosmo, k_scl, a))) assert_(all_finite(ccl.linear_matter_power(cosmo, k_lst, a))) assert_(all_finite(ccl.linear_matter_power(cosmo, k_arr, a))) assert_raises(TypeError, ccl.linear_matter_power, cosmo, k_scl, a_arr) assert_raises(TypeError, ccl.linear_matter_power, cosmo, k_lst, a_arr) assert_raises(TypeError, ccl.linear_matter_power, cosmo, k_arr, a_arr) # nonlin_matter_power assert_(all_finite(ccl.nonlin_matter_power(cosmo, k_scl, a))) assert_(all_finite(ccl.nonlin_matter_power(cosmo, k_lst, a))) assert_(all_finite(ccl.nonlin_matter_power(cosmo, k_arr, a))) assert_raises(TypeError, ccl.nonlin_matter_power, cosmo, k_scl, a_arr) assert_raises(TypeError, ccl.nonlin_matter_power, cosmo, k_lst, a_arr) assert_raises(TypeError, ccl.nonlin_matter_power, cosmo, k_arr, a_arr) # sigmaR assert_(all_finite(ccl.sigmaR(cosmo, R_scl))) assert_(all_finite(ccl.sigmaR(cosmo, R_lst))) assert_(all_finite(ccl.sigmaR(cosmo, R_arr))) # sigmaV assert_(all_finite(ccl.sigmaV(cosmo, R_scl))) assert_(all_finite(ccl.sigmaV(cosmo, R_lst))) assert_(all_finite(ccl.sigmaV(cosmo, R_arr))) # sigma8 assert_(all_finite(ccl.sigma8(cosmo)))
def test_sigmaR_smoke(r): a = 0.8 sig = ccl.sigmaR(COSMO, r, a) assert np.all(np.isfinite(sig)) assert np.shape(sig) == np.shape(r)
def test_sigma8_consistent(): assert np.allclose(ccl.sigma8(COSMO), COSMO['sigma8']) assert np.allclose(ccl.sigmaR(COSMO, 8 / COSMO['h'], 1), COSMO['sigma8'])
plt.loglog(k, Pk_lin, 'k', linewidth=2, label='Linear') plt.loglog(k, Pk_nonlin, 'g', linewidth=2, label='Non-linear (halofit)') plt.loglog(k, Pk_baryon, 'm', linewidth=2, linestyle=':', label='With baryonic correction') plt.loglog(k, Pk_emu, 'b', linewidth=2, linestyle = '--', label='CosmicEmu') plt.xlabel('$k, \\frac{1}{\\rm Mpc}$', fontsize=20) plt.ylabel('$P(k), {\\rm Mpc^3}$', fontsize=20) plt.xlim(0.001, 50) plt.ylim(0.01, 10**6) plt.tick_params(labelsize=13) plt.legend(loc='lower left') plt.show() plt.close() R = np.linspace(5, 20, 15) sigmaR = ccl.sigmaR(cosmo, R) sigma8 = ccl.sigma8(cosmo) print("sigma8 =", sigma8) # ############### # Can also compute C_ell for galaxy counts, galaxy lensing and CMB lensing # for autocorrelations or any cross-correlation z_pz = np.linspace(0.3, 3., 3) # Define the edges of the photo-z bins. # array([0.3 , 1.65, 3. ]) AKA 2 bins pz = ccl.PhotoZGaussian(sigma_z0=0.05) def dndz(z,args) : return z**2*np.exp(-(z/0.5)**1.5)