
Dark-age 21cm, number counts and lensing power spectra
plus accurate small-scale baryon evolution with perturbed recombination
Based on CAMB. At some point it may be integrated into the main code, but not yet.
Features:The main reference for the 21cm results is astro-ph/0702600 (BibTex).
- Dark age 21cm angular power spectra and transfer functions
- Angular power spectra for low-redshift source number counts (including redshift distortions and lensing)
- Lensing convergence power spectra from given window function (default: Gaussian)
- Use HALOFIT for non-linear corrections
- Various enhancements from CAMB for calculating high-l lensing potential and power spectra
- All cross-correlation power spectra (sources with themselves and with CMB)
- Full calculation and Limber approximation
- Baryon sound speed computed using evolved matter temperature perturbation
(hence transfer function more accurate than CAMB or CMBFAST on very small scales)- NEW: Use third-order perturbation theory to calculate non-linear CDM power (and estimate 21cm) at high redshift (use second_PT instead of Halofit)
- NEW: Sharp frequency windows for 21cm (via get_transfer=T)
- NEW: Calculation of perturbed recombination for accurate gas tempeature perturbations and small scale baryons
- NEW: Inclusion of self-aborption terms, baryon velocity divergence during perturbed recombination
- NEW: (Feb 08) RECFAST 1.4, gfortran compatibility
Download the Fortran 90 source code. This version February 2008.
See CosmoCoffee for support.
This code is based on CAMB which is based on CMBFAST which is partly based on COSMICS. It uses RECFAST for the ionization history.
Limitations:
- Not nearly as well tested and robust as main CAMB code
- Does not work for non-flat models
- Many non-standard parameter variations untested
- Accuracy not well quantified; also limited by ionization history and non-linear correction accuracy
- Not tested with openmp or for compatibility with CosmoMC.
- 2nd order lensing effect of 21cm not included (though easy modification)
- Does not work with very narrow redshift window functions (use transfer_21cm_cl instead)
- Generating 21cm with narrow but not-sharp redshift window (0.01Mhz) can use > 1GB memory.
Usage
If you are familiar with CAMB this should be quite familiar. The main parameters are in the params.ini file - see the comments in this file for description.
- Download and unzip the code ('unzip -d . CAMB_sources.zip')
- Edit the Makefile for your f90 compiler's options
- Run make
- Run ./camb params.ini
Output
Angular power spectra are output to output_root_scalCls.dat. The columns arel C_TT C_EE C_TE C_BB C_Phi C_PhiT C_win_1 C_win_2 ... C_Win_1T C_win1_win2 ...Here all C_l are l(l+1)C_l/2pi except for C_Phi and C_PhiT which are C_Phi= l^4 C_l_phi where C_l_phi is the (CMB) lensing potential power spectrum and C_PhiT = l^3 C_l_phiT.
Transfer functions are the same as in CAMB, except when you are generating 21cm power spectrum in which case the matter power spectrum file becomes that for the monopole source, and the columns in the transfer function output file arek/h Delta_CDM/k^2 Delta_b/k^2 Monopole_source/k^2 v_newtonian/k^2 Delta_Tg/k^2 Delta_tot/k^2where all quantities are in the synchronous gauge.
Non-linear evolution
By default compiles with Halofit for non-linear corrections at low redshift. Supplied code second_PT.f90 instead uses third-order Newtonian pertubation theory. Change NONLINEAR in the Makefile to use this instead. Note that Halofit gives non-linear power spectra. second_PT instead gives just the non-linear correction (which is much smaller than the linear term at high redshift).