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

Public Member Functions

def __init__ (self, cosmo_params=cosmo_fid, pk_params=pk_params, cosmo=cosmo, cosmo_h=None)
 
def ccl_pk (self, z, cosmo_params=None, pk_params=None)
 
def cl_z (self, z=[], l=np.arange(3000)+1, pk_params=None, cosmo_h=None, cosmo=None, pk_func=None)
 
def kappa_cl (self, zl_min=0, zl_max=1100, n_zl=10, log_zl=False, pk_func=None, zs1=[1100], p_zs1=[1], zs2=[1100], p_zs2=[1], pk_params=None, cosmo_h=None, l=np.arange(3001))
 

Public Attributes

 cosmo_params
 
 pk_params
 
 cosmo
 
 cosmo_h
 

Detailed Description

Definition at line 18 of file cl_cmbl_bm.py.

Constructor & Destructor Documentation

def cl_cmbl_bm.Power_Spectra.__init__ (   self,
  cosmo_params = cosmo_fid,
  pk_params = pk_params,
  cosmo = cosmo,
  cosmo_h = None 
)

Definition at line 19 of file cl_cmbl_bm.py.

19  def __init__(self,cosmo_params=cosmo_fid,pk_params=pk_params,cosmo=cosmo,cosmo_h=None):
20  self.cosmo_params=cosmo_params
21  self.pk_params=pk_params
22  self.cosmo=cosmo
23 
24  if not cosmo_h:
25  self.cosmo_h=cosmo.clone(H0=100)
26  else:
27  self.cosmo_h=cosmo_h
28 
def __init__(self, cosmo_params=cosmo_fid, pk_params=pk_params, cosmo=cosmo, cosmo_h=None)
Definition: cl_cmbl_bm.py:19

Member Function Documentation

def cl_cmbl_bm.Power_Spectra.ccl_pk (   self,
  z,
  cosmo_params = None,
  pk_params = None 
)

Definition at line 29 of file cl_cmbl_bm.py.

References cl_cmbl_bm.Power_Spectra.cosmo_params, and cl_cmbl_bm.Power_Spectra.pk_params.

29  def ccl_pk(self,z,cosmo_params=None,pk_params=None):
30  if not cosmo_params:
31  cosmo_params=self.cosmo_params
32  if not pk_params:
33  pk_params=self.pk_params
34 
35  cosmo_ccl=pyccl.Cosmology(h=cosmo_params['h'],Omega_c=cosmo_params['Omd'],
36  Omega_b=cosmo_params['Omb'],sigma8=0.8,
37  n_s=cosmo_params['ns'],m_nu=cosmo_params['mnu'],
38  transfer_function='bbks')
39  kh=np.logspace(np.log10(pk_params['kmin']),np.log10(pk_params['kmax']),pk_params['nk'])
40  nz=len(z)
41  ps=np.zeros((nz,pk_params['nk']))
42  ps0=[]
43  z0=9.#PS(z0) will be rescaled using growth function when CCL fails.
44 
45  pyccl_pkf=pyccl.linear_matter_power
46  if pk_params['non_linear']==1:
47  pyccl_pkf=pyccl.nonlin_matter_power
48  for i in np.arange(nz):
49  ps[i]= pyccl_pkf(cosmo_ccl,kh,1./(1+z[i]))
50  return ps*cosmo_params['h']**3,kh/cosmo_params['h'] #factors of h to get in same units as camb output
51 
def ccl_pk(self, z, cosmo_params=None, pk_params=None)
Definition: cl_cmbl_bm.py:29
def cl_cmbl_bm.Power_Spectra.cl_z (   self,
  z = [],
  l = np.arange(3000)+1,
  pk_params = None,
  cosmo_h = None,
  cosmo = None,
  pk_func = None 
)

Definition at line 52 of file cl_cmbl_bm.py.

References cl_cmbl_bm.Power_Spectra.cosmo_h, cl_cmbl_bm.Power_Spectra.kappa_cl(), and cl_cmbl_bm.pk_func.

Referenced by cl_cmblx_bm.Power_Spectra.g_kappa_cl(), cl_cmbl_bm.Power_Spectra.kappa_cl(), and cl_cmblx_bm.Power_Spectra.kappa_cl().

52  def cl_z(self,z=[],l=np.arange(3000)+1,pk_params=None,cosmo_h=None,cosmo=None,pk_func=None):
53  if not cosmo_h:
54  cosmo_h=self.cosmo_h
55 
56  nz=len(z)
57  nl=len(l)
58 
59  pk,kh=pk_func(z=z,pk_params=pk_params)
60 
61  cls=np.zeros((nz,nl),dtype='float32')*u.Mpc**2
62  for i in np.arange(nz):
63  DC_i=cosmo_h.comoving_transverse_distance(z[i]).value#because camb k in h/mpc
64  lz=kh*DC_i-0.5
65  DC_i=cosmo_h.comoving_transverse_distance(z[i]).value
66  pk_int=interp1d(lz,pk[i]/DC_i**2,bounds_error=False,fill_value=0)
67  cls[i][:]+=pk_int(l)*u.Mpc*(c/(cosmo_h.efunc(z[i])*cosmo_h.H0))
68  return cls
69 
def cl_z(self, z=[], l=np.arange(3000)+1, pk_params=None, cosmo_h=None, cosmo=None, pk_func=None)
Definition: cl_cmbl_bm.py:52
def cl_cmbl_bm.Power_Spectra.kappa_cl (   self,
  zl_min = 0,
  zl_max = 1100,
  n_zl = 10,
  log_zl = False,
  pk_func = None,
  zs1 = [1100],
  p_zs1 = [1],
  zs2 = [1100],
  p_zs2 = [1],
  pk_params = None,
  cosmo_h = None,
  l = np.arange(3001) 
)

Definition at line 72 of file cl_cmbl_bm.py.

References cl_cmbl_bm.Power_Spectra.cl_z(), cl_cmbl_bm.Power_Spectra.cosmo_h, and max().

Referenced by cl_cmbl_bm.Power_Spectra.cl_z().

72  pk_params=None,cosmo_h=None,l=np.arange(3001)):
73  if not cosmo_h:
74  cosmo_h=self.cosmo_h
75 
76  if log_zl:#bins for z_lens.
77  zl=np.logspace(np.log10(max(zl_min,1.e-4)),np.log10(zl_max),n_zl)
78  else:
79  zl=np.linspace(zl_min,zl_max,n_zl)
80 
81  ds1=cosmo_h.comoving_transverse_distance(zs1)
82  ds2=cosmo_h.comoving_transverse_distance(zs2)
83  dl=cosmo_h.comoving_transverse_distance(zl)
84  prefac=1.5*(cosmo_h.H0/c)**2*cosmo_h.Om0
85  sigma_c1=prefac*(1+zl)*dl*(1-np.multiply.outer(1./ds1,dl))
86  sigma_c2=prefac*(1+zl)*dl*(1-np.multiply.outer(1./ds2,dl))
87  clz=self.cl_z(z=zl,l=l,cosmo_h=cosmo_h,pk_params=pk_params,pk_func=pk_func)
88 
89  dzl=np.gradient(zl)
90  dzs1=np.gradient(zs1) if len(zs1)>1 else 1
91  dzs2=np.gradient(zs2) if len(zs2)>1 else 1
92 
93  cl_zs_12=np.einsum('ji,ki,il',sigma_c2,sigma_c1*dzl,clz)#integrate over zl..
94  cl=np.dot(p_zs2*dzs2,np.dot(p_zs1*dzs1,cl_zs_12))
95  cl/=np.sum(p_zs2*dzs2)*np.sum(p_zs1*dzs1)
96  f=l*(l+1.)/(l+0.5)**2 #correction from Kilbinger+ 2017
97  cl*=f**2
98  return l,cl
99 
100 
static T max(const std::vector< T > &data)
Definition: core_app.cpp:61
def cl_z(self, z=[], l=np.arange(3000)+1, pk_params=None, cosmo_h=None, cosmo=None, pk_func=None)
Definition: cl_cmbl_bm.py:52

Member Data Documentation

cl_cmbl_bm.Power_Spectra.cosmo

Definition at line 22 of file cl_cmbl_bm.py.

Referenced by cl_cmblx_bm.Power_Spectra.DZ_int().

cl_cmbl_bm.Power_Spectra.cosmo_params
cl_cmbl_bm.Power_Spectra.pk_params

The documentation for this class was generated from the following file: