Exemple #1
0
def test_halofit():

    # initialize the power
    c = Cosmology().match(sigma8=0.82)
    P = HalofitPower(c, redshift=0)

    # k is out of range
    with pytest.raises(ValueError):
        Pk = P(2 * c.P_k_max)

    # compute for scalar
    Pk = P(0.1)

    # compute for array
    k = numpy.logspace(-3, numpy.log10(0.99 * c.P_k_max), 100)
    Pk1 = P(k)

    # change sigma8
    P.sigma8 = 0.75
    Pk2 = P(k)
    assert_allclose(Pk1.max() / Pk2.max(), (0.82 / 0.75)**2, rtol=1e-2)

    # change redshift
    P.redshift = 0.55
    Pk3 = P(k)
    D2 = c.scale_independent_growth_factor(0.)
    D3 = c.scale_independent_growth_factor(0.55)
    assert_allclose(Pk2.max() / Pk3.max(), (D2 / D3)**2, rtol=1e-2)
Exemple #2
0
def test_linear():

    # linear power
    c = Cosmology()
    Plin = LinearPower(c, redshift=0)

    # desired separation (in Mpc/h)
    r = numpy.logspace(0, numpy.log10(150), 500)

    # linear correlation
    CF = CorrelationFunction(Plin)
    CF.sigma8 = 0.82
    xi1 = CF(100.)

    assert_allclose(CF.redshift, CF.attrs['redshift'])
    assert_allclose(CF.sigma8, CF.attrs['sigma8'])

    # change sigma8
    CF.sigma8 = 0.75
    xi2 = CF(100.)
    assert_allclose(xi1/xi2, (0.82/0.75)**2, rtol=1e-2)

    # change redshift
    CF.redshift = 0.55
    xi3 = CF(100.)
    D2 = CF.cosmo.scale_independent_growth_factor(0.)
    D3 = c.scale_independent_growth_factor(0.55)
    assert_allclose(xi2.max()/xi3.max(), (D2/D3)**2, rtol=1e-2)
Exemple #3
0
def test_cosmology_a_max():
    c = Cosmology(gauge='synchronous', a_max=2.0)
    print(c.parameter_file)
    assert c.a_max == 2.0
    t = c.Omega_m(-0.1)
    t = c.efunc(-0.1)
    t = c.scale_independent_growth_factor(-0.1)
Exemple #4
0
def test_cosmology_a_max():
    c = Cosmology(gauge='synchronous', a_max=2.0)
    print(c.parameter_file)
    assert c.a_max == 2.0
    t = c.Omega_m(-0.1)
    t = c.efunc(-0.1)
    t = c.scale_independent_growth_factor(-0.1)
Exemple #5
0
def test_linear():

    # linear power
    c = Cosmology()
    Plin = LinearPower(c, redshift=0, transfer='EisensteinHu')

    # desired separation (in Mpc/h)
    r = numpy.logspace(0, numpy.log10(150), 500)

    # linear correlation
    CF = CorrelationFunction(Plin)
    CF.sigma8 = 0.82
    xi1 = CF(100.)

    assert_allclose(CF.redshift, CF.attrs['redshift'])
    assert_allclose(CF.sigma8, CF.attrs['sigma8'])

    # change sigma8
    CF.sigma8 = 0.75
    xi2 = CF(100.)
    assert_allclose(xi1/xi2, (0.82/0.75)**2, rtol=1e-2)

    # change redshift
    CF.redshift = 0.55
    xi3 = CF(100.)
    D2 = CF.cosmo.scale_independent_growth_factor(0.)
    D3 = c.scale_independent_growth_factor(0.55)
    assert_allclose(xi2.max()/xi3.max(), (D2/D3)**2, rtol=1e-2)
Exemple #6
0
def test_sigma8_z():

    z = numpy.linspace(0, 1, 100)
    c = Cosmology()

    s8_z = c.sigma8_z(z)
    D_z = c.scale_independent_growth_factor(z)
    assert_allclose(s8_z, D_z*c.sigma8, rtol=1e-3)
Exemple #7
0
def test_sigma8_z():

    z = numpy.linspace(0, 1, 100)
    c = Cosmology()

    s8_z = c.sigma8_z(z)
    D_z = c.scale_independent_growth_factor(z)
    assert_allclose(s8_z, D_z * c.sigma8, rtol=1e-3)
Exemple #8
0
def test_linear_norm():

    # initialize the power
    c = Cosmology().match(sigma8=0.82)
    P = LinearPower(c, redshift=0, transfer='CLASS')

    # compute for array
    k = numpy.logspace(-3, numpy.log10(0.99 * c.P_k_max), 100)
    Pk1 = P(k)

    # change sigma8
    P.sigma8 = 0.75
    Pk2 = P(k)
    assert_allclose(Pk1.max() / Pk2.max(), (0.82 / 0.75)**2, rtol=1e-2)

    # change redshift
    P.redshift = 0.55
    Pk3 = P(k)
    D2 = c.scale_independent_growth_factor(0.)
    D3 = c.scale_independent_growth_factor(0.55)
    assert_allclose(Pk2.max() / Pk3.max(), (D2 / D3)**2, rtol=1e-2)