I am currently using the Python wrapper of the camb version of August 2017. There is a thing that from the documentation is not clear (at least to me): in the function camb.get_matter_power_spectrum there's written "If NonLinear is set, the result is non-linear".
If I ask for, let's say, the non-linear P_cdm(k), without neutrinos, what does the routine do?
Does it apply HALOFIT to the total matter and then only returns the cdm part? i.e.
HF[P_linear_m(k)] ---> non-linear P_cdm(k)

or it applies HALOFIT directly to the linear cdm power spectrum? i.e.
HF[P_linear_cdm(k)] ---> non-linear P_cdm(k)

If something in my question is not clear, please tell me
Thanks a lot
Gabriele

Good question. It calls Halofit with the default variable linear spectrum (total density perturbation inc. neutrinos), it then takes the ratio to the linear spectrum. It then calculates the requested spectrum and scales it by this ratio.