Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
bbks_bm.py
Go to the documentation of this file.
1 import numpy as np
2 import matplotlib.pyplot as plt
3 import py_cosmo_mad as csm
4 # Contact david.alonso@physics.ox.ac.uk if you have issues running this script
5 
6 TCMB=2.725
7 PLOT_STUFF=0
8 WRITE_STUFF=1
9 FS=16
10 LKMAX=7
11 
12 def do_all(z_arr,k_arr,cpar,prefix) :
13  """
14  Computes BBKS power spectrum at input z, k and cosmological parameters.
15  Saves results at "<prefix>_pk_bbks.txt"
16  """
17  pcs=csm.PcsPar()
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'])
20 
21  gf0=pcs.growth_factor(1)
22  a_arr=1./(z_arr+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])
25 
26  if PLOT_STUFF==1 :
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')
34  plt.show()
35 
36  if WRITE_STUFF==1 :
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)
41 
42 z_arr=np.array([0.,1.,2.,3.,4.,5.])
43 lk_arr=0.1*np.arange(41)-3.
44 k_arr=10**lk_arr
45 
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}
49 
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)
Definition: bbks_bm.py:12