Structure containing everything about anisotropy and Fourier power spectra that other modules need to know.
Once initialized by spectra_init(), contains a table of all
's and P(k) as a function of multipole/wavenumber, mode (scalar/tensor...), type (for
's: TT, TE...), and pairs of initial conditions (adiabatic, isocurvatures...).
Data Fields |
double |
z_max_pk |
maximum value of z at which matter spectrum P(k,z) will be evaluated; keep fixed to zero if P(k) only needed today
|
int |
non_diag |
sets the number of cross-correlation spectra that you want to calculate: 0 means only auto-correlation, 1 means only adjacent bins, and number of bins minus one means all correlations
|
int |
md_size |
number of modes (scalar, tensor, ...) included in computation
|
int |
index_md_scalars |
index for scalar modes
|
int * |
ic_size |
for a given mode, ic_size[index_md] = number of initial conditions included in computation
|
int * |
ic_ic_size |
for a given mode, ic_ic_size[index_md] = number of pairs of (index_ic1, index_ic2) with index_ic2 >= index_ic1; this number is just N(N+1)/2 where N = ic_size[index_md]
|
short ** |
is_non_zero |
for a given mode, is_non_zero[index_md][index_ic1_ic2] is set to true if the pair of initial conditions (index_ic1, index_ic2) are statistically correlated, or to false if they are uncorrelated
|
int |
has_tt |
do we want ? (T = temperature)
|
int |
has_ee |
do we want ? (E = E-polarization)
|
int |
has_te |
do we want ?
|
int |
has_bb |
do we want ? (B = B-polarization)
|
int |
has_pp |
do we want ? ( = CMB lensing potential)
|
int |
has_tp |
do we want ?
|
int |
has_ep |
do we want ?
|
int |
has_dd |
do we want ? (d = density)
|
int |
has_td |
do we want ?
|
int |
has_pd |
do we want ?
|
int |
has_ll |
do we want ? (l = galaxy lensing potential)
|
int |
has_tl |
do we want ?
|
int |
has_dl |
do we want ?
|
int |
index_ct_tt |
index for type
|
int |
index_ct_ee |
index for type
|
int |
index_ct_te |
index for type
|
int |
index_ct_bb |
index for type
|
int |
index_ct_pp |
index for type
|
int |
index_ct_tp |
index for type
|
int |
index_ct_ep |
index for type
|
int |
index_ct_dd |
first index for type ((d_size*d_size-(d_size-non_diag)*(d_size-non_diag-1)/2) values)
|
int |
index_ct_td |
first index for type (d_size values)
|
int |
index_ct_pd |
first index for type (d_size values)
|
int |
index_ct_ll |
first index for type ((d_size*d_size-(d_size-non_diag)*(d_size-non_diag-1)/2) values)
|
int |
index_ct_tl |
first index for type (d_size values)
|
int |
index_ct_dl |
first index for type (d_size values)
|
int |
d_size |
number of bins for which density Cl's are computed
|
int |
ct_size |
number of types requested
|
int * |
l_size |
number of multipole values for each requested mode, l_size[index_md]
|
int |
l_size_max |
greatest of all l_size[index_md]
|
double * |
l |
list of multipole values l[index_l]
|
int ** |
l_max_ct |
last multipole (given as an input) at which we want to output 's for a given mode and type; l[index_md][l_size[index_md]-1] can be larger than l_max[index_md], in order to ensure a better interpolation with no boundary effects
|
int * |
l_max |
last multipole (given as an input) at which we want to output 's for a given mode (maximized over types); l[index_md][l_size[index_md]-1] can be larger than l_max[index_md], in order to ensure a better interpolation with no boundary effects
|
int |
l_max_tot |
last multipole (given as an input) at which we want to output 's (maximized over modes and types); l[index_md][l_size[index_md]-1] can be larger than l_max[index_md], in order to ensure a better interpolation with no boundary effects
|
double ** |
cl |
table of anisotropy spectra for each mode, multipole, pair of initial conditions and types, cl[index_md][(index_l * psp->ic_ic_size[index_md] + index_ic1_ic2) * psp->ct_size + index_ct]
|
double ** |
ddcl |
second derivatives of previous table with respect to l, in view of spline interpolation
|
double |
alpha_II_2_20 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [2,20] (see Planck parameter papers)
|
double |
alpha_RI_2_20 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [2,20] (see Planck parameter papers)
|
double |
alpha_RR_2_20 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [2,20] (see Planck parameter papers)
|
double |
alpha_II_21_200 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [21,200] (see Planck parameter papers)
|
double |
alpha_RI_21_200 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [21,200] (see Planck parameter papers)
|
double |
alpha_RR_21_200 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [21,200] (see Planck parameter papers)
|
double |
alpha_II_201_2500 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [201,2500] (see Planck parameter papers)
|
double |
alpha_RI_201_2500 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [201,2500] (see Planck parameter papers)
|
double |
alpha_RR_201_2500 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [201,2500] (see Planck parameter papers)
|
double |
alpha_II_2_2500 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [2,2500] (see Planck parameter papers)
|
double |
alpha_RI_2_2500 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [2,2500] (see Planck parameter papers)
|
double |
alpha_RR_2_2500 |
parameter describing adiabatic versus isocurvature contribution in mutipole range [2,2500] (see Planck parameter papers)
|
double |
alpha_kp |
parameter describing adiabatic versus isocurvature contribution at pivot scale (see Planck parameter papers)
|
double |
alpha_k1 |
parameter describing adiabatic versus isocurvature contribution at scale k1 (see Planck parameter papers)
|
double |
alpha_k2 |
parameter describing adiabatic versus isocurvature contribution at scale k2 (see Planck parameter papers)
|
int |
ln_k_size |
number ln(k) values
|
double * |
ln_k |
list of ln(k) values ln_k[index_k]
|
int |
ln_tau_size |
number ln(tau) values (only one if z_max_pk = 0)
|
double * |
ln_tau |
list of ln(tau) values ln_tau[index_tau]
|
double * |
ln_pk |
Matter power spectrum. depends on indices index_md, index_ic1, index_ic2, index_k, index_tau as: ln_pk[(index_tau * psp->k_size + index_k)* psp->ic_ic_size[index_md] + index_ic1_ic2] where index_ic1_ic2 labels ordered pairs (index_ic1, index_ic2) (since the primordial spectrum is symmetric in (index_ic1, index_ic2)).
- for diagonal elements (index_ic1 = index_ic2) this arrays contains ln[P(k)] where P(k) is positive by construction.
- for non-diagonal elements this arrays contains the k-dependent cosine of the correlation angle, namely P(k)_(index_ic1, index_ic2)/sqrt[P(k)_index_ic1 P(k)_index_ic2] This choice is convenient since the sign of the non-diagonal cross-correlation is arbitrary. For fully correlated or anti-correlated initial conditions, this non-diagonal element is independent on k, and equal to +1 or -1.
|
double * |
ddln_pk |
second derivative of above array with respect to log(tau), for spline interpolation. So:
- for index_ic1 = index_ic, we spline ln[P(k)] vs. ln(k), which is good since this function is usually smooth.
- for non-diagonal coefficients, we spline P(k)_(index_ic1, index_ic2)/sqrt[P(k)_index_ic1 P(k)_index_ic2] vs. ln(k), which is fine since this quantity is often assumed to be constant (e.g for fully correlated/anticorrelated initial conditions) or nearly constant, and with arbitrary sign.
|
double |
sigma8 |
sigma8 parameter
|
double * |
ln_pk_nl |
Non-linear matter power spectrum. depends on indices index_k, index_tau as: ln_pk_nl[index_tau * psp->k_size + index_k]
|
double * |
ddln_pk_nl |
second derivative of above array with respect to log(tau), for spline interpolation.
|
int |
index_tr_delta_g |
index of gamma density transfer function
|
int |
index_tr_delta_b |
index of baryon density transfer function
|
int |
index_tr_delta_cdm |
index of cold dark matter density transfer function
|
int |
index_tr_delta_dcdm |
index of decaying cold dark matter density transfer function
|
int |
index_tr_delta_scf |
index of scalar field phi transfer function
|
int |
index_tr_delta_fld |
index of dark energy fluid density transfer function
|
int |
index_tr_delta_ur |
index of ultra-relativistic neutrinos/relics density transfer function
|
int |
index_tr_delta_dr |
index of decay radiation density transfer function
|
int |
index_tr_delta_ncdm1 |
index of first species of non-cold dark matter (massive neutrinos, ...) density transfer function
|
int |
index_tr_delta_tot |
index of total matter density transfer function
|
int |
index_tr_theta_g |
index of gamma velocity transfer function
|
int |
index_tr_theta_b |
index of baryon velocity transfer function
|
int |
index_tr_theta_cdm |
index of cold dark matter velocity transfer function
|
int |
index_tr_theta_dcdm |
index of decaying cold dark matter velocity transfer function
|
int |
index_tr_theta_scf |
index of derivative of scalar field phi transfer function
|
int |
index_tr_theta_fld |
index of dark energy fluid velocity transfer function
|
int |
index_tr_theta_ur |
index of ultra-relativistic neutrinos/relics velocity transfer function
|
int |
index_tr_theta_dr |
index of decay radiation velocity transfer function
|
int |
index_tr_theta_ncdm1 |
index of first species of non-cold dark matter (massive neutrinos, ...) velocity transfer function
|
int |
index_tr_theta_tot |
index of total matter velocity transfer function
|
int |
index_tr_phi |
index of Bardeen potential phi
|
int |
index_tr_psi |
index of Bardeen potential psi
|
int |
tr_size |
total number of species in transfer functions
|
double * |
matter_transfer |
Matter transfer functions. Depends on indices index_md,index_tau,index_ic,index_k, index_tr as: matter_transfer[((index_tau*psp->ln_k_size + index_k) * psp->ic_size[index_md] + index_ic) * psp->tr_size + index_tr]
|
double * |
ddmatter_transfer |
second derivative of above array with respect to log(tau), for spline interpolation.
|
short |
spectra_verbose |
flag regulating the amount of information sent to standard output (none if set to zero)
|
ErrorMsg |
error_message |
zone for writing error messages
|