Cross-CMBFAST

Code Description

This code is an extension of CMBFAST4.5.1 (no longer distributed) by U. Seljak & M. Zaldarriaga to compute the ISW-correlation power spectrum and the 2-point angular ISW-correlation function for a given galaxy window function. It includes dark energy models specified by a constant equation of state (w) or a linear parameterization in the scale factor (\(w_0\), \(w_a\)) and a constant sound speed (c2de). For reference see astro-ph/0504115, while for a detailed description of the ISW-correlation equations implemented see astro-ph/0506396. The ISW computation is limited to flat geometry. Differently from the original CMBFAST4.5 version dark energy perturbations are implemented for a general dark energy fluid specified by w(z) and c2de in synchronous gauge (see for instance Eq. (7)-(9) in Bean and Dore astro-ph/0307100). For time varying dark energy models it is suggested not to cross the \(w=-1\) line, as Dr. Wenkman says: “never cross the streams”, bad things can happen.

Galaxy Selection Function

The code allows to specify the galaxy window function. Two possibilities are implemented: 1) a standard window function ( \(A z^m e^{-(z/z_0)^{\beta}}\) ) normalized to unity with input parameters median redshift \(z_{med}\) ( \(=1.41 z_0\) ) and the slopes \(m\) and \(\beta\). A bit of care is necessary for the normalization (see remarks); 2) Luminous Red Galaxies window function from SDSS.

Output

The output consists of two files, the angular ISW-correlation function in \(\mu\)K ( \(\theta\), \(C_{Tg}(\theta)\) ) and the power spectra in multipole space, the second column is the ISW-correlation power spectrum \(l(l+1)/2\pi\, C_{l}^{(Tg)}\) and the last column is the matter-matter angular power spectrum \(l(l+1)/2\pi\, C_{l}^{(gg)}\), in order to get the galaxy-galaxy power spectrum you need to multiply by your preferred constant bias value or you need to implement the model bias in the ISW-correlation computation (see remarks). Other columns are standard CMB spectra as in CMBFAST. Output data are normalized as WMAP3 at \(k=0.002\, Mpc^{-1}\) (\(A_s\) is an input parameter).

Remarks

The code can be easily modified for studying ISW-correlation in more complicate models (modified gravity, time varying neutrino mass, coupled quintessence, etc..). In order to implement a scale and time dependent bias you need to modify the ISW-correlation computation in cmbcrossflat.F. If you want to use a non-standard selection function you can modify it in subcross.F. and change the normalization accordingly, you can use a numerical integration which I left for such a case. On the other hand if you want to use a very broad standard selection function be careful with the value of beta you plug in, if beta ~ 0 remember that the Gamma function blows up, while you are just using a power low selection function whose integral depends on the maximmum redshift of the survey.

Download: CROSS_CMBfast1.2.tar.gz

How to run the code

tar -zxvf CROSS_CMBFAST.tar
mkdir output

modify the Makefile for your compiler and run

make

before running the executable remember to create the Bessel function file and call it jl.dat

jlgen (./jlgen if you use bash)
jlgen (./jlgen if you use bash)
cmb

output files are stored in the directory output, in the package I left two test input files: wconst.ini and wvar.ini. 

cmb < wvar.ini