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

Go to the source code of this file.

Functions

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)
 
void dam_report_error (int level, char *fmt,...)
 
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)
 

Function Documentation

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 }
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
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