Hi there! I'm using CAMB to generate the radiation transfer functions, and for my purposes I need an extremely high sampling rate in k. Pushing accuracy_boost up to 15 in params.ini seems to do this, but past 18 I get warnings of the form
Warning: Rombint failed to converge;
integral, error, tol: 14549.523171768193 -1.84297022087775986E-014 2.54366564737692307E-020
and past about 25 I get an error saying
Error in dverk, x = 9742.8922683139335 xend= 9744.8323816957509
Can anyone help me out here? I recognize that I'm looking for a really high level of k-sampling, but the radiation transfer functions oscillate a lot and I need to be sure that I'm sampling them correctly. Thanks!
CAMB: increasing accuracy boost past ~20 leads to an error
-
- Posts: 3
- Joined: June 30 2009
- Affiliation: University of Michigan
CAMB: increasing accuracy boost past ~20 leads to an error
There are many places in the code where the tolerances for integration tighten exponentially as AccuracyBoost increases, e.g.
You can see that in your Rombint warning - it's trying to evaluate an integral with a result of about 10^4 to an accuracy of 10^{-20}. This will probably never work, because even double precision can only carry about 16 digits.
So if you really need AccuracyBoost that high (and I really wonder), I think you're going to have to go in and change the tolerances to loosen the settings on the integrations.
Code: Select all
tol1=tol/exp(AccuracyBoost-1)
So if you really need AccuracyBoost that high (and I really wonder), I think you're going to have to go in and change the tolerances to loosen the settings on the integrations.