2 from numpy.testing
import dec
as decorators
3 from numpy.testing
import assert_raises, assert_warns, assert_no_warnings, \
4 assert_, run_module_suite
6 from pyccl
import CCLError
15 mnu_list = [0.02, 0.02, 0.02]
21 Omega_v_vals = np.array([0.7, 0.7, 0.7, 0.65, 0.75])
22 w0_vals = np.array([-1.0, -0.9, -0.9, -0.9, -0.9])
23 wa_vals = np.array([0.0, 0.0, 0.1, 0.1, 0.1])
26 transfer_fns = [
'boltzmann_class',
'eisenstein_hu',
'emulator',]
30 Returns True if all elements are finite (i.e. not NaN or inf). 32 return np.all( np.isfinite(vals) )
37 Calculate linear and nonlinear power spectrum for a given set of parameters 38 and choices of transfer function and matter power spectrum. 40 k = np.logspace(-5., 1., 300)
41 a = np.logspace(np.log10(0.51), 0., 5)
44 Omega_k = 1.0 - Omega_c - Omega_b - Omega_v
46 if (raise_errors ==
False):
47 if (transfer_fn ==
'eisenstein_hu' or transfer_fn ==
'bbks'):
49 elif (transfer_fn ==
'emulator' and matter_power==
'emu'):
53 elif (raise_errors==
True):
54 if (transfer_fn ==
'eisenstein_hu' or transfer_fn ==
'bbks'):
56 elif (transfer_fn ==
'emulator' and matter_power ==
'emu'):
59 raise(ValueError,
"Transfer function %s with matter power spectrum method %s has no case for which to test errors are raised." % (transfer_fn, matter_power))
62 cosmo = ccl.Cosmology(Omega_c=Omega_c, Omega_b=Omega_b,
63 h=h, sigma8=sigma8, n_s=n_s, Omega_k=Omega_k,
64 w0=w0, wa=wa, transfer_function=transfer_fn,
65 matter_power_spectrum=matter_power,
66 Neff = Neff, m_nu = mnu)
71 if raise_errors==
False:
72 pk_lin = ccl.linear_matter_power(cosmo, k, _a)
75 assert_raises(CCLError, ccl.linear_matter_power, cosmo, k, _a)
77 if raise_errors==
False:
78 pk_nl = ccl.nonlin_matter_power(cosmo, k, _a)
81 assert_raises(CCLError,ccl.nonlin_matter_power, cosmo, k, _a)
85 Call the power spectrum testing function for each of a set of parameters. 87 print(
">>> (%s; %s)" % (transfer_fn, matter_power))
92 transfer_fn=transfer_fn, matter_power=matter_power,
93 linear=lin, raise_errors = raise_errs)
96 for tfn
in [
'bbks',
'eisenstein_hu']:
101 for tfn
in [
'boltzmann',]:
105 for tfn
in [
'eisenstein_hu',
'bbks',]:
110 for tfn
in [
'boltzmann',]:
115 for tfn
in [
'emulator',]:
loop_over_params(tfn,
'emu', lin=
True, raise_errs =
False)
118 for tfn
in [
'eisenstein_hu',
'bbks']:
123 for tfn
in [
'boltzmann',]:
127 for tfn
in [
'eisenstein_hu',
'bbks']:
132 for tfn
in [
'boltzmann',]:
137 transfer_fns = [
'emulator',]
138 for tfn
in transfer_fns:
loop_over_params(tfn,
'emu', lin=
False, raise_errs =
False)
142 for tfn
in [
'eisenstein_hu']:
157 transfer_fns = [
'emulator',]
158 for tfn
in transfer_fns:
loop_over_params(tfn,
'emu', lin=
True, raise_errs =
True)
162 transfer_fns = [
'emulator',]
163 for tfn
in transfer_fns:
loop_over_params(tfn,
'emu', lin=
False, raise_errs =
True)
165 if __name__ ==
"__main__":
166 run_module_suite(argv=sys.argv)
def test_raise_error_EH_bbks_halofit()
def test_nonlin_power_spectrum_linear_slow()
def test_raise_error_emu_nonlin()
def test_nonlin_power_spectrum_linear()
def test_power_spectrum_linear()
def test_power_spectrum_emu()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_raise_error_EH_bbks_nonlin_linear()
def test_raise_error_EH_bbks_lin()
def calc_power_spectrum(Omega_v, w0, wa, transfer_fn, matter_power, linear, raise_errors)
def test_nonlin_power_spectrum_halofit_slow()
def test_power_spectrum_halofit_slow()
def test_nonlin_power_spectrum_emu()
def test_nonlin_power_spectrum_halofit()
def test_raise_error_emu()
def test_power_spectrum_linear_slow()
def test_power_spectrum_halofit()