CLASS MANUAL
harmonic.h File Reference
#include "transfer.h"
+ Include dependency graph for harmonic.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  harmonic
 

Detailed Description

Documented includes for harmonic module


Data Structure Documentation

◆ harmonic

struct harmonic

Structure containing everything about anisotropy and Fourier power spectra that other modules need to know.

Once initialized by harmonic_init(), contains a table of all $ C_l$'s and P(k) as a function of multipole/wavenumber, mode (scalar/tensor...), type (for $ C_l$'s: TT, TE...), and pairs of initial conditions (adiabatic, isocurvatures...).

Data Fields
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 $ C_l^{TT}$? (T = temperature)

int has_ee

do we want $ C_l^{EE}$? (E = E-polarization)

int has_te

do we want $ C_l^{TE}$?

int has_bb

do we want $ C_l^{BB}$? (B = B-polarization)

int has_pp

do we want $ C_l^{\phi\phi}$? ( $ \phi $ = CMB lensing potential)

int has_tp

do we want $ C_l^{T\phi}$?

int has_ep

do we want $ C_l^{E\phi}$?

int has_dd

do we want $ C_l^{dd}$? (d = density)

int has_td

do we want $ C_l^{Td}$?

int has_pd

do we want $ C_l^{\phi d}$?

int has_ll

do we want $ C_l^{ll}$? (l = galaxy lensing potential)

int has_tl

do we want $ C_l^{Tl}$?

int has_dl

do we want $ C_l^{dl}$?

int index_ct_tt

index for type $ C_l^{TT} $

int index_ct_ee

index for type $ C_l^{EE} $

int index_ct_te

index for type $ C_l^{TE} $

int index_ct_bb

index for type $ C_l^{BB} $

int index_ct_pp

index for type $ C_l^{\phi\phi} $

int index_ct_tp

index for type $ C_l^{T\phi} $

int index_ct_ep

index for type $ C_l^{E\phi} $

int index_ct_dd

first index for type $ C_l^{dd} $((d_size*d_size-(d_size-non_diag)*(d_size-non_diag-1)/2) values)

int index_ct_td

first index for type $ C_l^{Td} $(d_size values)

int index_ct_pd

first index for type $ C_l^{pd} $(d_size values)

int index_ct_ll

first index for type $ C_l^{ll} $((d_size*d_size-(d_size-non_diag)*(d_size-non_diag-1)/2) values)

int index_ct_tl

first index for type $ C_l^{Tl} $(d_size values)

int index_ct_dl

first index for type $ C_l^{dl} $(d_size values)

int d_size

number of bins for which density Cl's are computed

int ct_size

number of $ C_l $ 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 $ C_l$'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 $ C_l$'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 $ C_l$'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 * phr->ic_ic_size[index_md] + index_ic1_ic2) * phr->ct_size + index_ct]

double ** ddcl

second derivatives of previous table with respect to l, in view of spline interpolation

struct fourier * pfo

a pointer to the fourier structure is stored in the harmonic structure. This odd, unusual and unelegant feature has been introduced in v2.8 in order to keep in use some deprecated functions harmonic_pk_...() that are now pointing at new function fourier_pk_...(). In the future, if the deprecated functions are removed, it will be possible to remove also this pointer.

short harmonic_verbose

flag regulating the amount of information sent to standard output (none if set to zero)

ErrorMsg error_message

zone for writing error messages