baudren / montepython_public

Public repository for the Monte Python Code
MIT License
65 stars 115 forks source link

Possibly singular matrix in running the montepython #74

Closed mahtaparsa closed 7 years ago

mahtaparsa commented 7 years ago

Hi everybody, Using montepython with CMB data (like Planck, quad, bicep, ...), for even large number of steps (10000 or 50000 or even larger) will result in the following error:

Error in Class: perturb_init(L:382) :error in perturb_solve(ppr, pba, pth, ppt, index_md, index_ic, index_k, pppw[thread]); =>perturb_solve(L:2407) :error in generic_evolver(perturb_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_perturb_integration, ppr->smallest_allowed_variation, perturb_timescale, ppr->perturb_integration_stepsize, ppt->tau_sampling, tau_actual_size, perturb_sources, perhaps_print_variables, ppt->error_message); =>evolver_ndf15(L:474) :error in new_linearisation(&jac,hinvGak,neq,error_message); =>new_linearisation(L:967) :condition (funcreturn == FAILURE) is true; Failure in sp_ludcmp. Possibly singular matrix!

and consequently analysing the code and plotting the diagrams is impossible. However, in using non-CMB data (like JLA) there is no serious problem. Thanks for your suggestions in order to solve this problem.

ThomasTram commented 7 years ago

Hi

The issue is with solving the perturbation equations in CLASS which is why you do not get the error when just using JLA. I suspect that you have modified the perturbation equations in CLASS somehow? It is likely that a) there is some bug in the equations or b) the system becomes unphysical/unstable for some choice of parameters. In the latter case MontePython would hit the unphysical region where CLASS would fail to compute and the chain would just go somewhere else in parameter space. To investigate this, you can make MontePython print the problematic point in parameter space and then run CLASS manually on this point to see what goes wrong.

Good luck, Thomas Tram

mahtaparsa commented 7 years ago

thanks