Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
transfers.c File Reference
#include "common.h"
Include dependency graph for transfers.c:

Go to the source code of this file.

Functions

static double transfer_dens (int l, double k, RunParams *par, int ibin)
 
static double transfer_rsd (int l, double k, RunParams *par, int ibin)
 
static double transfer_isw (int l, double k, RunParams *par)
 
static double transfer_magnification (int l, double k, RunParams *par, int ibin)
 
static double transfer_lensing (int l, double k, RunParams *par, int ibin)
 
static double transfer_cmblens (int l, double k, RunParams *par)
 
double transfer_wrap (int l, double k, RunParams *par, char *trtype, int ibin)
 

Function Documentation

static double transfer_cmblens ( int  l,
double  k,
RunParams par 
)
static

Definition at line 92 of file transfers.c.

References RunParams::aofchi, RunParams::chi_LSS, RunParams::gfofchi, RunParams::prefac_lensing, spline_eval(), and w.

Referenced by transfer_wrap().

93 {
94  double chi=(l+0.5)/k;
95 
96  if(chi>=par->chi_LSS)
97  return 0;
98  else {
99  double gf=spline_eval(chi,par->gfofchi);
100  double a=spline_eval(chi,par->aofchi);
101  double w=1-chi/par->chi_LSS;
102 
103  return par->prefac_lensing*l*(l+1)*gf*w/(a*chi*k*k);
104  }
105 }
double prefac_lensing
Definition: common.h:36
double chi_LSS
Definition: common.h:35
SplPar * gfofchi
Definition: common.h:49
SplPar * aofchi
Definition: common.h:46
double spline_eval(double x, SplPar *spl)
Definition: common.c:71
static double w[2][28][111]
Definition: ccl_emu17.c:33
static double transfer_dens ( int  l,
double  k,
RunParams par,
int  ibin 
)
static

Definition at line 24 of file transfers.c.

References RunParams::bias, RunParams::gfofchi, ccl_test_distances::h, RunParams::hofchi, spline_eval(), RunParams::wind_0, z, and RunParams::zofchi.

Referenced by transfer_wrap().

25 {
26  double chi=(l+0.5)/k;
27  double gf=spline_eval(chi,par->gfofchi);
28  double h=spline_eval(chi,par->hofchi);
29  double z=spline_eval(chi,par->zofchi);
30  double pz=spline_eval(z,par->wind_0[ibin]);
31  double bz=spline_eval(z,par->bias);
32 
33  return pz*bz*gf*h;
34 }
SplPar * hofchi
Definition: common.h:48
SplPar * zofchi
Definition: common.h:47
SplPar * gfofchi
Definition: common.h:49
SplPar ** wind_0
Definition: common.h:51
double spline_eval(double x, SplPar *spl)
Definition: common.c:71
SplPar * bias
Definition: common.h:54
static double z[8]
static double transfer_isw ( int  l,
double  k,
RunParams par 
)
static

Definition at line 56 of file transfers.c.

References RunParams::fgofchi, RunParams::gfofchi, ccl_test_distances::h, RunParams::hofchi, RunParams::prefac_lensing, and spline_eval().

Referenced by transfer_wrap().

57 {
58  double chi=(l+0.5)/k;
59  double gf=spline_eval(chi,par->gfofchi);
60  double h=spline_eval(chi,par->hofchi);
61  double fg=spline_eval(chi,par->fgofchi);
62 
63  return 2*par->prefac_lensing*h*gf*(1-fg)/(k*k);
64 }
double prefac_lensing
Definition: common.h:36
SplPar * hofchi
Definition: common.h:48
SplPar * gfofchi
Definition: common.h:49
double spline_eval(double x, SplPar *spl)
Definition: common.c:71
SplPar * fgofchi
Definition: common.h:50
static double transfer_lensing ( int  l,
double  k,
RunParams par,
int  ibin 
)
static

Definition at line 79 of file transfers.c.

References RunParams::aofchi, RunParams::gfofchi, RunParams::prefac_lensing, spline_eval(), w, and RunParams::wind_L.

Referenced by transfer_wrap().

80 {
81  double chi=(l+0.5)/k;
82  double gf=spline_eval(chi,par->gfofchi);
83  double a=spline_eval(chi,par->aofchi);
84  double w=spline_eval(chi,par->wind_L[ibin]);
85 
86  if(w<=0)
87  return 0;
88  else
89  return par->prefac_lensing*l*(l+1)*gf*w/(a*chi*k*k);
90 }
double prefac_lensing
Definition: common.h:36
SplPar * gfofchi
Definition: common.h:49
SplPar * aofchi
Definition: common.h:46
double spline_eval(double x, SplPar *spl)
Definition: common.c:71
SplPar ** wind_L
Definition: common.h:53
static double w[2][28][111]
Definition: ccl_emu17.c:33
static double transfer_magnification ( int  l,
double  k,
RunParams par,
int  ibin 
)
static

Definition at line 66 of file transfers.c.

References RunParams::aofchi, RunParams::gfofchi, RunParams::prefac_lensing, spline_eval(), w, and RunParams::wind_M.

Referenced by transfer_wrap().

67 {
68  double chi=(l+0.5)/k;
69  double gf=spline_eval(chi,par->gfofchi);
70  double a=spline_eval(chi,par->aofchi);
71  double w=spline_eval(chi,par->wind_M[ibin]);
72 
73  if(w<=0)
74  return 0;
75  else
76  return -2*par->prefac_lensing*l*(l+1)*gf*w/(a*chi*k*k);
77 }
double prefac_lensing
Definition: common.h:36
SplPar * gfofchi
Definition: common.h:49
SplPar * aofchi
Definition: common.h:46
double spline_eval(double x, SplPar *spl)
Definition: common.c:71
SplPar ** wind_M
Definition: common.h:52
static double w[2][28][111]
Definition: ccl_emu17.c:33
static double transfer_rsd ( int  l,
double  k,
RunParams par,
int  ibin 
)
static

Definition at line 36 of file transfers.c.

References RunParams::fgofchi, RunParams::gfofchi, mk_bins::h1, RunParams::hofchi, cl_cmbl_bm::l, spline_eval(), sqrt(), RunParams::wind_0, mk_bins::z1, and RunParams::zofchi.

Referenced by transfer_wrap().

37 {
38  double chi0=(l+0.5)/k;
39  double chi1=(l+1.5)/k;
40  double z0=spline_eval(chi0,par->zofchi);
41  double z1=spline_eval(chi1,par->zofchi);
42  double gf0=spline_eval(chi0,par->gfofchi);
43  double gf1=spline_eval(chi1,par->gfofchi);
44  double fg0=spline_eval(chi0,par->fgofchi);
45  double fg1=spline_eval(chi1,par->fgofchi);
46  double h0=spline_eval(chi0,par->hofchi);
47  double h1=spline_eval(chi1,par->hofchi);
48  double pz0=spline_eval(z0,par->wind_0[ibin]);
49  double pz1=spline_eval(z1,par->wind_0[ibin]);
50  double term0=pz0*fg0*gf0*h0*(1+8.*l)/((2*l+1.)*(2*l+1.));
51  double term1=pz1*fg1*gf1*h1*sqrt((l+0.5)/(l+1.5))*4./(2*l+3);
52 
53  return term0-term1;
54 }
SplPar * hofchi
Definition: common.h:48
SplPar * zofchi
Definition: common.h:47
float z1
Definition: mk_bins.py:9
SplPar * gfofchi
Definition: common.h:49
SplPar ** wind_0
Definition: common.h:51
Grid< NDIM, T > sqrt(Grid< NDIM, T > lhs)
Definition: grid.h:231
double spline_eval(double x, SplPar *spl)
Definition: common.c:71
SplPar * fgofchi
Definition: common.h:50
double transfer_wrap ( int  l,
double  k,
RunParams par,
char *  trtype,
int  ibin 
)

Definition at line 107 of file transfers.c.

References dam_report_error(), RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::has_dens, RunParams::has_lensing, RunParams::has_rsd, transfer_cmblens(), transfer_dens(), transfer_isw(), transfer_lensing(), transfer_magnification(), and transfer_rsd().

108 {
109  if(!strcmp(trtype,"nc")) {
110  if(par->do_nc!=1)
111  dam_report_error(1,"Asked to calculate NC transfer function, but can't!\n");
112  else {
113  double tr=0;
114  if(par->has_dens)
115  tr+=transfer_dens(l,k,par,ibin);
116  if(par->has_rsd)
117  tr+=transfer_rsd(l,k,par,ibin);
118  if(par->has_lensing)
119  tr+=transfer_magnification(l,k,par,ibin);
120  return tr;
121  }
122  }
123  if(!strcmp(trtype,"isw")) {
124  if(par->do_isw!=1)
125  dam_report_error(1,"Asked to calculate ISW transfer function, but can't!\n");
126  else
127  return transfer_isw(l,k,par);
128  }
129  if(!strcmp(trtype,"shear")) {
130  if(par->do_shear!=1)
131  dam_report_error(1,"Asked to calculate shear transfer function, but can't!\n");
132  else
133  return transfer_lensing(l,k,par,ibin);
134  }
135  if(!strcmp(trtype,"cmblens")) {
136  if(par->do_cmblens!=1)
137  dam_report_error(1,"Asked to calculate shear transfer function, but can't!\n");
138  else
139 #ifdef _NOLIM_CMBL
140  return transfer_cmblens_nolim(l,k,par);
141 #else //_NOLIM_CMBL
142  return transfer_cmblens(l,k,par);
143 #endif //_NOLIM_CMBL
144  }
145  else
146  dam_report_error(1,"Unknown transfer type %s\n",trtype);
147  return -1.;
148 }
void dam_report_error(int level, char *fmt,...)
Definition: common.c:39
int do_isw
Definition: common.h:41
static double transfer_rsd(int l, double k, RunParams *par, int ibin)
Definition: transfers.c:36
int do_cmblens
Definition: common.h:40
static double transfer_lensing(int l, double k, RunParams *par, int ibin)
Definition: transfers.c:79
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
int has_rsd
Definition: common.h:44
int has_dens
Definition: common.h:43
static double transfer_isw(int l, double k, RunParams *par)
Definition: transfers.c:56
static double transfer_magnification(int l, double k, RunParams *par, int ibin)
Definition: transfers.c:66
int has_lensing
Definition: common.h:45
static double transfer_dens(int l, double k, RunParams *par, int ibin)
Definition: transfers.c:24
static double transfer_cmblens(int l, double k, RunParams *par)
Definition: transfers.c:92