2 import matplotlib.pyplot
as plt
3 import py_cosmo_mad
as csm
12 def do_all(z_arr,k_arr,cpar,prefix) :
14 Computes BBKS power spectrum at input z, k and cosmological parameters. 15 Saves results at "<prefix>_pk_bbks.txt" 18 pcs.background_set(cpar[
'om'],cpar[
'ol'],cpar[
'ob'],cpar[
'w0'],cpar[
'wa'],cpar[
'hh'],TCMB)
19 pcs.set_linear_pk(
'BBKS',-3,LKMAX,0.01,cpar[
'ns'],cpar[
's8'])
21 gf0=pcs.growth_factor(1)
23 gf_arr=np.array([pcs.growth_factor(a)
for a
in a_arr])
24 pk_arr=np.array([[pcs.Pk_linear_0(k)*(gf/gf0)**2
for k
in k_arr]
for gf
in gf_arr])
27 for i
in np.arange(len(pk_arr)) :
28 plt.plot(k_arr,pk_arr[i],label=
'$z=%.2lf$'%(z_arr[i]))
29 plt.xlabel(
'$k\\,[h\\,{\\rm Mpc}^{-1}]$',fontsize=FS)
30 plt.ylabel(
'$P(k)\\,[{\\rm Mpc}\\,h^{-1}]^3$',fontsize=FS)
31 plt.gca().set_xscale(
'log');
32 plt.gca().set_yscale(
'log');
33 plt.legend(loc=
'lower left')
37 header_pk=
"[0] k (Mpc/h)^-1" 38 for i
in np.arange(len(z_arr)) :
39 header_pk+=
", [%d]"%(i+2)+
" P(k,z=%.1lf) (Mpc/h)^3"%(z_arr[i])
40 np.savetxt(prefix+
"_pk_bbks.txt",np.transpose(np.vstack((k_arr,pk_arr))),header=header_pk)
42 z_arr=np.array([0.,1.,2.,3.,4.,5.])
43 lk_arr=0.1*np.arange(41)-3.
46 cpar_model1={
'om': 0.3,
'ol': 0.7,
'ob':0.05,
'hh': 0.7,
's8': 0.8,
'ns': 0.96,
'w0': -1.0,
'wa': 0.0}
47 cpar_model2={
'om': 0.3,
'ol': 0.7,
'ob':0.05,
'hh': 0.7,
's8': 0.8,
'ns': 0.96,
'w0': -0.9,
'wa': 0.0}
48 cpar_model3={
'om': 0.3,
'ol': 0.7,
'ob':0.05,
'hh': 0.7,
's8': 0.8,
'ns': 0.96,
'w0': -0.9,
'wa': 0.1}
50 do_all(z_arr,k_arr,cpar_model1,
"model1")
51 do_all(z_arr,k_arr,cpar_model2,
"model2")
52 do_all(z_arr,k_arr,cpar_model3,
"model3")
def do_all(z_arr, k_arr, cpar, prefix)