CLASS MANUAL
spectra.h
Go to the documentation of this file.
1 
3 #ifndef __SPECTRA__
4 #define __SPECTRA__
5 
6 #include "transfer.h"
7 
17 struct spectra {
18 
25 
26  double z_max_pk;
29  int non_diag;
36 
40 
41  int md_size;
44  int * ic_size;
45  int * ic_ic_size;
46  short ** is_non_zero;
49 
53 
54  int has_tt;
55  int has_ee;
56  int has_te;
57  int has_bb;
58  int has_pp;
59  int has_tp;
60  int has_ep;
61  int has_dd;
62  int has_td;
63  int has_pd;
64  int has_ll;
65  int has_tl;
66  int has_dl;
82  int d_size;
84  int ct_size;
87 
91 
92  int * l_size;
94  int l_size_max;
96  double * l;
99  int ** l_max_ct;
105  int * l_max;
111  int l_max_tot;
117  double ** cl;
118  double ** ddcl;
120  double alpha_II_2_20;
121  double alpha_RI_2_20;
122  double alpha_RR_2_20;
136  double alpha_kp;
137  double alpha_k1;
138  double alpha_k2;
141 
145 
146  int ln_k_size;
147  double * ln_k;
150  double * ln_tau;
152  double * ln_pk;
167  double * ddln_pk;
177  double sigma8;
179  double * ln_pk_nl;
183  double * ddln_pk_nl;
207  int tr_size;
209  double * matter_transfer;
213  double * ddmatter_transfer;
215  /* double * LddCl; /\**< density Cl's in the Limber plus thin shell approximation (then, there are no non-diagonal correlations between various shells of different redshifts); depends on index_tau,index_l as: LddCl[index_tau*psp->psp->l_size[psp->index_md_scalars]+index_l] *\/ */
216 
217  /* double * LTdCl; /\**< cross (temperature * density) Cl's in the Limber plus thin shell approximation; depends on index_tau,index_l as: LTdCl[index_tau*psp->psp->l_size[psp->index_md_scalars]+index_l] *\/ */
218 
220 
224 
227  ErrorMsg error_message;
230 };
231 
232 /*************************************************************************************************************/
233 /* @cond INCLUDE_WITH_DOXYGEN */
234 /*
235  * Boilerplate for C++
236  */
237 #ifdef __cplusplus
238 extern "C" {
239 #endif
240 
241  int spectra_bandpower(
242  struct spectra * psp,
243  int l1,
244  int l2,
245  double * TT_II,
246  double * TT_RI,
247  double * TT_RR
248  );
249 
250  int spectra_cl_at_l(
251  struct spectra * psp,
252  double l,
253  double * cl,
254  double ** cl_md,
255  double ** cl_md_ic
256  );
257 
258  int spectra_pk_at_z(
259  struct background * pba,
260  struct spectra * psp,
261  enum linear_or_logarithmic mode,
262  double z,
263  double * output_tot,
264  double * output_ic
265  );
266 
268  struct background * pba,
269  struct primordial * ppm,
270  struct spectra * psp,
271  double k,
272  double z,
273  double * pk,
274  double * pk_ic
275  );
276 
277  int spectra_pk_nl_at_z(
278  struct background * pba,
279  struct spectra * psp,
280  enum linear_or_logarithmic mode,
281  double z,
282  double * output_tot
283  );
284 
286  struct background * pba,
287  struct primordial * ppm,
288  struct spectra * psp,
289  double k,
290  double z,
291  double * pk_tot
292  );
293 
294  int spectra_tk_at_z(
295  struct background * pba,
296  struct spectra * psp,
297  double z,
298  double * output
299  );
300 
302  struct background * pba,
303  struct spectra * psp,
304  double k,
305  double z,
306  double * output
307  );
308 
309  int spectra_init(
310  struct precision * ppr,
311  struct background * pba,
312  struct perturbs * ppt,
313  struct primordial * ppm,
314  struct nonlinear *pnl,
315  struct transfers * ptr,
316  struct spectra * psp
317  );
318 
319  int spectra_free(
320  struct spectra * psp
321  );
322 
323  int spectra_indices(
324  struct background * pba,
325  struct perturbs * ppt,
326  struct transfers * ptr,
327  struct primordial * ppm,
328  struct spectra * psp
329  );
330 
331  int spectra_cls(
332  struct background * pba,
333  struct perturbs * ppt,
334  struct transfers * ptr,
335  struct primordial * ppm,
336  struct spectra * psp
337  );
338 
339  int spectra_compute_cl(
340  struct background * pba,
341  struct perturbs * ppt,
342  struct transfers * ptr,
343  struct primordial * ppm,
344  struct spectra * psp,
345  int index_md,
346  int index_ic1,
347  int index_ic2,
348  int index_l,
349  int cl_integrand_num_columns,
350  double * cl_integrand,
351  double * primordial_pk,
352  double * transfer_ic1,
353  double * transfer_ic2
354  );
355 
356  int spectra_k_and_tau(
357  struct background * pba,
358  struct perturbs * ppt,
359  struct spectra * psp
360  );
361 
362  int spectra_pk(
363  struct background * pba,
364  struct perturbs * ppt,
365  struct primordial * ppm,
366  struct nonlinear *pnl,
367  struct spectra * psp
368  );
369 
370  int spectra_sigma(
371  struct background * pba,
372  struct primordial * ppm,
373  struct spectra * psp,
374  double R,
375  double z,
376  double *sigma
377  );
378 
380  struct background * pba,
381  struct perturbs * ppt,
382  struct spectra * psp
383  );
384 
385  int spectra_output_tk_titles(struct background *pba,
386  struct perturbs *ppt,
387  enum file_format output_format,
388  char titles[_MAXTITLESTRINGLENGTH_]
389  );
390 
392  struct background * pba,
393  struct perturbs * ppt,
394  struct spectra * psp,
395  enum file_format output_format,
396  double z,
397  int number_of_titles,
398  double *data
399  );
400 
401  int spectra_firstline_and_ic_suffix(struct perturbs *ppt,
402  int index_ic,
403  char first_line[_LINE_LENGTH_MAX_],
404  FileName ic_suffix);
405 
406 #ifdef __cplusplus
407 }
408 #endif
409 
410 #endif
411 /* @endcond */
int spectra_tk_at_z(struct background *pba, struct spectra *psp, double z, double *output)
Definition: spectra.c:1024
int has_ll
Definition: spectra.h:64
int index_tr_theta_dr
Definition: spectra.h:202
int index_ct_pd
Definition: spectra.h:77
int index_ct_pp
Definition: spectra.h:72
double * ln_pk_nl
Definition: spectra.h:179
Definition: background.h:25
int spectra_output_tk_data(struct background *pba, struct perturbs *ppt, struct spectra *psp, enum file_format output_format, double z, int number_of_titles, double *data)
Definition: spectra.c:3335
int index_ct_tt
Definition: spectra.h:68
int index_tr_delta_ur
Definition: spectra.h:191
ErrorMsg error_message
Definition: spectra.h:227
int has_te
Definition: spectra.h:56
int index_ct_ee
Definition: spectra.h:69
double alpha_RR_2_2500
Definition: spectra.h:134
int index_tr_delta_dcdm
Definition: spectra.h:188
double * l
Definition: spectra.h:96
int index_tr_delta_ncdm1
Definition: spectra.h:193
double * ddln_pk
Definition: spectra.h:167
double * ln_tau
Definition: spectra.h:150
int has_td
Definition: spectra.h:62
int index_tr_theta_tot
Definition: spectra.h:204
int index_ct_bb
Definition: spectra.h:71
Definition: spectra.h:17
double alpha_RI_2_2500
Definition: spectra.h:133
Definition: nonlinear.h:20
Definition: perturbations.h:95
int index_ct_td
Definition: spectra.h:76
double alpha_RI_21_200
Definition: spectra.h:125
double z_max_pk
Definition: spectra.h:26
int tr_size
Definition: spectra.h:207
int index_tr_delta_g
Definition: spectra.h:185
int ct_size
Definition: spectra.h:84
int * ic_size
Definition: spectra.h:44
int spectra_pk_at_k_and_z(struct background *pba, struct primordial *ppm, struct spectra *psp, double k, double z, double *pk_tot, double *pk_ic)
Definition: spectra.c:536
int index_ct_te
Definition: spectra.h:70
int spectra_free(struct spectra *psp)
Definition: spectra.c:1409
int spectra_tk_at_k_and_z(struct background *pba, struct spectra *psp, double k, double z, double *output)
Definition: spectra.c:1118
short ** is_non_zero
Definition: spectra.h:46
int has_ee
Definition: spectra.h:55
int spectra_cls(struct background *pba, struct perturbs *ppt, struct transfers *ptr, struct primordial *ppm, struct spectra *psp)
Definition: spectra.c:1806
double alpha_II_201_2500
Definition: spectra.h:128
int has_pp
Definition: spectra.h:58
int l_max_tot
Definition: spectra.h:111
int index_ct_ll
Definition: spectra.h:78
int ln_k_size
Definition: spectra.h:146
double alpha_k1
Definition: spectra.h:137
int spectra_pk_nl_at_k_and_z(struct background *pba, struct primordial *ppm, struct spectra *psp, double k, double z, double *pk_tot)
Definition: spectra.c:924
double alpha_RR_2_20
Definition: spectra.h:122
double alpha_kp
Definition: spectra.h:136
double * ln_k
Definition: spectra.h:147
int index_ct_dd
Definition: spectra.h:75
int index_tr_delta_dr
Definition: spectra.h:192
int index_tr_theta_ncdm1
Definition: spectra.h:203
int has_pd
Definition: spectra.h:63
double ** cl
Definition: spectra.h:117
double alpha_RI_201_2500
Definition: spectra.h:129
double * ln_pk
Definition: spectra.h:152
int index_tr_theta_ur
Definition: spectra.h:201
int has_dd
Definition: spectra.h:61
int md_size
Definition: spectra.h:41
Definition: output.h:22
int * l_max
Definition: spectra.h:105
int d_size
Definition: spectra.h:82
int index_tr_phi
Definition: spectra.h:205
double alpha_RR_21_200
Definition: spectra.h:126
int index_tr_theta_fld
Definition: spectra.h:200
int index_ct_ep
Definition: spectra.h:74
int spectra_init(struct precision *ppr, struct background *pba, struct perturbs *ppt, struct primordial *ppm, struct nonlinear *pnl, struct transfers *ptr, struct spectra *psp)
Definition: spectra.c:1206
int spectra_pk_nl_at_z(struct background *pba, struct spectra *psp, enum linear_or_logarithmic mode, double z, double *output_tot)
Definition: spectra.c:828
int spectra_k_and_tau(struct background *pba, struct perturbs *ppt, struct spectra *psp)
Definition: spectra.c:2434
Definition: transfer.h:38
int l_size_max
Definition: spectra.h:94
int spectra_pk(struct background *pba, struct perturbs *ppt, struct primordial *ppm, struct nonlinear *pnl, struct spectra *psp)
Definition: spectra.c:2536
double alpha_RI_2_20
Definition: spectra.h:121
int has_ep
Definition: spectra.h:60
int index_tr_delta_cdm
Definition: spectra.h:187
int index_tr_theta_b
Definition: spectra.h:196
double alpha_II_21_200
Definition: spectra.h:124
int index_tr_delta_scf
Definition: spectra.h:189
int non_diag
Definition: spectra.h:29
int * ic_ic_size
Definition: spectra.h:45
double alpha_II_2_2500
Definition: spectra.h:132
int spectra_compute_cl(struct background *pba, struct perturbs *ppt, struct transfers *ptr, struct primordial *ppm, struct spectra *psp, int index_md, int index_ic1, int index_ic2, int index_l, int cl_integrand_num_columns, double *cl_integrand, double *primordial_pk, double *transfer_ic1, double *transfer_ic2)
Definition: spectra.c:2014
int has_tl
Definition: spectra.h:65
int index_tr_theta_cdm
Definition: spectra.h:197
int * l_size
Definition: spectra.h:92
int index_tr_delta_fld
Definition: spectra.h:190
file_format
Definition: common.h:337
int index_ct_tp
Definition: spectra.h:73
int has_tp
Definition: spectra.h:59
int has_tt
Definition: spectra.h:54
int index_tr_delta_b
Definition: spectra.h:186
int index_ct_dl
Definition: spectra.h:80
double alpha_II_2_20
Definition: spectra.h:120
double ** ddcl
Definition: spectra.h:118
int index_tr_theta_dcdm
Definition: spectra.h:198
int ** l_max_ct
Definition: spectra.h:99
int index_tr_psi
Definition: spectra.h:206
int index_md_scalars
Definition: spectra.h:42
int spectra_sigma(struct background *pba, struct primordial *ppm, struct spectra *psp, double R, double z, double *sigma)
Definition: spectra.c:2729
double * matter_transfer
Definition: spectra.h:209
int spectra_matter_transfers(struct background *pba, struct perturbs *ppt, struct spectra *psp)
Definition: spectra.c:2823
double * ddmatter_transfer
Definition: spectra.h:213
int spectra_pk_at_z(struct background *pba, struct spectra *psp, enum linear_or_logarithmic mode, double z, double *output_tot, double *output_ic)
Definition: spectra.c:341
linear_or_logarithmic
Definition: primordial.h:21
int has_dl
Definition: spectra.h:66
int index_tr_theta_scf
Definition: spectra.h:199
Definition: common.h:345
int index_ct_tl
Definition: spectra.h:79
Definition: primordial.h:79
int spectra_indices(struct background *pba, struct perturbs *ppt, struct transfers *ptr, struct primordial *ppm, struct spectra *psp)
Definition: spectra.c:1486
int ln_tau_size
Definition: spectra.h:149
int has_bb
Definition: spectra.h:57
double sigma8
Definition: spectra.h:177
double alpha_RR_201_2500
Definition: spectra.h:130
double alpha_k2
Definition: spectra.h:138
double * ddln_pk_nl
Definition: spectra.h:183
int index_tr_delta_tot
Definition: spectra.h:194
short spectra_verbose
Definition: spectra.h:225
int index_tr_theta_g
Definition: spectra.h:195
int spectra_cl_at_l(struct spectra *psp, double l, double *cl_tot, double **cl_md, double **cl_md_ic)
Definition: spectra.c:97