Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
ccl_test_power Namespace Reference

Functions

def all_finite (vals)
 
def calc_power_spectrum (Omega_v, w0, wa, transfer_fn, matter_power, linear, raise_errors)
 
def loop_over_params (transfer_fn, matter_power, lin, raise_errs)
 
def test_power_spectrum_linear ()
 
def test_power_spectrum_linear_slow ()
 
def test_power_spectrum_halofit ()
 
def test_power_spectrum_halofit_slow ()
 
def test_power_spectrum_emu ()
 
def test_nonlin_power_spectrum_linear ()
 
def test_nonlin_power_spectrum_linear_slow ()
 
def test_nonlin_power_spectrum_halofit ()
 
def test_nonlin_power_spectrum_halofit_slow ()
 
def test_nonlin_power_spectrum_emu ()
 
def test_raise_error_EH_bbks_lin ()
 
def test_raise_error_EH_bbks_halofit ()
 
def test_raise_error_EH_bbks_nonlin_linear ()
 
def test_raise_error_emu ()
 
def test_raise_error_emu_nonlin ()
 

Variables

float Omega_c = 0.25
 
float Omega_b = 0.045
 
float Neff = 3.046
 
float mnu_sum = 0.06
 
list mnu_list = [0.02, 0.02, 0.02]
 
float h = 0.7
 
float sigma8 = 0.83
 
float n_s = 0.96
 
 Omega_v_vals = np.array([0.7, 0.7, 0.7, 0.65, 0.75])
 
 w0_vals = np.array([-1.0, -0.9, -0.9, -0.9, -0.9])
 
 wa_vals = np.array([0.0, 0.0, 0.1, 0.1, 0.1])
 
list transfer_fns = ['boltzmann_class', 'eisenstein_hu', 'emulator',]
 
 argv
 

Function Documentation

def ccl_test_power.all_finite (   vals)
Returns True if all elements are finite (i.e. not NaN or inf).

Definition at line 28 of file ccl_test_power.py.

Referenced by calc_power_spectrum().

28 def all_finite(vals):
29  """
30  Returns True if all elements are finite (i.e. not NaN or inf).
31  """
32  return np.all( np.isfinite(vals) )
33 
34 
def all_finite(vals)
def ccl_test_power.calc_power_spectrum (   Omega_v,
  w0,
  wa,
  transfer_fn,
  matter_power,
  linear,
  raise_errors 
)
Calculate linear and nonlinear power spectrum for a given set of parameters
and choices of transfer function and matter power spectrum.

Definition at line 35 of file ccl_test_power.py.

References all_finite().

Referenced by loop_over_params().

35 def calc_power_spectrum(Omega_v, w0, wa, transfer_fn, matter_power, linear, raise_errors):
36  """
37  Calculate linear and nonlinear power spectrum for a given set of parameters
38  and choices of transfer function and matter power spectrum.
39  """
40  k = np.logspace(-5., 1., 300)
41  a = np.logspace(np.log10(0.51), 0., 5) # Emulator only works at z<2
42 
43  # Set Omega_K in a consistent way
44  Omega_k = 1.0 - Omega_c - Omega_b - Omega_v
45 
46  if (raise_errors == False):
47  if (transfer_fn == 'eisenstein_hu' or transfer_fn == 'bbks'):
48  mnu = 0. # The bbks and E-H P(k) are not defined for massive neutrinos.
49  elif (transfer_fn == 'emulator' and matter_power=='emu'):
50  mnu = mnu_list # For the emulator, we must have 3 equal masses
51  else:
52  mnu = mnu_sum
53  elif (raise_errors==True):
54  if (transfer_fn =='eisenstein_hu' or transfer_fn =='bbks'):
55  mnu = mnu_sum #Use massive neutrinos to deliberately raise an error
56  elif (transfer_fn == 'emulator' and matter_power == 'emu'):
57  mnu = mnu_sum #Use a sum instead of an equal list to deliberately raise an error.
58  else:
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))
60 
61  # Create a new Cosmology object
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)
67 
68  # Calculate linear and nonlinear power spectra for each scale factor, a
69  for _a in a:
70  if linear:
71  if raise_errors==False:
72  pk_lin = ccl.linear_matter_power(cosmo, k, _a)
73  assert_(all_finite(pk_lin))
74  else:
75  assert_raises(CCLError, ccl.linear_matter_power, cosmo, k, _a)
76  else:
77  if raise_errors==False:
78  pk_nl = ccl.nonlin_matter_power(cosmo, k, _a)
79  assert_(all_finite(pk_nl))
80  else:
81  assert_raises(CCLError,ccl.nonlin_matter_power, cosmo, k, _a)
82 
def all_finite(vals)
def calc_power_spectrum(Omega_v, w0, wa, transfer_fn, matter_power, linear, raise_errors)
def ccl_test_power.loop_over_params (   transfer_fn,
  matter_power,
  lin,
  raise_errs 
)
Call the power spectrum testing function for each of a set of parameters.

Definition at line 83 of file ccl_test_power.py.

References calc_power_spectrum().

Referenced by test_nonlin_power_spectrum_emu(), test_nonlin_power_spectrum_halofit(), test_nonlin_power_spectrum_halofit_slow(), test_nonlin_power_spectrum_linear(), test_nonlin_power_spectrum_linear_slow(), test_power_spectrum_emu(), test_power_spectrum_halofit(), test_power_spectrum_halofit_slow(), test_power_spectrum_linear(), test_power_spectrum_linear_slow(), test_raise_error_EH_bbks_halofit(), test_raise_error_EH_bbks_lin(), test_raise_error_EH_bbks_nonlin_linear(), test_raise_error_emu(), and test_raise_error_emu_nonlin().

83 def loop_over_params(transfer_fn, matter_power, lin, raise_errs):
84  """
85  Call the power spectrum testing function for each of a set of parameters.
86  """
87  print(">>> (%s; %s)" % (transfer_fn, matter_power))
88 
89  # Loop over parameters
90  for i in [0,2]: #w0_vals.size):
91  calc_power_spectrum(Omega_v_vals[i], w0_vals[i], wa_vals[i],
92  transfer_fn=transfer_fn, matter_power=matter_power,
93  linear=lin, raise_errors = raise_errs)
94 
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def calc_power_spectrum(Omega_v, w0, wa, transfer_fn, matter_power, linear, raise_errors)
def ccl_test_power.test_nonlin_power_spectrum_emu ( )

Definition at line 136 of file ccl_test_power.py.

References loop_over_params().

137  transfer_fns = ['emulator',]
138  for tfn in transfer_fns: loop_over_params(tfn, 'emu', lin=False, raise_errs = False)
139 
140 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_nonlin_power_spectrum_emu()
def ccl_test_power.test_nonlin_power_spectrum_halofit ( )

Definition at line 126 of file ccl_test_power.py.

References loop_over_params().

127  for tfn in ['eisenstein_hu', 'bbks']:
128  loop_over_params(tfn, 'halofit', lin=False, raise_errs = False)
129 
130 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_nonlin_power_spectrum_halofit()
def ccl_test_power.test_nonlin_power_spectrum_halofit_slow ( )

Definition at line 131 of file ccl_test_power.py.

References loop_over_params().

132  for tfn in ['boltzmann',]:
133  loop_over_params(tfn, 'halofit', lin=False, raise_errs = False)
134 
135 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_nonlin_power_spectrum_halofit_slow()
def ccl_test_power.test_nonlin_power_spectrum_linear ( )

Definition at line 117 of file ccl_test_power.py.

References loop_over_params().

118  for tfn in ['eisenstein_hu', 'bbks']:
119  loop_over_params(tfn, 'linear', lin=False, raise_errs = False)
120 
121 @decorators.slow
def test_nonlin_power_spectrum_linear()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def ccl_test_power.test_nonlin_power_spectrum_linear_slow ( )

Definition at line 122 of file ccl_test_power.py.

References loop_over_params().

123  for tfn in ['boltzmann',]:
124  loop_over_params(tfn, 'linear', lin=False, raise_errs = False)
125 
def test_nonlin_power_spectrum_linear_slow()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def ccl_test_power.test_power_spectrum_emu ( )

Definition at line 114 of file ccl_test_power.py.

References loop_over_params().

115  for tfn in ['emulator',]: loop_over_params(tfn, 'emu', lin=True, raise_errs = False)
116 
def test_power_spectrum_emu()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def ccl_test_power.test_power_spectrum_halofit ( )

Definition at line 104 of file ccl_test_power.py.

References loop_over_params().

105  for tfn in ['eisenstein_hu', 'bbks',]:
106  loop_over_params(tfn, 'halofit', lin=True, raise_errs = False)
107 
108 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_power_spectrum_halofit()
def ccl_test_power.test_power_spectrum_halofit_slow ( )

Definition at line 109 of file ccl_test_power.py.

References loop_over_params().

110  for tfn in ['boltzmann',]:
111  loop_over_params(tfn, 'halofit', lin=True, raise_errs = False)
112 
113 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_power_spectrum_halofit_slow()
def ccl_test_power.test_power_spectrum_linear ( )

Definition at line 95 of file ccl_test_power.py.

References loop_over_params().

96  for tfn in ['bbks', 'eisenstein_hu']:
97  loop_over_params(tfn, 'linear', lin=True, raise_errs = False)
98 
99 @decorators.slow
def test_power_spectrum_linear()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def ccl_test_power.test_power_spectrum_linear_slow ( )

Definition at line 100 of file ccl_test_power.py.

References loop_over_params().

101  for tfn in ['boltzmann',]:
102  loop_over_params(tfn, 'linear', lin=True, raise_errs = False)
103 
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_power_spectrum_linear_slow()
def ccl_test_power.test_raise_error_EH_bbks_halofit ( )

Definition at line 146 of file ccl_test_power.py.

References loop_over_params().

147  for tfn in ['bbks']:
148  loop_over_params(tfn, 'halofit', lin=False, raise_errs=True)
149 
150 @decorators.slow
def test_raise_error_EH_bbks_halofit()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def ccl_test_power.test_raise_error_EH_bbks_lin ( )

Definition at line 141 of file ccl_test_power.py.

References loop_over_params().

142  for tfn in ['eisenstein_hu']:
143  loop_over_params(tfn, 'linear', lin=True, raise_errs=True)
144 
145 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_raise_error_EH_bbks_lin()
def ccl_test_power.test_raise_error_EH_bbks_nonlin_linear ( )

Definition at line 151 of file ccl_test_power.py.

References loop_over_params().

152  for tfn in ['bbks']:
153  loop_over_params(tfn, 'linear', lin=False, raise_errs=True)
154 
155 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_raise_error_EH_bbks_nonlin_linear()
def ccl_test_power.test_raise_error_emu ( )

Definition at line 156 of file ccl_test_power.py.

References loop_over_params().

157  transfer_fns = ['emulator',]
158  for tfn in transfer_fns: loop_over_params(tfn, 'emu', lin=True, raise_errs = True)
159 
160 @decorators.slow
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)
def test_raise_error_emu()
def ccl_test_power.test_raise_error_emu_nonlin ( )

Definition at line 161 of file ccl_test_power.py.

References loop_over_params().

162  transfer_fns = ['emulator',]
163  for tfn in transfer_fns: loop_over_params(tfn, 'emu', lin=False, raise_errs = True)
164 
def test_raise_error_emu_nonlin()
def loop_over_params(transfer_fn, matter_power, lin, raise_errs)

Variable Documentation

ccl_test_power.argv

Definition at line 166 of file ccl_test_power.py.

Referenced by TEST_CASE().

float ccl_test_power.h = 0.7

Definition at line 16 of file ccl_test_power.py.

list ccl_test_power.mnu_list = [0.02, 0.02, 0.02]

Definition at line 15 of file ccl_test_power.py.

float ccl_test_power.mnu_sum = 0.06

Definition at line 14 of file ccl_test_power.py.

float ccl_test_power.n_s = 0.96

Definition at line 18 of file ccl_test_power.py.

float ccl_test_power.Neff = 3.046

Definition at line 13 of file ccl_test_power.py.

float ccl_test_power.Omega_b = 0.045

Definition at line 12 of file ccl_test_power.py.

float ccl_test_power.Omega_c = 0.25

Definition at line 11 of file ccl_test_power.py.

ccl_test_power.Omega_v_vals = np.array([0.7, 0.7, 0.7, 0.65, 0.75])

Definition at line 21 of file ccl_test_power.py.

list ccl_test_power.transfer_fns = ['boltzmann_class', 'eisenstein_hu', 'emulator',]

Definition at line 26 of file ccl_test_power.py.

ccl_test_power.w0_vals = np.array([-1.0, -0.9, -0.9, -0.9, -0.9])

Definition at line 22 of file ccl_test_power.py.

ccl_test_power.wa_vals = np.array([0.0, 0.0, 0.1, 0.1, 0.1])

Definition at line 23 of file ccl_test_power.py.