CosmoMC: unphysical input: TE/sqrt(TT*EE) > 1
-
- Posts: 23
- Joined: February 21 2006
- Affiliation: McGill University
CosmoMC: unphysical input: TE/sqrt(TT*EE) > 1
Hi,
I hope my question makes sense. I used the new WMAP3 code (2.2.1) and Oct 20th 2006 CosmoMC. I use the LambdaCDM model, but modifiy the scalar power spectrum (add one more parameter), and all other settings are default. However, my chains were stopped:
unphysical input: TE/sqrt(TT*EE) > 1 at l= 256
So my question: Does it imply that my mofidication to the scalar power spectrum gives some unphysical cl spectra? Or is it just a problem of coding?
Thanks a lot!
Loison Hoi
3 Nov 2006
I hope my question makes sense. I used the new WMAP3 code (2.2.1) and Oct 20th 2006 CosmoMC. I use the LambdaCDM model, but modifiy the scalar power spectrum (add one more parameter), and all other settings are default. However, my chains were stopped:
unphysical input: TE/sqrt(TT*EE) > 1 at l= 256
So my question: Does it imply that my mofidication to the scalar power spectrum gives some unphysical cl spectra? Or is it just a problem of coding?
Thanks a lot!
Loison Hoi
3 Nov 2006
-
- Posts: 23
- Joined: February 21 2006
- Affiliation: McGill University
CosmoMC: unphysical input: TE/sqrt(TT*EE) > 1
Hi,
To avoid the above problem, if I comment the following statements in WMAP_3yr_likelihood.F90:
do il=2,ttmax
correlation_coefficient_cl = clte(il)/sqrt(cltt(il)*clee(il))
if(correlation_coefficient_cl>1)then
print*,'unphysical input: TE/sqrt(TT*EE) > 1 at l=',il
stop
endif
enddo
will CosmoMC just skip the unphysical point and report it as a rejecting point, so that the chains can continute? Or is it a real problem that I cannot avoid? Thanks.
Loison Hoi
6 Nov 2006
To avoid the above problem, if I comment the following statements in WMAP_3yr_likelihood.F90:
do il=2,ttmax
correlation_coefficient_cl = clte(il)/sqrt(cltt(il)*clee(il))
if(correlation_coefficient_cl>1)then
print*,'unphysical input: TE/sqrt(TT*EE) > 1 at l=',il
stop
endif
enddo
will CosmoMC just skip the unphysical point and report it as a rejecting point, so that the chains can continute? Or is it a real problem that I cannot avoid? Thanks.
Loison Hoi
6 Nov 2006
CosmoMC: unphysical input: TE/sqrt(TT*EE) > 1
Actually I think it's simpler than that.
Somewhere else on here (I don't recall which posting unfortunately) someone pointed out that the WMAP likelihood code outputs data files where the columns are TT/TE/EE but the CosmoMC code expects TT/EE/TE (or maybe vice versa). So you may just have to reorder the columns.
In any case, it should be easy to look at the actual data files to figure out what's in there; the EE spectrum should be always positive but TE can be negative.
Somewhere else on here (I don't recall which posting unfortunately) someone pointed out that the WMAP likelihood code outputs data files where the columns are TT/TE/EE but the CosmoMC code expects TT/EE/TE (or maybe vice versa). So you may just have to reorder the columns.
In any case, it should be easy to look at the actual data files to figure out what's in there; the EE spectrum should be always positive but TE can be negative.
-
- Posts: 23
- Joined: February 21 2006
- Affiliation: McGill University
CosmoMC: unphysical input: TE/sqrt(TT*EE) > 1
Hi,
I figured out the problem; it is due to the inaccuracy of the integration. Specifically, I add a sharp cutoff in the scalar power spectrum, which makes the numerical integration of the Cl's spectra inaccurate. To avoid the problem, simply turn on the accuracy level, e.g. accuracy_level = 2.
The "unphysical Cl's spectra" happens about 1 time in 1000 samples in my model, so I think it is harmless to just remove the consistent check. Alternatively, I can set wmap_likelihood_ok = .false. when such "unphysical Cl's spectra" happens; in this case, CosmoMC will regard it as a rejecting point, so there should be no effect on the Markov chains or the marginalized probabilities. Am I right?
Anyway, the "clte(il)" in the following statements should be replaced with "abs(clte(il))" since the Cl_te spectrum can be negative.
do il=2,ttmax
correlation_coefficient_cl = clte(il)/sqrt(cltt(il)*clee(il))
if(correlation_coefficient_cl>1)then
print*,'unphysical input: TE/sqrt(TT*EE) > 1 at l=',il
stop
endif
enddo
Loison Hoi
8 Nov 2006
I figured out the problem; it is due to the inaccuracy of the integration. Specifically, I add a sharp cutoff in the scalar power spectrum, which makes the numerical integration of the Cl's spectra inaccurate. To avoid the problem, simply turn on the accuracy level, e.g. accuracy_level = 2.
The "unphysical Cl's spectra" happens about 1 time in 1000 samples in my model, so I think it is harmless to just remove the consistent check. Alternatively, I can set wmap_likelihood_ok = .false. when such "unphysical Cl's spectra" happens; in this case, CosmoMC will regard it as a rejecting point, so there should be no effect on the Markov chains or the marginalized probabilities. Am I right?
Anyway, the "clte(il)" in the following statements should be replaced with "abs(clte(il))" since the Cl_te spectrum can be negative.
do il=2,ttmax
correlation_coefficient_cl = clte(il)/sqrt(cltt(il)*clee(il))
if(correlation_coefficient_cl>1)then
print*,'unphysical input: TE/sqrt(TT*EE) > 1 at l=',il
stop
endif
enddo
Loison Hoi
8 Nov 2006