I am studying a set of quintessence cosmologies where I struggle to find solutions to the background equations if I demand \Omega_{DE}<~0.1 today. (For particular parameter values in the quintessence potentials I can find no initial conditions for the quintessence field and initial CDM density if I demand \Omega_{DE}<~0.1 today.)
I therefore cannot call CAMB from COSMOMC with \Omega_{DE}~<0.1
To get around the issue I have modified subroutine ParamsToCBMParams (params_CMB.f90):
Code: Select all
try_b = 50
call SetForH(Params,CMB,try_b, .true.)
if (CMB%omv >= 0.1) then
D_b_OK = .true.
D_b = CMBToTheta(CMB)
end if
try_t = 100
call SetForH(Params,CMB,try_t)
if (CMB%omv >=0.1 ) then
D_t_OK = .true.
D_t = CMBToTheta(CMB)
end if
if (D_b_OK==.false. .or. D_t_OK==.false.) then
CMB%omv=0 ! Reject it
else if (DA < D_b .or. DA > D_t) then
cmb%H0=0 ! Reject it
else
and have hardcoded the prior in function GetLogPrior (calclike.f90):
Code: Select all
if (CMB%Omv < 0.1) return
Is there anything wrong with this approach?
( I have run this modified code with a standard LCDM cosmology, keeping the default parameter limits in params.ini for COSMOMC, apart from the SZ template normalization which I do not vary. Comparing the results obtained from this run with results obtained from an unmodified COSMOMC, all is as I would expect.)
Thanks,
Ewan Tarrant