dgrin1 / axionCAMB

MIT License
19 stars 7 forks source link

fix bugs with missing factors of h #13

Open guanyilun opened 6 months ago

guanyilun commented 6 months ago

Found lots of missing factors of h in axion background calculation that weren't caught in the recent bugfixes. They don't show up in dimensionless quantities such as delta_ax or u_ax, because rho_ax and delta rho_ax are affected the same way, but when looking at rho_ax by itself, it will overestimate by a factor of 2.3 (i.e. h^-2).

dgrin1 commented 6 months ago

Hello there - these were checked against an analytic solution, so I don't think this is the case, but let's discuss. However, let's discuss offline and see what you mean in detail and we can see if further corrections need to be made.

dgrin1 commented 6 months ago

Did you have a look at the .pdf file explaining the various factor of h and the field redefinitions, etc...?

guanyilun commented 6 months ago

Did you have a look at the .pdf file explaining the various factor of h and the field redefinitions, etc...?

No I caught these when I compare phi_1 power spectrum with theory. Maybe it will only show up on isocurvature initial condition, because how the initial conditions of delta_ax is normalized to 1, so the factor shows up through phi_init.

dgrin1 commented 6 months ago

I would bet that if there are any unidentified bugs they lie in the isocurvature implementation and not in the background module, and then it would make sense that they show up in the inferred field power spectrum. We'll figure it out

guanyilun commented 6 months ago

Just reviewed the note you suggested and now I see what you meant by a documentation issue. I didn't notice that $v_1$ and $v_2$ have been redefined to have an extra $h$. Sorry that I should have reviewed the notes before sending this PR. The redefinition solved most of the missing $h$ I found. With that said, I do think the lines with diagnostic are missing factors of $h$, but please double check my math! Using the definition of $\mathbf{H} = 100$ km/s/Mpc in the notebook, the criteria is given by

image

which differs from what's claimed in the paper, $m_{\rm ax} = 3H$, by a factor of $h$.

Now I also have a good understanding of the problem I encountered. The redefinition of $v_1$ and $v_2$ did not get propagated to the definition of phiinit, which is used in isocurvature mode. This explains why this bug only affects my isocurvature calculation. I'll update my PR to reflect what I just learned.