CosmoMC: seems to stop sampling chains...
CosmoMC: seems to stop sampling chains...
Hi Antony,
Recently I've run cosmomc with effective number of neutrinos freed as a parameter to be constrained. However, sometimes I found out that the .txt just stopped to get updated without any error messages or finishing notice. In fact the points gathered in the chain file is far from the assigned value of samples in the params.ini file. I've tried with parallel computation and this problem comes about still.
I'm wondering if you have ever run into this sort of problem. Could you help me with that?
Thanks!
Recently I've run cosmomc with effective number of neutrinos freed as a parameter to be constrained. However, sometimes I found out that the .txt just stopped to get updated without any error messages or finishing notice. In fact the points gathered in the chain file is far from the assigned value of samples in the params.ini file. I've tried with parallel computation and this problem comes about still.
I'm wondering if you have ever run into this sort of problem. Could you help me with that?
Thanks!
-
- Posts: 1947
- Joined: September 23 2004
- Affiliation: University of Sussex
- Contact:
Re: CosmoMC: seems to stop sampling chains...
Sounds like a bug in your modification, sampling n_eff is unproblematic.
Re: CosmoMC: seems to stop sampling chains...
Hi, Antony! Thanks so much for your prompt reply!Antony Lewis wrote:Sounds like a bug in your modification, sampling n_eff is unproblematic.
In order to free N_{eff}, do we have to modify the codes within /camb directory?
Do we have to change the following part in the subroutine InitCAMBParams(P) ?
Code: Select all
P%Num_Nu_Massive = 3
P%Num_Nu_Massless = 0.046
Re: CosmoMC: seems to stop sampling chains...
Hi, Antony,Antony Lewis wrote:Sounds like a bug in your modification, sampling n_eff is unproblematic.
It's found out that it's the loop below in subroutine ParamsToCMBParams that trapped the chain from updating,
Code: Select all
do
call SetForH(Params,CMB,(try_b+try_t)/2, .false.)
D_try = CMBToTheta(CMB)
if (D_try < DA) then
try_b = (try_b+try_t)/2
else
try_t = (try_b+try_t)/2
end if
if (abs(D_try - lasttry)< 1e-7) exit
lasttry = D_try
end do
Thank you very much!