CAMB $C_{\ell}^{TT}$ accuracy problems at low $\ell$

Use of Healpix, camb, CLASS, cosmomc, compilers, etc.
Post Reply
Felipe Maldonado
Posts: 24
Joined: November 10 2016
Affiliation: FSU

CAMB $C_{\ell}^{TT}$ accuracy problems at low $\ell$

Post by Felipe Maldonado » March 17 2020

Hello Dr. Lewis,

I'm attempting to reproduce figure 1 of Scott et al. 2016 (https://arxiv.org/abs/1603.03550), but my results don't match the paper at all at low multipoles. Please see my attempt at reproducing figure 1 for [math]. At low multipoles, my TT curve has a dip at [math] where the Scott et al. curve does not. This is only the most glaring difference; none of the curves match at low multipoles.

To try to debug the problem, I plotted [math] as a function of [math].
Because the Fisher matrix (especially in this case) depends essentially on the square of the derivative, I also plotted the absolute value, and the dip at [math] appears.
I spoke with Dr. Scott about this, and he points out that this dip is unphysical. He suggested I check the accuracy at low multipoles, because he had similar difficulties when he was developing the paper, but couldn't recall exactly what he had to do to correct it.

Here is my CAMBpars instance that I'm using to get the [math].

Code: Select all

Using CAMB version  1.0.8
class: <CAMBparams>
 WantCls = True
 WantTransfer = False
 WantScalars = True
 WantTensors = False
 WantVectors = False
 WantDerivedParameters = True
 Want_cl_2D_array = True
 Want_CMB = True
 Want_CMB_lensing = True
 DoLensing = True
 NonLinear = NonLinear_lens
 Transfer: <TransferParams>
   high_precision = False
   accurate_massive_neutrinos = False
   kmax = 0.9
   k_per_logint = 0
   PK_num_redshifts = 1
   PK_redshifts = [0.0]
 want_zstar = False
 want_zdrag = False
 min_l = 2
 max_l = 3149
 max_l_tensor = 600
 max_eta_k = 18000.0
 max_eta_k_tensor = 1200.0
 ombh2 = 0.022277
 omch2 = 0.11843
 omk = 0.0
 omnuh2 = 0.000645138398938
 H0 = 67.8708311184
 TCMB = 2.7255
 YHe = 0.245361301871
 num_nu_massless = 2.03066666667
 num_nu_massive = 1
 nu_mass_eigenstates = 1
 share_delta_neff = False
 nu_mass_degeneracies = [1.0153333333333332]
 nu_mass_fractions = [1.0]
 nu_mass_numbers = [1]
 InitPower: <InitialPowerLaw>
   tensor_parameterization = tensor_param_rpivot
   ns = 0.9683
   nrun = 0.0
   nrunrun = 0.0
   nt = -0.0
   ntrun = -0.0
   r = 0.0
   pivot_scalar = 0.05
   pivot_tensor = 0.05
   As = 2.14044747364e-09
   At = 1.0
 Recomb: <Recfast>
   min_a_evolve_Tm = 0.00110987795051
   RECFAST_fudge = 1.125
   RECFAST_fudge_He = 0.86
   RECFAST_Heswitch = 6
   RECFAST_Hswitch = True
   AGauss1 = -0.14
   AGauss2 = 0.079
   zGauss1 = 7.28
   zGauss2 = 6.73
   wGauss1 = 0.18
   wGauss2 = 0.33
 Reion: <TanhReionization>
   Reionization = True
   use_optical_depth = True
   redshift = 10.0
   optical_depth = 0.0666
   delta_redshift = 0.5
   fraction = -1.0
   include_helium_fullreion = True
   helium_redshift = 3.5
   helium_delta_redshift = 0.4
   helium_redshiftstart = 5.5
   tau_solve_accuracy_boost = 1.0
   timestep_boost = 1.0
   max_redshift = 50.0
 DarkEnergy: <DarkEnergyFluid>
   w = -1.0
   wa = 0.0
   cs2 = 1.0
   use_tabulated_w = False
 NonLinearModel: <Halofit>
   Min_kh_nonlinear = 0.005
   halofit_version = mead
   HMCode_A_baryon = 3.13
   HMCode_eta_baryon = 0.603
 Accuracy: <AccuracyParams>
   AccuracyBoost = 1.0
   lSampleBoost = 1.0
   lAccuracyBoost = 1.0
   AccuratePolarization = True
   AccurateBB = False
   AccurateReionization = True
   TimeStepBoost = 1.0
   BackgroundTimeStepBoost = 1.0
   IntTolBoost = 1.0
   SourcekAccuracyBoost = 1.0
   IntkAccuracyBoost = 1.0
   TransferkBoost = 1.0
   NonFlatIntAccuracyBoost = 1.0
   BessIntBoost = 1.0
   LensingBoost = 1.0
   NonlinSourceBoost = 1.0
   BesselBoost = 1.0
   LimberBoost = 1.0
   SourceLimberBoost = 1.0
   KmaxBoost = 1.0
   neutrino_q_boost = 1.0
 SourceTerms: <SourceTermParams>
   limber_windows = True
   limber_phi_lmin = 100
   counts_density = True
   counts_redshift = True
   counts_lensing = False
   counts_velocity = True
   counts_radial = False
   counts_timedelay = True
   counts_ISW = True
   counts_potential = True
   counts_evolve = False
   line_phot_dipole = False
   line_phot_quadrupole = False
   line_basic = True
   line_distortions = True
   line_extra = False
   line_reionization = False
   use_21cm_mK = True
 z_outputs = []
 scalar_initial_condition = initial_adiabatic
 InitialConditionVector = []
 OutputNormalization = 1
 Alens = 1.0
 MassiveNuMethod = Nu_best
 DoLateRadTruncation = True
 Evolve_baryon_cs = False
 Evolve_delta_xe = False
 Evolve_delta_Ts = False
 Do21cm = False
 transfer_21cm_cl = False
 Log_lvalues = False
 use_cl_spline_template = True
 SourceWindows = []
 CustomSources: <CustomSources>
   num_custom_sources = 0
   c_source_func = None
   custom_source_ell_scales = []
Thank you very much for your time, Dr. Lewis
Attachments
dClTTdTau.png
dClTTdTau.png (14.45 KiB) Viewed 363 times

Felipe Maldonado
Posts: 24
Joined: November 10 2016
Affiliation: FSU

Re: CAMB $C_{\ell}^{TT}$ accuracy problems at low $\ell$

Post by Felipe Maldonado » March 17 2020

For legibility, I think it's best I attach the figures in a follow up post.
tau-1.png
tau-1.png (77.31 KiB) Viewed 362 times
The attachment tau-1.png is no longer available

Felipe Maldonado
Posts: 24
Joined: November 10 2016
Affiliation: FSU

Re: CAMB $C_{\ell}^{TT}$ accuracy problems at low $\ell$

Post by Felipe Maldonado » March 17 2020

I'm sorry, I forgot to ask my question!

My question is, what approximations is CAMB doing that would affect the accuracy of [math] at low multipoles and how do I relax them or turn them off?

I tried to change the accuracy with CAMBparams.set_accuracy, but that didn't change anything.

Thank you and I apologize for the long post.
Felipe

Post Reply