brinckmann / montepython_public

Public repository for the Monte Python Code
MIT License
93 stars 77 forks source link

Problem with "P_k_max_h/Mpc" #305

Closed mtagliazucchi closed 9 months ago

mtagliazucchi commented 1 year ago

Hi,

I'm running montepython 3.5 with Class 3.2 I have some problems with the Class input parameters "P_k_max_h/Mpc", that I want to set to very high values such as 10^7 - 10^20. I have no problems in running Class with such parameter, but when Class is called from montepython I have some problems.

  1. I tried to set "P_k_max_h/Mpc" = 1.e7 in the example parameters file input/firas.c and this caused the Class error "unrecognized parameter", which is very strange since this parameter is used both in Class and in other input parameter files like input/base2018TTTEEE.param.
  2. I tried to increase "P_k_max_h/Mpc" present in input/base2018TTTEEE.param from 1 to 1.e7, but montepython returned the error
    > Error in Class: perturbations_init(L:1015) :error in perturbations_solve(ppr, pba, pth, ppt, index_md, index_ic, index_k, pppw[thread]);
    > =>perturbations_solve(L:3335) :error in generic_evolver(perturbations_derivs, interval_limit[index_interval], interval_limit[index_interval+1], ppw->pv->y, ppw->pv->used_in_sources, ppw->pv->pt_size, &ppaw, ppr->tol_perturbations_integration, ppr->smallest_allowed_variation, perturbations_timescale, ppr->perturbations_integration_stepsize, ppt->tau_sampling, tau_actual_size, perturbations_sources, perhaps_print_variables, ppt->error_message);
    > =>evolver_ndf15(L:499) :condition (absh <= hmin) is true; Step size too small: step:5.85176e-13, minimum:5.85176e-13, in interval: [0.0116346:365.735]

    In a Class issue https://github.com/lesgourg/class_public/issues/418 the user had the same problem and solved it with the option evolver = 0, but in my case this solution did not work.

3.For "P_k_max_h/Mpc" larger 1.e8 there is another error. For example, the error returned for "P_k_max_h/Mpc" = 1.e22 is

Error in Class: perturbations_init(L:1015) :error in perturbations_solve(ppr, pba, pth, ppt, index_md, index_ic, index_k, pppw[thread]);
=>perturbations_solve(L:3119) :condition (k/ppw->pvecback[pba->index_bg_a]/ppw->pvecback[pba->index_bg_H] > ppr->start_large_k_at_tau_h_over_tau_k) is true; your choice of initial time for integrating wavenumbers is inappropriate: it corresponds to a time before that at which the background has been integrated. You should increase 'start_large_k_at_tau_h_over_tau_k' up to at least 3.41879e+13, or decrease 'a_ini_over_a_today_default'

Setting 'start_large_k_at_tau_h_over_tau_k' to the suggested value does not solve the problem.

Again, I stress that all these problems are not when running Class alone.