Пример #1
0
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)))
Пример #2
0
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)
Пример #3
0
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)