Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
common.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <gsl/gsl_spline.h>
#include <gsl/gsl_roots.h>
#include "params.h"
#include "cosmo_mad.h"
Include dependency graph for common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SplPar
 
struct  RunParams
 

Macros

#define DTOR   0.01745329251
 

Functions

void dam_report_error (int level, char *fmt,...)
 
void * dam_malloc (size_t size)
 
void * dam_calloc (size_t nmemb, size_t size)
 
FILE * dam_fopen (const char *path, const char *mode)
 
int dam_linecount (FILE *f)
 
SplParspline_init (int n, double *x, double *y, double y0, double yf)
 
double spline_eval (double x, SplPar *spl)
 
void spline_free (SplPar *spl)
 
RunParamsparam_new (void)
 
void param_free (RunParams *par)
 
RunParamsinit_params (char *fname_ini)
 
double transfer_wrap (int l, double k, RunParams *par, char *trtype, int ibin)
 
void compute_spectra (RunParams *par)
 
void compute_w_theta (RunParams *par)
 
int read_parameter_file (char *fname, RunParams *par)
 
void write_output (RunParams *par)
 

Macro Definition Documentation

#define DTOR   0.01745329251

Definition at line 14 of file common.h.

Referenced by compute_wt_single().

Function Documentation

void compute_spectra ( RunParams par)

Definition at line 40 of file spectra.c.

References RunParams::cl_cc, RunParams::cl_ci, RunParams::cl_d1l2, RunParams::cl_d2l1, RunParams::cl_dc, RunParams::cl_dd, RunParams::cl_di, RunParams::cl_ii, RunParams::cl_lc, RunParams::cl_li, RunParams::cl_ll, RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, cl_cmbl_bm::l, RunParams::lmax, and spectra().

Referenced by main().

41 {
42  printf("Computing power spectra\n");
43 #ifdef _HAS_OMP
44 #pragma omp parallel default(none) shared(par)
45  {
46 #endif //_HAS_OMP
47  int l;
48 #ifdef _HAS_OMP
49 #pragma omp for
50 #endif //_HAS_OMP
51  for(l=0;l<=par->lmax;l++) {
52 #ifdef _DEBUG
53  printf("%d \n",l);
54 #endif //_DEBUG
55  if(par->do_nc) {
56  par->cl_dd[l]=spectra("nc","nc",l,par);
57  if(par->do_shear) {
58  par->cl_d1l2[l]=spectra("nc","shear",l,par);
59  par->cl_d2l1[l]=spectra("shear","nc",l,par);
60  }
61  if(par->do_cmblens)
62  par->cl_dc[l]=spectra("nc","cmblens",l,par);
63  if(par->do_isw)
64  par->cl_di[l]=spectra("nc","isw",l,par);
65  }
66  if(par->do_shear) {
67  par->cl_ll[l]=spectra("shear","shear",l,par);
68  if(par->do_cmblens)
69  par->cl_lc[l]=spectra("shear","cmblens",l,par);
70  if(par->do_isw)
71  par->cl_li[l]=spectra("shear","isw",l,par);
72  }
73  if(par->do_cmblens) {
74  par->cl_cc[l]=spectra("cmblens","cmblens",l,par);
75  if(par->do_isw)
76  par->cl_ci[l]=spectra("cmblens","isw",l,par);
77  }
78  if(par->do_isw)
79  par->cl_ii[l]=spectra("isw","isw",l,par);
80  } //end omp for
81 #ifdef _HAS_OMP
82  } //end omp parallel
83 #endif //_HAS_OMP
84 }
double * cl_ci
Definition: common.h:65
double * cl_d1l2
Definition: common.h:57
int do_isw
Definition: common.h:41
int lmax
Definition: common.h:32
int do_cmblens
Definition: common.h:40
static double spectra(char *tr1, char *tr2, int l, RunParams *par)
Definition: spectra.c:22
double * cl_cc
Definition: common.h:64
double * cl_di
Definition: common.h:60
double * cl_d2l1
Definition: common.h:58
double * cl_ll
Definition: common.h:61
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
double * cl_dd
Definition: common.h:56
double * cl_li
Definition: common.h:63
double * cl_ii
Definition: common.h:66
double * cl_dc
Definition: common.h:59
double * cl_lc
Definition: common.h:62
void compute_w_theta ( RunParams par)

Definition at line 149 of file spectra.c.

References RunParams::cl_cc, RunParams::cl_ci, RunParams::cl_d1l2, RunParams::cl_d2l1, RunParams::cl_dc, RunParams::cl_dd, RunParams::cl_di, RunParams::cl_ii, RunParams::cl_lc, RunParams::cl_li, RunParams::cl_ll, compute_wt_single(), dam_malloc(), RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::do_w_theta, cl_cmbl_bm::l, RunParams::lmax, RunParams::wt_cc, RunParams::wt_ci, RunParams::wt_d1l2, RunParams::wt_d2l1, RunParams::wt_dc, RunParams::wt_dd, RunParams::wt_di, RunParams::wt_ii, RunParams::wt_lc, RunParams::wt_li, RunParams::wt_ll_mm, and RunParams::wt_ll_pp.

Referenced by main().

150 {
151  if(par->do_w_theta) {
152  int l;
153  double *llist;
154 
155  printf("Computing correlation functions\n");
156 
157  llist=dam_malloc((par->lmax+1)*sizeof(double));
158  for(l=0;l<=par->lmax;l++)
159  llist[l]=(float)l;
160 
161  if(par->do_nc) {
162  compute_wt_single(par,par->cl_dd,par->wt_dd,llist,0);
163  if(par->do_shear) {
164  compute_wt_single(par,par->cl_d1l2,par->wt_d1l2,llist,0);
165  compute_wt_single(par,par->cl_d2l1,par->wt_d2l1,llist,0);
166  }
167  if(par->do_cmblens)
168  compute_wt_single(par,par->cl_dc,par->wt_dc,llist,0);
169  if(par->do_isw)
170  compute_wt_single(par,par->cl_di,par->wt_di,llist,0);
171  }
172  if(par->do_shear) {
173  compute_wt_single(par,par->cl_ll,par->wt_ll_pp,llist,0);
174  compute_wt_single(par,par->cl_ll,par->wt_ll_mm,llist,4);
175  if(par->do_cmblens)
176  compute_wt_single(par,par->cl_lc,par->wt_lc,llist,0);
177  if(par->do_isw)
178  compute_wt_single(par,par->cl_li,par->wt_li,llist,0);
179  }
180  if(par->do_cmblens) {
181  compute_wt_single(par,par->cl_cc,par->wt_cc,llist,0);
182  if(par->do_isw)
183  compute_wt_single(par,par->cl_ci,par->wt_ci,llist,0);
184  }
185  if(par->do_isw)
186  compute_wt_single(par,par->cl_ii,par->wt_ii,llist,0);
187  free(llist);
188  }
189  else {
190  printf("Skipping correlation functions\n");
191  }
192 }
double * cl_ci
Definition: common.h:65
double * wt_d1l2
Definition: common.h:74
double * wt_di
Definition: common.h:77
double * wt_li
Definition: common.h:81
double * cl_d1l2
Definition: common.h:57
int do_isw
Definition: common.h:41
double * wt_dc
Definition: common.h:76
static void compute_wt_single(RunParams *par, double *cl, double *wt, double *llist, int bessel_order)
Definition: spectra.c:110
int lmax
Definition: common.h:32
double * wt_lc
Definition: common.h:80
double * wt_ll_pp
Definition: common.h:78
int do_cmblens
Definition: common.h:40
double * cl_cc
Definition: common.h:64
double * cl_di
Definition: common.h:60
double * cl_d2l1
Definition: common.h:58
double * cl_ll
Definition: common.h:61
void * dam_malloc(size_t size)
Definition: common.c:3
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
double * cl_dd
Definition: common.h:56
double * wt_cc
Definition: common.h:82
double * cl_li
Definition: common.h:63
double * wt_d2l1
Definition: common.h:75
double * cl_ii
Definition: common.h:66
double * wt_ii
Definition: common.h:84
double * wt_ll_mm
Definition: common.h:79
double * cl_dc
Definition: common.h:59
double * wt_dd
Definition: common.h:73
int do_w_theta
Definition: common.h:67
double * wt_ci
Definition: common.h:83
double * cl_lc
Definition: common.h:62
void* dam_calloc ( size_t  nmemb,
size_t  size 
)

Definition at line 11 of file common.c.

References dam_report_error().

12 {
13  void *outptr=calloc(nmemb,size);
14  if(outptr==NULL)
15  dam_report_error(1,"Out of memory\n");
16 
17  return outptr;
18 }
void dam_report_error(int level, char *fmt,...)
Definition: common.c:39
FILE* dam_fopen ( const char *  path,
const char *  mode 
)

Definition at line 20 of file common.c.

References dam_report_error().

Referenced by init_params(), read_parameter_file(), window_lensing(), write_cl_single(), and write_wt_single().

21 {
22  FILE *fout=fopen(path,mode);
23  if(fout==NULL)
24  dam_report_error(1,"Couldn't open file %s\n",path);
25 
26  return fout;
27 }
void dam_report_error(int level, char *fmt,...)
Definition: common.c:39
static double mode[351]
int dam_linecount ( FILE *  f)

Definition at line 29 of file common.c.

Referenced by init_params(), and read_parameter_file().

30 {
31  int i0=0;
32  char ch[1024];
33  while((fgets(ch,sizeof(ch),f))!=NULL) {
34  i0++;
35  }
36  return i0;
37 }
void* dam_malloc ( size_t  size)

Definition at line 3 of file common.c.

References dam_report_error().

Referenced by compute_w_theta(), init_params(), param_new(), and spline_init().

4 {
5  void *outptr=malloc(size);
6  if(outptr==NULL) dam_report_error(1,"Out of memory\n");
7 
8  return outptr;
9 }
void dam_report_error(int level, char *fmt,...)
Definition: common.c:39
void dam_report_error ( int  level,
char *  fmt,
  ... 
)

Definition at line 39 of file common.c.

References run_tests::args.

Referenced by dam_calloc(), dam_fopen(), dam_malloc(), init_params(), read_parameter_file(), and transfer_wrap().

40 {
41  va_list args;
42  char msg[256];
43 
44  va_start(args,fmt);
45  vsprintf(msg,fmt,args);
46  va_end(args);
47 
48  if(level) {
49  fprintf(stderr,"Fatal: %s",msg);
50  exit(level);
51  }
52  else {
53  fprintf(stderr,"Warning: %s",msg);
54  }
55 }
RunParams* init_params ( char *  fname_ini)

Definition at line 186 of file cosmo.c.

References a_of_chi(), RunParams::aofchi, RunParams::bias, RunParams::chi_horizon, RunParams::chi_LSS, RunParams::cl_cc, RunParams::cl_ci, RunParams::cl_d1l2, RunParams::cl_d2l1, RunParams::cl_dc, RunParams::cl_dd, RunParams::cl_di, RunParams::cl_ii, RunParams::cl_lc, RunParams::cl_li, RunParams::cl_ll, RunParams::cpar, D_LKMAX, D_LKMIN, D_TCMB, D_Z_REC, dam_fopen(), dam_linecount(), dam_malloc(), dam_report_error(), RunParams::dchi, RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::do_w_theta, RunParams::fgofchi, RunParams::fname_bias, RunParams::fname_pk, RunParams::fname_sbias, RunParams::fname_window, RunParams::gfofchi, RunParams::h0, RunParams::has_bg, RunParams::has_dens, RunParams::has_lensing, RunParams::hofchi, RunParams::lmax, RunParams::n_th, RunParams::ns, RunParams::ob, RunParams::ol, RunParams::om, param_new(), RunParams::prefac_lensing, read_parameter_file(), RunParams::s8, RunParams::sbias, speval_bis(), spline_free(), spline_init(), growth_allz::T, w, RunParams::w0, RunParams::wa, RunParams::wind_0, RunParams::wind_L, RunParams::wind_M, window_lensing(), window_magnification(), RunParams::wt_cc, RunParams::wt_ci, RunParams::wt_d1l2, RunParams::wt_d2l1, RunParams::wt_dc, RunParams::wt_dd, RunParams::wt_di, RunParams::wt_ii, RunParams::wt_lc, RunParams::wt_li, RunParams::wt_ll_mm, RunParams::wt_ll_pp, x, SplPar::xf, and RunParams::zofchi.

Referenced by main().

187 {
188  FILE *fi;
189  int n,ii,stat,ibin;
190  double *x,*a,*y,dchi;
191  RunParams *par=param_new();
192  par->cpar=csm_params_new();
193  read_parameter_file(fname_ini,par);
194 
195  csm_unset_gsl_eh(par->cpar);
196  if(par->has_bg) {
197  double hub;
198  csm_background_set(par->cpar,par->om,par->ol,par->ob,par->w0,par->wa,par->h0,D_TCMB);
199  par->chi_horizon=csm_radial_comoving_distance(par->cpar,0.);
200  par->chi_LSS=csm_radial_comoving_distance(par->cpar,1./(1+D_Z_REC));
201  hub=csm_hubble(par->cpar,1.);
202  par->prefac_lensing=1.5*hub*hub*par->om;
203 
204  n=(int)(par->chi_horizon/par->dchi)+1;
205  dchi=par->chi_horizon/n;
206  par->dchi=dchi;
207 
208  x=(double *)dam_malloc(n*sizeof(double));
209  a=(double *)dam_malloc(n*sizeof(double));
210  y=(double *)dam_malloc(n*sizeof(double));
211 
212  for(ii=0;ii<n;ii++)
213  x[ii]=dchi*ii;
214 
215  printf("Setting up background splines\n");
216  //Set chi <-> a correspondence
217  const gsl_root_fdfsolver_type *T=gsl_root_fdfsolver_newton;
218  gsl_root_fdfsolver *s=gsl_root_fdfsolver_alloc(T);
219  double a_old=1.0;
220  for(ii=0;ii<n;ii++)
221  a[ii]=a_of_chi(x[ii],par->cpar,&a_old,s);
222  gsl_root_fdfsolver_free(s);
223  par->aofchi=spline_init(n,x,a,1.0,0.0);
224 
225  //Compute redshift
226  for(ii=0;ii<n;ii++)
227  y[ii]=1./a[ii]-1;
228  par->zofchi=spline_init(n,x,y,y[0],y[n-1]);
229 
230  //Compute hubble scale
231  for(ii=0;ii<n;ii++)
232  y[ii]=csm_hubble(par->cpar,a[ii]);
233  par->hofchi=spline_init(n,x,y,y[0],y[n-1]);
234 
235  //Compute growth factor
236  double g0=csm_growth_factor(par->cpar,1.0);
237  for(ii=0;ii<n;ii++)
238  y[ii]=csm_growth_factor(par->cpar,a[ii])/g0;
239  par->gfofchi=spline_init(n,x,y,1.,0.);
240 
241  //Compute growth rate
242  for(ii=0;ii<n;ii++)
243  y[ii]=csm_f_growth(par->cpar,a[ii]);
244  par->fgofchi=spline_init(n,x,y,y[0],1.);
245  free(x); free(a); free(y);
246  }
247 
248  //Allocate power spectra
249  if(par->do_nc) {
250  par->cl_dd=(double *)dam_malloc((par->lmax+1)*sizeof(double));
251  if(par->do_shear) {
252  par->cl_d1l2=(double *)dam_malloc((par->lmax+1)*sizeof(double));
253  par->cl_d2l1=(double *)dam_malloc((par->lmax+1)*sizeof(double));
254  }
255  if(par->do_cmblens)
256  par->cl_dc=(double *)dam_malloc((par->lmax+1)*sizeof(double));
257  if(par->do_isw)
258  par->cl_di=(double *)dam_malloc((par->lmax+1)*sizeof(double));
259  }
260  if(par->do_shear) {
261  par->cl_ll=(double *)dam_malloc((par->lmax+1)*sizeof(double));
262  if(par->do_cmblens)
263  par->cl_lc=(double *)dam_malloc((par->lmax+1)*sizeof(double));
264  if(par->do_isw)
265  par->cl_li=(double *)dam_malloc((par->lmax+1)*sizeof(double));
266  }
267  if(par->do_cmblens) {
268  par->cl_cc=(double *)dam_malloc((par->lmax+1)*sizeof(double));
269  if(par->do_isw)
270  par->cl_ci=(double *)dam_malloc((par->lmax+1)*sizeof(double));
271  }
272  if(par->do_isw)
273  par->cl_ii=(double *)dam_malloc((par->lmax+1)*sizeof(double));
274 
275  if(par->do_w_theta) {
276  if(par->do_nc) {
277  par->wt_dd=(double *)dam_malloc(par->n_th*sizeof(double));
278  if(par->do_shear) {
279  par->wt_d1l2=(double *)dam_malloc(par->n_th*sizeof(double));
280  par->wt_d2l1=(double *)dam_malloc(par->n_th*sizeof(double));
281  }
282  if(par->do_cmblens)
283  par->wt_dc=(double *)dam_malloc(par->n_th*sizeof(double));
284  if(par->do_isw)
285  par->wt_di=(double *)dam_malloc(par->n_th*sizeof(double));
286  }
287  if(par->do_shear) {
288  par->wt_ll_pp=(double *)dam_malloc(par->n_th*sizeof(double));
289  par->wt_ll_mm=(double *)dam_malloc(par->n_th*sizeof(double));
290  if(par->do_cmblens)
291  par->wt_lc=(double *)dam_malloc(par->n_th*sizeof(double));
292  if(par->do_isw)
293  par->wt_li=(double *)dam_malloc(par->n_th*sizeof(double));
294  }
295  if(par->do_cmblens) {
296  par->wt_cc=(double *)dam_malloc(par->n_th*sizeof(double));
297  if(par->do_isw)
298  par->wt_ci=(double *)dam_malloc(par->n_th*sizeof(double));
299  }
300  if(par->do_isw)
301  par->wt_ii=(double *)dam_malloc(par->n_th*sizeof(double));
302  }
303 
304  if(par->do_nc || par->do_shear || par->do_cmblens || par->do_isw)
305  csm_set_linear_pk(par->cpar,par->fname_pk,D_LKMIN,D_LKMAX,0.01,par->ns,par->s8);
306 
307  if(par->do_nc || par->do_shear) {
308  par->wind_0=dam_malloc(2*sizeof(SplPar *));
309  for(ibin=0;ibin<2;ibin++) {
310  printf("Reading window function %s\n",par->fname_window[ibin]);
311  fi=dam_fopen(par->fname_window[ibin],"r");
312  n=dam_linecount(fi); rewind(fi);
313  //Read unnormalized window
314  x=(double *)dam_malloc(n*sizeof(double));
315  y=(double *)dam_malloc(n*sizeof(double));
316  for(ii=0;ii<n;ii++) {
317  stat=fscanf(fi,"%lE %lE",&(x[ii]),&(y[ii]));
318  if(stat!=2)
319  dam_report_error(1,"Error reading file, line %d\n",ii+1);
320  }
321  fclose(fi);
322  par->wind_0[ibin]=spline_init(n,x,y,0.,0.);
323  //Normalize window
324  double norm,enorm;
325  gsl_function F;
326  gsl_integration_workspace *w=gsl_integration_workspace_alloc(1000);
327  F.function=&speval_bis;
328  F.params=par->wind_0[ibin];
329  gsl_integration_qag(&F,x[0],x[n-1],0,1E-4,1000,GSL_INTEG_GAUSS41,w,&norm,&enorm);
330  gsl_integration_workspace_free(w);
331  for(ii=0;ii<n;ii++)
332  y[ii]/=norm;
333  spline_free(par->wind_0[ibin]);
334  par->wind_0[ibin]=spline_init(n,x,y,0.,0.);
335  free(x); free(y);
336  }
337  }
338 
339  if(par->do_nc) {
340  if(par->has_dens==1) {
341  printf("Reading bias function %s\n",par->fname_bias);
342  fi=dam_fopen(par->fname_bias,"r");
343  n=dam_linecount(fi); rewind(fi);
344  //Read bias
345  x=(double *)dam_malloc(n*sizeof(double));
346  y=(double *)dam_malloc(n*sizeof(double));
347  for(ii=0;ii<n;ii++) {
348  stat=fscanf(fi,"%lE %lE",&(x[ii]),&(y[ii]));
349  if(stat!=2)
350  dam_report_error(1,"Error reading file, line %d\n",ii+1);
351  }
352  fclose(fi);
353  par->bias=spline_init(n,x,y,y[0],y[n-1]);
354  free(x); free(y);
355  }
356 
357  if(par->has_lensing==1) {
358  printf("Reading s-bias function %s\n",par->fname_sbias);
359  fi=dam_fopen(par->fname_sbias,"r");
360  n=dam_linecount(fi); rewind(fi);
361  //Read s-bias
362  x=(double *)dam_malloc(n*sizeof(double));
363  y=(double *)dam_malloc(n*sizeof(double));
364  for(ii=0;ii<n;ii++) {
365  stat=fscanf(fi,"%lE %lE",&(x[ii]),&(y[ii]));
366  if(stat!=2)
367  dam_report_error(1,"Error reading file, line %d\n",ii+1);
368  }
369  fclose(fi);
370  par->sbias=spline_init(n,x,y,y[0],y[n-1]);
371  free(x); free(y);
372 
373  printf("Computing lensing magnification window function\n");
374  par->wind_M=dam_malloc(2*sizeof(SplPar *));
375  for(ibin=0;ibin<2;ibin++) {
376  double dchi_here;
377  double zmax=par->wind_0[ibin]->xf;
378  double chimax=csm_radial_comoving_distance(par->cpar,1./(1+zmax));
379  n=(int)(chimax/par->dchi)+1;
380  dchi_here=chimax/n;
381 
382  x=(double *)dam_malloc(n*sizeof(double));
383  y=(double *)dam_malloc(n*sizeof(double));
384 
385 #ifdef _HAVE_OMP
386 #pragma omp parallel default(none) shared(n,x,y,par,dchi_here,ibin)
387  {
388 #endif //_HAVE_OMP
389  int j;
390 
391 #ifdef _HAVE_OMP
392 #pragma omp for
393 #endif //_HAVE_OMP
394  for(j=0;j<n;j++) {
395  x[j]=dchi_here*j;
396  y[j]=window_magnification(x[j],par,ibin);
397  } //end omp for
398 #ifdef _HAVE_OMP
399  } //end omp parallel
400 #endif //_HAVE_OMP
401  par->wind_M[ibin]=spline_init(n,x,y,y[0],0);
402  free(x); free(y);
403  }
404  }
405  }
406 
407  if(par->do_shear) {
408  printf("Computing lensing window function\n");
409  par->wind_L=dam_malloc(2*sizeof(SplPar *));
410  for(ibin=0;ibin<2;ibin++) {
411  double dchi_here;
412  double zmax=par->wind_0[ibin]->xf;
413  double chimax=csm_radial_comoving_distance(par->cpar,1./(1+zmax));
414  n=(int)(chimax/par->dchi)+1;
415  dchi_here=chimax/n;
416 
417  x=(double *)dam_malloc(n*sizeof(double));
418  y=(double *)dam_malloc(n*sizeof(double));
419 
420 #ifdef _HAVE_OMP
421 #pragma omp parallel default(none) shared(n,x,y,par,dchi_here,ibin)
422  {
423 #endif //_HAVE_OMP
424  int j;
425 
426 #ifdef _HAVE_OMP
427 #pragma omp for
428 #endif //_HAVE_OMP
429  for(j=0;j<n;j++) {
430  x[j]=dchi_here*j;
431  y[j]=window_lensing(x[j],par,ibin);
432  }
433 #ifdef _HAVE_OMP
434  } //end omp parallel
435 #endif //_HAVE_OMP
436  par->wind_L[ibin]=spline_init(n,x,y,y[0],0);
437  free(x); free(y);
438  }
439  }
440 
441 #ifdef _DEBUG
442  print_bg(par);
443 #endif //_DEBUG
444  return par;
445 }
double * cl_ci
Definition: common.h:65
double * wt_d1l2
Definition: common.h:74
SplPar * sbias
Definition: common.h:55
double chi_horizon
Definition: common.h:34
#define D_Z_REC
Definition: params.h:5
double double
Definition: precision.hpp:19
double * wt_di
Definition: common.h:77
double * wt_li
Definition: common.h:81
double prefac_lensing
Definition: common.h:36
int read_parameter_file(char *fname, RunParams *par)
Definition: io.c:112
void dam_report_error(int level, char *fmt,...)
Definition: common.c:39
double * cl_d1l2
Definition: common.h:57
int do_isw
Definition: common.h:41
double ns
Definition: common.h:26
#define D_TCMB
Definition: params.h:4
double chi_LSS
Definition: common.h:35
double * wt_dc
Definition: common.h:76
SplPar * hofchi
Definition: common.h:48
Csm_params * cpar
Definition: common.h:33
static double a_of_chi(double chi, Csm_params *cpar, double *a_old, gsl_root_fdfsolver *s)
Definition: cosmo.c:34
SplPar * zofchi
Definition: common.h:47
int lmax
Definition: common.h:32
double * wt_lc
Definition: common.h:80
static double window_lensing(double chi, RunParams *par, int i_window)
Definition: cosmo.c:117
double w0
Definition: common.h:25
double * wt_ll_pp
Definition: common.h:78
SplPar * spline_init(int n, double *x, double *y, double y0, double yf)
Definition: common.c:57
int do_cmblens
Definition: common.h:40
FILE * dam_fopen(const char *path, const char *mode)
Definition: common.c:20
SplPar * gfofchi
Definition: common.h:49
static double speval_bis(double x, void *params)
Definition: cosmo.c:3
double om
Definition: common.h:24
#define D_LKMIN
Definition: params.h:7
char fname_bias[256]
Definition: common.h:28
double * cl_cc
Definition: common.h:64
SplPar ** wind_0
Definition: common.h:51
RunParams * param_new(void)
Definition: common.c:88
int n_th
Definition: common.h:71
double * cl_di
Definition: common.h:60
char fname_pk[256]
Definition: common.h:30
static CCL_BEGIN_DECLS double x[111][8]
static double window_magnification(double chi, RunParams *par, int i_window)
Definition: cosmo.c:86
double ob
Definition: common.h:24
SplPar * aofchi
Definition: common.h:46
double * cl_d2l1
Definition: common.h:58
double dchi
Definition: common.h:37
double * cl_ll
Definition: common.h:61
char fname_sbias[256]
Definition: common.h:29
void * dam_malloc(size_t size)
Definition: common.c:3
double h0
Definition: common.h:25
SplPar * bias
Definition: common.h:54
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
double * cl_dd
Definition: common.h:56
void spline_free(SplPar *spl)
Definition: common.c:81
double * wt_cc
Definition: common.h:82
SplPar ** wind_M
Definition: common.h:52
int has_dens
Definition: common.h:43
double * cl_li
Definition: common.h:63
double wa
Definition: common.h:25
double * wt_d2l1
Definition: common.h:75
int has_bg
Definition: common.h:42
char ** fname_window
Definition: common.h:27
SplPar ** wind_L
Definition: common.h:53
SplPar * fgofchi
Definition: common.h:50
double * cl_ii
Definition: common.h:66
double * wt_ii
Definition: common.h:84
int has_lensing
Definition: common.h:45
double * wt_ll_mm
Definition: common.h:79
double * cl_dc
Definition: common.h:59
double * wt_dd
Definition: common.h:73
double s8
Definition: common.h:26
#define D_LKMAX
Definition: params.h:8
static double w[2][28][111]
Definition: ccl_emu17.c:33
double ol
Definition: common.h:24
int do_w_theta
Definition: common.h:67
double xf
Definition: ccl_utils.h:52
double * wt_ci
Definition: common.h:83
double * cl_lc
Definition: common.h:62
int dam_linecount(FILE *f)
Definition: common.c:29
void param_free ( RunParams par)

Definition at line 162 of file common.c.

References RunParams::aofchi, RunParams::bias, RunParams::cl_cc, RunParams::cl_ci, RunParams::cl_d1l2, RunParams::cl_d2l1, RunParams::cl_dc, RunParams::cl_dd, RunParams::cl_di, RunParams::cl_ii, RunParams::cl_lc, RunParams::cl_li, RunParams::cl_ll, RunParams::cpar, RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::do_w_theta, RunParams::fgofchi, RunParams::gfofchi, RunParams::has_bg, RunParams::has_dens, RunParams::has_lensing, RunParams::hofchi, RunParams::sbias, spline_free(), RunParams::wind_0, RunParams::wind_L, RunParams::wind_M, RunParams::wt_ci, RunParams::wt_d1l2, RunParams::wt_d2l1, RunParams::wt_dc, RunParams::wt_dd, RunParams::wt_di, RunParams::wt_lc, RunParams::wt_li, RunParams::wt_ll_mm, RunParams::wt_ll_pp, and RunParams::zofchi.

Referenced by main().

163 {
164  csm_params_free(par->cpar);
165  if(par->has_bg) {
166  spline_free(par->aofchi);
167  spline_free(par->zofchi);
168  spline_free(par->hofchi);
169  spline_free(par->gfofchi);
170  spline_free(par->fgofchi);
171  }
172  if(par->do_nc || par->do_shear) {
173  spline_free(par->wind_0[0]);
174  spline_free(par->wind_0[1]);
175  free(par->wind_0);
176  }
177  if(par->do_nc) {
178  free(par->cl_dd);
179  if(par->do_w_theta)
180  free(par->wt_dd);
181  if(par->do_shear) {
182  free(par->cl_d1l2);
183  free(par->cl_d2l1);
184  if(par->do_w_theta) {
185  free(par->wt_d1l2);
186  free(par->wt_d2l1);
187  }
188  }
189  if(par->do_cmblens) {
190  free(par->cl_dc);
191  if(par->do_w_theta)
192  free(par->wt_dc);
193  }
194  if(par->do_isw) {
195  free(par->cl_di);
196  if(par->do_w_theta)
197  free(par->wt_di);
198  }
199  if(par->has_dens)
200  spline_free(par->bias);
201  if(par->has_lensing) {
202  spline_free(par->sbias);
203  spline_free(par->wind_M[0]);
204  spline_free(par->wind_M[1]);
205  free(par->wind_M);
206  }
207  }
208  if(par->do_shear) {
209  spline_free(par->wind_L[0]);
210  spline_free(par->wind_L[1]);
211  free(par->wind_L);
212  free(par->cl_ll);
213  if(par->do_w_theta) {
214  free(par->wt_ll_pp);
215  free(par->wt_ll_mm);
216  }
217  if(par->do_cmblens) {
218  free(par->cl_lc);
219  if(par->do_w_theta)
220  free(par->wt_lc);
221  }
222  if(par->do_isw) {
223  free(par->cl_li);
224  if(par->do_w_theta)
225  free(par->wt_li);
226  }
227  }
228  if(par->do_cmblens) {
229  free(par->cl_cc);
230  if(par->do_isw) {
231  free(par->cl_ci);
232  if(par->do_w_theta)
233  free(par->wt_ci);
234  }
235  }
236  if(par->do_isw)
237  free(par->cl_ii);
238 
239  free(par);
240 }
double * cl_ci
Definition: common.h:65
double * wt_d1l2
Definition: common.h:74
SplPar * sbias
Definition: common.h:55
double * wt_di
Definition: common.h:77
double * wt_li
Definition: common.h:81
double * cl_d1l2
Definition: common.h:57
int do_isw
Definition: common.h:41
double * wt_dc
Definition: common.h:76
SplPar * hofchi
Definition: common.h:48
Csm_params * cpar
Definition: common.h:33
SplPar * zofchi
Definition: common.h:47
double * wt_lc
Definition: common.h:80
double * wt_ll_pp
Definition: common.h:78
int do_cmblens
Definition: common.h:40
SplPar * gfofchi
Definition: common.h:49
double * cl_cc
Definition: common.h:64
SplPar ** wind_0
Definition: common.h:51
double * cl_di
Definition: common.h:60
SplPar * aofchi
Definition: common.h:46
double * cl_d2l1
Definition: common.h:58
double * cl_ll
Definition: common.h:61
SplPar * bias
Definition: common.h:54
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
double * cl_dd
Definition: common.h:56
void spline_free(SplPar *spl)
Definition: common.c:81
SplPar ** wind_M
Definition: common.h:52
int has_dens
Definition: common.h:43
double * cl_li
Definition: common.h:63
double * wt_d2l1
Definition: common.h:75
int has_bg
Definition: common.h:42
SplPar ** wind_L
Definition: common.h:53
SplPar * fgofchi
Definition: common.h:50
double * cl_ii
Definition: common.h:66
int has_lensing
Definition: common.h:45
double * wt_ll_mm
Definition: common.h:79
double * cl_dc
Definition: common.h:59
double * wt_dd
Definition: common.h:73
int do_w_theta
Definition: common.h:67
double * wt_ci
Definition: common.h:83
double * cl_lc
Definition: common.h:62
RunParams* param_new ( void  )

Definition at line 88 of file common.c.

References RunParams::aofchi, RunParams::bias, RunParams::chi_horizon, RunParams::chi_LSS, RunParams::cl_cc, RunParams::cl_ci, RunParams::cl_d1l2, RunParams::cl_d2l1, RunParams::cl_dc, RunParams::cl_dd, RunParams::cl_di, RunParams::cl_ii, RunParams::cl_lc, RunParams::cl_li, RunParams::cl_ll, RunParams::cpar, dam_malloc(), RunParams::dchi, RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::do_w_theta, RunParams::fgofchi, RunParams::fname_bias, RunParams::fname_pk, RunParams::fname_sbias, RunParams::fname_window, RunParams::gfofchi, RunParams::has_bg, RunParams::has_dens, RunParams::has_lensing, RunParams::has_rsd, RunParams::hofchi, RunParams::lmax, RunParams::n_th, RunParams::n_th_logint, RunParams::ns, RunParams::ob, RunParams::ol, RunParams::om, RunParams::prefac_lensing, RunParams::prefix_out, RunParams::s8, RunParams::sbias, RunParams::th_max, RunParams::th_min, RunParams::w0, RunParams::wa, RunParams::wind_0, RunParams::wind_L, RunParams::wind_M, RunParams::wt_cc, RunParams::wt_ci, RunParams::wt_d1l2, RunParams::wt_d2l1, RunParams::wt_dc, RunParams::wt_dd, RunParams::wt_di, RunParams::wt_ii, RunParams::wt_lc, RunParams::wt_li, RunParams::wt_ll_mm, RunParams::wt_ll_pp, and RunParams::zofchi.

Referenced by init_params().

89 {
90  RunParams *par=(RunParams *)dam_malloc(sizeof(RunParams));
91  par->om=0.3;
92  par->ol=0.7;
93  par->ob=0.05;
94  par->w0=-1.;
95  par->wa=0.;
96  par->ns=0.96;
97  par->s8=0.8;
98  par->fname_window=dam_malloc(2*sizeof(char *));
99  par->fname_window[0]=dam_malloc(256*sizeof(char));
100  par->fname_window[1]=dam_malloc(256*sizeof(char));
101  sprintf(par->fname_window[0],"default");
102  sprintf(par->fname_window[1],"default");
103  sprintf(par->fname_bias,"default");
104  sprintf(par->fname_sbias,"default");
105  sprintf(par->fname_pk,"default");
106  sprintf(par->prefix_out,"default");
107  par->lmax=100;
108  par->cpar=NULL;
109  par->chi_horizon=-1.;
110  par->chi_LSS=-1.;
111  par->prefac_lensing=-1.;
112  par->dchi=-1.;
113  par->aofchi=NULL;
114  par->zofchi=NULL;
115  par->hofchi=NULL;
116  par->gfofchi=NULL;
117  par->fgofchi=NULL;
118  par->wind_0=NULL;
119  par->wind_M=NULL;
120  par->wind_L=NULL;
121  par->bias=NULL;
122  par->sbias=NULL;
123  par->do_nc=0;
124  par->do_shear=0;
125  par->do_cmblens=0;
126  par->do_isw=0;
127  par->has_bg=0;
128  par->has_dens=0;
129  par->has_rsd=0;
130  par->has_lensing=0;
131  par->cl_dd=NULL;
132  par->cl_d1l2=NULL;
133  par->cl_d2l1=NULL;
134  par->cl_dc=NULL;
135  par->cl_di=NULL;
136  par->cl_ll=NULL;
137  par->cl_lc=NULL;
138  par->cl_li=NULL;
139  par->cl_cc=NULL;
140  par->cl_ci=NULL;
141  par->cl_ii=NULL;
142  par->do_w_theta=0;
143  par->th_min=0;
144  par->th_max=10.;
145  par->n_th=15;
146  par->n_th_logint=5;
147  par->wt_dd=NULL;
148  par->wt_d1l2=NULL;
149  par->wt_d2l1=NULL;
150  par->wt_dc=NULL;
151  par->wt_di=NULL;
152  par->wt_ll_pp=NULL;
153  par->wt_ll_mm=NULL;
154  par->wt_lc=NULL;
155  par->wt_li=NULL;
156  par->wt_cc=NULL;
157  par->wt_ci=NULL;
158  par->wt_ii=NULL;
159  return par;
160 }
double * cl_ci
Definition: common.h:65
double * wt_d1l2
Definition: common.h:74
SplPar * sbias
Definition: common.h:55
double chi_horizon
Definition: common.h:34
double * wt_di
Definition: common.h:77
double * wt_li
Definition: common.h:81
double prefac_lensing
Definition: common.h:36
double * cl_d1l2
Definition: common.h:57
int do_isw
Definition: common.h:41
double ns
Definition: common.h:26
double chi_LSS
Definition: common.h:35
double * wt_dc
Definition: common.h:76
SplPar * hofchi
Definition: common.h:48
Csm_params * cpar
Definition: common.h:33
SplPar * zofchi
Definition: common.h:47
int lmax
Definition: common.h:32
double * wt_lc
Definition: common.h:80
double w0
Definition: common.h:25
double * wt_ll_pp
Definition: common.h:78
int do_cmblens
Definition: common.h:40
double th_max
Definition: common.h:70
SplPar * gfofchi
Definition: common.h:49
double om
Definition: common.h:24
char fname_bias[256]
Definition: common.h:28
double * cl_cc
Definition: common.h:64
SplPar ** wind_0
Definition: common.h:51
int n_th
Definition: common.h:71
double * cl_di
Definition: common.h:60
int n_th_logint
Definition: common.h:72
char fname_pk[256]
Definition: common.h:30
char prefix_out[256]
Definition: common.h:31
double ob
Definition: common.h:24
SplPar * aofchi
Definition: common.h:46
double * cl_d2l1
Definition: common.h:58
double dchi
Definition: common.h:37
double * cl_ll
Definition: common.h:61
char fname_sbias[256]
Definition: common.h:29
void * dam_malloc(size_t size)
Definition: common.c:3
SplPar * bias
Definition: common.h:54
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
double * cl_dd
Definition: common.h:56
int has_rsd
Definition: common.h:44
double * wt_cc
Definition: common.h:82
SplPar ** wind_M
Definition: common.h:52
int has_dens
Definition: common.h:43
double th_min
Definition: common.h:69
double * cl_li
Definition: common.h:63
double wa
Definition: common.h:25
double * wt_d2l1
Definition: common.h:75
int has_bg
Definition: common.h:42
char ** fname_window
Definition: common.h:27
SplPar ** wind_L
Definition: common.h:53
SplPar * fgofchi
Definition: common.h:50
double * cl_ii
Definition: common.h:66
double * wt_ii
Definition: common.h:84
int has_lensing
Definition: common.h:45
double * wt_ll_mm
Definition: common.h:79
double * cl_dc
Definition: common.h:59
double * wt_dd
Definition: common.h:73
double s8
Definition: common.h:26
double ol
Definition: common.h:24
int do_w_theta
Definition: common.h:67
double * wt_ci
Definition: common.h:83
double * cl_lc
Definition: common.h:62
int read_parameter_file ( char *  fname,
RunParams par 
)

Definition at line 112 of file io.c.

References dam_fopen(), dam_linecount(), dam_report_error(), RunParams::dchi, RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::do_w_theta, RunParams::do_w_theta_logbin, RunParams::fname_bias, RunParams::fname_pk, RunParams::fname_sbias, RunParams::fname_window, RunParams::h0, RunParams::has_bg, RunParams::has_dens, RunParams::has_lensing, RunParams::has_rsd, RunParams::lmax, RunParams::n_th, RunParams::n_th_logint, RunParams::ns, RunParams::ob, RunParams::ol, RunParams::om, RunParams::prefix_out, RunParams::s8, RunParams::th_max, RunParams::th_min, RunParams::w0, and RunParams::wa.

Referenced by init_params().

113 {
114  FILE *fi;
115  int n_lin,ii;
116 
117  //Read parameters from file
118  fi=dam_fopen(fname,"r");
119  n_lin=dam_linecount(fi); rewind(fi);
120  for(ii=0;ii<n_lin;ii++) {
121  char s0[512],s1[64],s2[256];
122  if(fgets(s0,sizeof(s0),fi)==NULL)
123  dam_report_error(1,"Error reading line %d, file %s\n",ii+1,fname);
124  if((s0[0]=='#')||(s0[0]=='\n')||(s0[0]==' ')) continue;
125  int sr=sscanf(s0,"%s %s",s1,s2);
126  if(sr!=2)
127  dam_report_error(1,"Error reading line %d, file %s\n",ii+1,fname);
128 
129  if(!strcmp(s1,"omega_m="))
130  par->om=atof(s2);
131  else if(!strcmp(s1,"omega_l="))
132  par->ol=atof(s2);
133  else if(!strcmp(s1,"omega_b="))
134  par->ob=atof(s2);
135  else if(!strcmp(s1,"w0="))
136  par->w0=atof(s2);
137  else if(!strcmp(s1,"wa="))
138  par->wa=atof(s2);
139  else if(!strcmp(s1,"h="))
140  par->h0=atof(s2);
141  else if(!strcmp(s1,"ns="))
142  par->ns=atof(s2);
143  else if(!strcmp(s1,"s8="))
144  par->s8=atof(s2);
145  else if(!strcmp(s1,"d_chi="))
146  par->dchi=atof(s2);
147  else if(!strcmp(s1,"l_max="))
148  par->lmax=atoi(s2);
149  else if(!strcmp(s1,"do_nc="))
150  par->do_nc=atoi(s2);
151  else if(!strcmp(s1,"has_nc_dens="))
152  par->has_dens=atoi(s2);
153  else if(!strcmp(s1,"has_nc_rsd="))
154  par->has_rsd=atoi(s2);
155  else if(!strcmp(s1,"has_nc_lensing="))
156  par->has_lensing=atoi(s2);
157  else if(!strcmp(s1,"do_shear="))
158  par->do_shear=atoi(s2);
159  else if(!strcmp(s1,"do_cmblens="))
160  par->do_cmblens=atoi(s2);
161  else if(!strcmp(s1,"do_isw="))
162  par->do_isw=atoi(s2);
163  else if(!strcmp(s1,"do_w_theta="))
164  par->do_w_theta=atoi(s2);
165  else if(!strcmp(s1,"use_logbin="))
166  par->do_w_theta_logbin=atoi(s2);
167  else if(!strcmp(s1,"theta_min="))
168  par->th_min=atof(s2);
169  else if(!strcmp(s1,"theta_max="))
170  par->th_max=atof(s2);
171  else if(!strcmp(s1,"n_bins_theta="))
172  par->n_th=atof(s2);
173  else if(!strcmp(s1,"n_bins_decade="))
174  par->n_th_logint=atof(s2);
175  else if(!strcmp(s1,"window_1_fname="))
176  sprintf(par->fname_window[0],"%s",s2);
177  else if(!strcmp(s1,"window_2_fname="))
178  sprintf(par->fname_window[1],"%s",s2);
179  else if(!strcmp(s1,"bias_fname="))
180  sprintf(par->fname_bias,"%s",s2);
181  else if(!strcmp(s1,"sbias_fname="))
182  sprintf(par->fname_sbias,"%s",s2);
183  else if(!strcmp(s1,"pk_fname="))
184  sprintf(par->fname_pk,"%s",s2);
185  else if(!strcmp(s1,"prefix_out="))
186  sprintf(par->prefix_out,"%s",s2);
187  else
188  dam_report_error(0,"Unknown parameter %s\n",s1);
189  }
190  fclose(fi);
191 
192  if(par->do_w_theta==0)
193  par->do_w_theta_logbin=0;
194 
195  par->has_bg=1;
196 
197  return 0;
198 }
void dam_report_error(int level, char *fmt,...)
Definition: common.c:39
int do_isw
Definition: common.h:41
double ns
Definition: common.h:26
int lmax
Definition: common.h:32
double w0
Definition: common.h:25
int do_cmblens
Definition: common.h:40
double th_max
Definition: common.h:70
FILE * dam_fopen(const char *path, const char *mode)
Definition: common.c:20
double om
Definition: common.h:24
char fname_bias[256]
Definition: common.h:28
int n_th
Definition: common.h:71
int n_th_logint
Definition: common.h:72
char fname_pk[256]
Definition: common.h:30
char prefix_out[256]
Definition: common.h:31
double ob
Definition: common.h:24
double dchi
Definition: common.h:37
char fname_sbias[256]
Definition: common.h:29
double h0
Definition: common.h:25
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
double th_min
Definition: common.h:69
double wa
Definition: common.h:25
int has_bg
Definition: common.h:42
char ** fname_window
Definition: common.h:27
int has_lensing
Definition: common.h:45
double s8
Definition: common.h:26
double ol
Definition: common.h:24
int do_w_theta
Definition: common.h:67
int do_w_theta_logbin
Definition: common.h:68
int dam_linecount(FILE *f)
Definition: common.c:29
double spline_eval ( double  x,
SplPar spl 
)

Definition at line 71 of file common.c.

References SplPar::intacc, SplPar::spline, SplPar::xf, SplPar::y0, and SplPar::yf.

Referenced by integrand_wl(), integrand_wm(), speval_bis(), transfer_cmblens(), transfer_dens(), transfer_isw(), transfer_lensing(), transfer_magnification(), transfer_rsd(), and window_lensing().

72 {
73  if(x<=spl->x0)
74  return spl->y0;
75  else if(x>=spl->xf)
76  return spl->yf;
77  else
78  return gsl_spline_eval(spl->spline,x,spl->intacc);
79 }
double yf
Definition: ccl_utils.h:53
gsl_spline * spline
Definition: ccl_utils.h:51
double y0
Definition: ccl_utils.h:53
static CCL_BEGIN_DECLS double x[111][8]
gsl_interp_accel * intacc
Definition: ccl_utils.h:50
double xf
Definition: ccl_utils.h:52
void spline_free ( SplPar spl)

Definition at line 81 of file common.c.

References SplPar::intacc, and SplPar::spline.

Referenced by compute_wt_single(), init_params(), and param_free().

82 {
83  gsl_spline_free(spl->spline);
84  gsl_interp_accel_free(spl->intacc);
85  free(spl);
86 }
gsl_spline * spline
Definition: ccl_utils.h:51
gsl_interp_accel * intacc
Definition: ccl_utils.h:50
SplPar* spline_init ( int  n,
double x,
double y,
double  y0,
double  yf 
)

Definition at line 57 of file common.c.

References dam_malloc(), SplPar::intacc, SplPar::spline, SplPar::x0, SplPar::xf, SplPar::y0, and SplPar::yf.

Referenced by compute_wt_single(), and init_params().

58 {
59  SplPar *spl=(SplPar *)dam_malloc(sizeof(SplPar));
60  spl->intacc=gsl_interp_accel_alloc();
61  spl->spline=gsl_spline_alloc(gsl_interp_cspline,n);
62  gsl_spline_init(spl->spline,x,y,n);
63  spl->x0=x[0];
64  spl->xf=x[n-1];
65  spl->y0=y0;
66  spl->yf=yf;
67 
68  return spl;
69 }
double yf
Definition: ccl_utils.h:53
double x0
Definition: ccl_utils.h:52
gsl_spline * spline
Definition: ccl_utils.h:51
double y0
Definition: ccl_utils.h:53
static CCL_BEGIN_DECLS double x[111][8]
gsl_interp_accel * intacc
Definition: ccl_utils.h:50
void * dam_malloc(size_t size)
Definition: common.c:3
double xf
Definition: ccl_utils.h:52
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
void write_output ( RunParams par)

Definition at line 36 of file io.c.

References RunParams::cl_cc, RunParams::cl_ci, RunParams::cl_d1l2, RunParams::cl_d2l1, RunParams::cl_dc, RunParams::cl_dd, RunParams::cl_di, RunParams::cl_ii, RunParams::cl_lc, RunParams::cl_li, RunParams::cl_ll, RunParams::do_cmblens, RunParams::do_isw, RunParams::do_nc, RunParams::do_shear, RunParams::do_w_theta, RunParams::do_w_theta_logbin, RunParams::lmax, RunParams::n_th, RunParams::n_th_logint, RunParams::prefix_out, RunParams::th_max, RunParams::th_min, write_cl_single(), write_wt_single(), RunParams::wt_cc, RunParams::wt_ci, RunParams::wt_d1l2, RunParams::wt_d2l1, RunParams::wt_dc, RunParams::wt_dd, RunParams::wt_di, RunParams::wt_ii, RunParams::wt_lc, RunParams::wt_li, RunParams::wt_ll_mm, and RunParams::wt_ll_pp.

Referenced by main().

37 {
38  if(par->do_nc) {
39  write_cl_single(par->lmax,par->cl_dd,par->prefix_out,"dd");
40  if(par->do_shear) {
41  write_cl_single(par->lmax,par->cl_d1l2,par->prefix_out,"d1l2");
42  write_cl_single(par->lmax,par->cl_d2l1,par->prefix_out,"d2l1");
43  }
44  if(par->do_cmblens)
45  write_cl_single(par->lmax,par->cl_dc,par->prefix_out,"dc");
46  if(par->do_isw)
47  write_cl_single(par->lmax,par->cl_di,par->prefix_out,"di");
48  }
49  if(par->do_shear) {
50  write_cl_single(par->lmax,par->cl_ll,par->prefix_out,"ll");
51  if(par->do_cmblens)
52  write_cl_single(par->lmax,par->cl_lc,par->prefix_out,"lc");
53  if(par->do_isw)
54  write_cl_single(par->lmax,par->cl_li,par->prefix_out,"li");
55  }
56  if(par->do_cmblens) {
57  write_cl_single(par->lmax,par->cl_cc,par->prefix_out,"cc");
58  if(par->do_isw)
59  write_cl_single(par->lmax,par->cl_ci,par->prefix_out,"ci");
60  }
61  if(par->do_isw)
62  write_cl_single(par->lmax,par->cl_ii,par->prefix_out,"ii");
63 
64  if(par->do_w_theta) {
65  if(par->do_nc) {
66  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
67  par->do_w_theta_logbin,par->wt_dd,par->prefix_out,"dd");
68  if(par->do_shear) {
69  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
70  par->do_w_theta_logbin,par->wt_d1l2,par->prefix_out,"d1l2");
71  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
72  par->do_w_theta_logbin,par->wt_d2l1,par->prefix_out,"d2l1");
73  }
74  if(par->do_cmblens) {
75  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
76  par->do_w_theta_logbin,par->wt_dc,par->prefix_out,"dc");
77  }
78  if(par->do_isw) {
79  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
80  par->do_w_theta_logbin,par->wt_di,par->prefix_out,"di");
81  }
82  }
83  if(par->do_shear) {
84  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
85  par->do_w_theta_logbin,par->wt_ll_pp,par->prefix_out,"ll_pp");
86  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
87  par->do_w_theta_logbin,par->wt_ll_mm,par->prefix_out,"ll_mm");
88  if(par->do_cmblens) {
89  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
90  par->do_w_theta_logbin,par->wt_lc,par->prefix_out,"lc");
91  }
92  if(par->do_isw) {
93  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
94  par->do_w_theta_logbin,par->wt_li,par->prefix_out,"li");
95  }
96  }
97  if(par->do_cmblens) {
98  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
99  par->do_w_theta_logbin,par->wt_cc,par->prefix_out,"cc");
100  if(par->do_isw) {
101  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
102  par->do_w_theta_logbin,par->wt_ci,par->prefix_out,"ci");
103  }
104  }
105  if(par->do_isw) {
106  write_wt_single(par->n_th,par->n_th_logint,par->th_min,par->th_max,
107  par->do_w_theta_logbin,par->wt_ii,par->prefix_out,"ii");
108  }
109  }
110 }
double * cl_ci
Definition: common.h:65
double * wt_d1l2
Definition: common.h:74
double * wt_di
Definition: common.h:77
double * wt_li
Definition: common.h:81
double * cl_d1l2
Definition: common.h:57
int do_isw
Definition: common.h:41
double * wt_dc
Definition: common.h:76
int lmax
Definition: common.h:32
double * wt_lc
Definition: common.h:80
double * wt_ll_pp
Definition: common.h:78
int do_cmblens
Definition: common.h:40
double th_max
Definition: common.h:70
double * cl_cc
Definition: common.h:64
int n_th
Definition: common.h:71
double * cl_di
Definition: common.h:60
int n_th_logint
Definition: common.h:72
static void write_wt_single(int n_th, int n_th_logint, int th_min, int th_max, int do_logbin, double *wt, char *prefix, char *suffix)
Definition: io.c:3
char prefix_out[256]
Definition: common.h:31
double * cl_d2l1
Definition: common.h:58
double * cl_ll
Definition: common.h:61
int do_shear
Definition: common.h:39
int do_nc
Definition: common.h:38
double * cl_dd
Definition: common.h:56
double * wt_cc
Definition: common.h:82
double th_min
Definition: common.h:69
double * cl_li
Definition: common.h:63
double * wt_d2l1
Definition: common.h:75
double * cl_ii
Definition: common.h:66
double * wt_ii
Definition: common.h:84
double * wt_ll_mm
Definition: common.h:79
double * cl_dc
Definition: common.h:59
double * wt_dd
Definition: common.h:73
int do_w_theta
Definition: common.h:67
static void write_cl_single(int lmax, double *cl, char *prefix, char *suffix)
Definition: io.c:23
int do_w_theta_logbin
Definition: common.h:68
double * wt_ci
Definition: common.h:83
double * cl_lc
Definition: common.h:62