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;
212  int tr_size;
214  double * matter_transfer;
218  double * ddmatter_transfer;
220  /* 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] *\/ */
221 
222  /* 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] *\/ */
223 
225 
229 
232  ErrorMsg error_message;
235 };
236 
237 /*************************************************************************************************************/
238 /* @cond INCLUDE_WITH_DOXYGEN */
239 /*
240  * Boilerplate for C++
241  */
242 #ifdef __cplusplus
243 extern "C" {
244 #endif
245 
246  int spectra_bandpower(
247  struct spectra * psp,
248  int l1,
249  int l2,
250  double * TT_II,
251  double * TT_RI,
252  double * TT_RR
253  );
254 
255  int spectra_cl_at_l(
256  struct spectra * psp,
257  double l,
258  double * cl,
259  double ** cl_md,
260  double ** cl_md_ic
261  );
262 
263  int spectra_pk_at_z(
264  struct background * pba,
265  struct spectra * psp,
266  enum linear_or_logarithmic mode,
267  double z,
268  double * output_tot,
269  double * output_ic
270  );
271 
273  struct background * pba,
274  struct primordial * ppm,
275  struct spectra * psp,
276  double k,
277  double z,
278  double * pk,
279  double * pk_ic
280  );
281 
282  int spectra_pk_nl_at_z(
283  struct background * pba,
284  struct spectra * psp,
285  enum linear_or_logarithmic mode,
286  double z,
287  double * output_tot
288  );
289 
291  struct background * pba,
292  struct primordial * ppm,
293  struct spectra * psp,
294  double k,
295  double z,
296  double * pk_tot
297  );
298 
299  int spectra_tk_at_z(
300  struct background * pba,
301  struct spectra * psp,
302  double z,
303  double * output
304  );
305 
307  struct background * pba,
308  struct spectra * psp,
309  double k,
310  double z,
311  double * output
312  );
313 
314  int spectra_init(
315  struct precision * ppr,
316  struct background * pba,
317  struct perturbs * ppt,
318  struct primordial * ppm,
319  struct nonlinear *pnl,
320  struct transfers * ptr,
321  struct spectra * psp
322  );
323 
324  int spectra_free(
325  struct spectra * psp
326  );
327 
328  int spectra_indices(
329  struct background * pba,
330  struct perturbs * ppt,
331  struct transfers * ptr,
332  struct primordial * ppm,
333  struct spectra * psp
334  );
335 
336  int spectra_cls(
337  struct background * pba,
338  struct perturbs * ppt,
339  struct transfers * ptr,
340  struct primordial * ppm,
341  struct spectra * psp
342  );
343 
344  int spectra_compute_cl(
345  struct background * pba,
346  struct perturbs * ppt,
347  struct transfers * ptr,
348  struct primordial * ppm,
349  struct spectra * psp,
350  int index_md,
351  int index_ic1,
352  int index_ic2,
353  int index_l,
354  int cl_integrand_num_columns,
355  double * cl_integrand,
356  double * primordial_pk,
357  double * transfer_ic1,
358  double * transfer_ic2
359  );
360 
361  int spectra_k_and_tau(
362  struct background * pba,
363  struct perturbs * ppt,
364  struct spectra * psp
365  );
366 
367  int spectra_pk(
368  struct background * pba,
369  struct perturbs * ppt,
370  struct primordial * ppm,
371  struct nonlinear *pnl,
372  struct spectra * psp
373  );
374 
375  int spectra_sigma(
376  struct background * pba,
377  struct primordial * ppm,
378  struct spectra * psp,
379  double R,
380  double z,
381  double *sigma
382  );
383 
385  struct background * pba,
386  struct perturbs * ppt,
387  struct spectra * psp
388  );
389 
390  int spectra_output_tk_titles(struct background *pba,
391  struct perturbs *ppt,
392  enum file_format output_format,
393  char titles[_MAXTITLESTRINGLENGTH_]
394  );
395 
397  struct background * pba,
398  struct perturbs * ppt,
399  struct spectra * psp,
400  enum file_format output_format,
401  double z,
402  int number_of_titles,
403  double *data
404  );
405 
406  int spectra_firstline_and_ic_suffix(struct perturbs *ppt,
407  int index_ic,
408  char first_line[_LINE_LENGTH_MAX_],
409  FileName ic_suffix);
410 
411 #ifdef __cplusplus
412 }
413 #endif
414 
415 #endif
416 /* @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:3388
int index_ct_tt
Definition: spectra.h:68
int index_tr_delta_ur
Definition: spectra.h:191
ErrorMsg error_message
Definition: spectra.h:232
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_phi_prime
Definition: spectra.h:207
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: 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:212
int index_tr_delta_g
Definition: spectra.h:185
int ct_size
Definition: spectra.h:84
int * ic_size
Definition: spectra.h:44
int index_tr_eta_prime
Definition: spectra.h:211
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 index_tr_h
Definition: spectra.h:208
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:1811
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:2439
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:2541
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:2019
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
int index_tr_h_prime
Definition: spectra.h:209
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:2734
double * matter_transfer
Definition: spectra.h:214
int spectra_matter_transfers(struct background *pba, struct perturbs *ppt, struct spectra *psp)
Definition: spectra.c:2828
double * ddmatter_transfer
Definition: spectra.h:218
int index_tr_eta
Definition: spectra.h:210
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
Definition: nonlinear.h:20
short spectra_verbose
Definition: spectra.h:230
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