21cm polarisation

Use of Healpix, camb, CLASS, cosmomc, compilers, etc.
Post Reply
daan meerburg
Posts: 27
Joined: November 20 2007
Affiliation: Cambridge

21cm polarisation

Post by daan meerburg » November 13 2017

Hi Anthony and co

I am trying to reproduce the 21cm polarisation power spectra as in https://arxiv.org/pdf/astro-ph/0702600.pdf -Fig. 9. Although it is not immediately evident, from running through the code it seems setting line_reionoization = .true. should produce polarised spectra.

The first question is if this is indeed the case?

If yes, I found that there are several issues with running the (GitHub) version of the code. I have tried both intel (16 and 17) and Gfortran compilers (gcc 7.2.0 ). With default settings (high lmax) the code crashes when solving the ODE's. Running with a debugging flag I find at least one issue in modules.f90 where the array TimeSteps%points runs out of bound (in the subroutine interp_window). Apparently this is not causing the later crash as I learned by patching this problem. Fortunately lowering lmax to 2000 seems to work and does not crash the code. However, now the EE power spectra and ET CMB power spectra are completely off. Producing some weird looking spectrum that is larger then the TT spectrum and resembles a matter or lensing power spectrum more then a CMB power spectrum ( I have attached a plot).

In any case, it seems to overwrite the CMB E-mode polarisation spectrum, but it is not clear with what (it also does not look like the spectrum in Fig. 9 of the aforementioned paper). Any thoughts? Maybe the sources are not overwritten but are added (so it would be the sum of CMB E-mode + 21cm E-modes??).

Also, even if line_reionization is the correct flag, there is no extra file produced for E-modes. I now simply turned off all other Line contributions. I then get a spectrum that looks somewhat similar to the spectrum in Fig. 9, however where the wiggles are much less pronounced (using the same redshift and same window).

Last, I tried to run tensors, but there is no equivalent file produced (the scalCov) that contains tensors. It is not really important right now, but I wondered if there is a way to produce the tensor 21cm polarisation spectra from the code.

Any help would be appreciated.

Best
Daan

EEspectrum_wLineReionizationTrue.pdf[/url]

daan meerburg
Posts: 27
Joined: November 20 2007
Affiliation: Cambridge

21cm polarisation

Post by daan meerburg » November 13 2017

I should have added that the code only crashes in default + line_reionization = T

daan meerburg
Posts: 27
Joined: November 20 2007
Affiliation: Cambridge

21cm polarisation

Post by daan meerburg » November 13 2017

Also, when get_trasfer = T the code also crashes (with line_reionization = T) with some floating error.

Antony Lewis
Posts: 1364
Joined: September 23 2004
Affiliation: University of Sussex
Contact:

Re: 21cm polarisation

Post by Antony Lewis » November 14 2017

It's a long time ago now, but yes I think line_reionoization = .true. is supposed to produce the 21cm polarization spectra (replacing the standard EE spectrum in the output file). I doubt it has been properly tested for 10 years as these esoteric things are not really maintained, so may have got a bit broken (also you may need to boost accuracy etc to get nice results, I don't recall). Are you using devel branch (latest maintained CMB sources code) or the CAMB_sources branch?

I think the tensor case may not be in the public code, so you'd have to make the modification yourself.

daan meerburg
Posts: 27
Joined: November 20 2007
Affiliation: Cambridge

21cm polarisation

Post by daan meerburg » November 14 2017

Hi Antony

I am using the CAMB_sources branch. Should I use the developer branch instead? I understand it has not been updated (the sources part). I was just hoping you might have an idea what is going on. I will see if I can trace what is happening.

Cheers
Daan

Antony Lewis
Posts: 1364
Joined: September 23 2004
Affiliation: University of Sussex
Contact:

Re: 21cm polarisation

Post by Antony Lewis » November 14 2017

I'd certainly try the devel branch.

daan meerburg
Posts: 27
Joined: November 20 2007
Affiliation: Cambridge

21cm polarisation

Post by daan meerburg » November 14 2017

unfortunately this version also gives a very strange spectrum that looks nothing like the results in your paper. Do you know if there has been a version that has ever worked? I have tried all the versions on the CAMB_sources website. All of them do not seem to work with line_reionization = T. If none of them has ever worked I might abandon looking for the source of the bug, since it could be a multiple number of issues after so long

Thanks
Daan

Antony Lewis
Posts: 1364
Joined: September 23 2004
Affiliation: University of Sussex
Contact:

Re: 21cm polarisation

Post by Antony Lewis » November 15 2017

I can't immediately get anything very sensible either (will need to use various settings like use_spline_template = F, CMB_outputscale = 1 as well as increasing hard-coded lmax). Btw, I think tensors are included in 2007 versions of CAMB sources code.

daan meerburg
Posts: 27
Joined: November 20 2007
Affiliation: Cambridge

21cm polarisation

Post by daan meerburg » November 16 2017

Hi
So you are saying if you set these you get something that makes a little more sense? I did not run into the lmax issue though, because I lowered lmax = 2000 (as the plot in your paper only goes to 200 or so anyway).

Which version from 2007 works you say?

thanks for the help btw

Antony Lewis
Posts: 1364
Joined: September 23 2004
Affiliation: University of Sussex
Contact:

Re: 21cm polarisation

Post by Antony Lewis » November 16 2017

I'm not saying the 2007 version works (I didn't try it), just that the code for the tensor 21cm is included. I didn't get anything that actually looked right from the latest branch, but couldn't immediately see what the issue might be.

Post Reply