Page 1 of 1

Constraining a cosmology with two new coupled parameters

Posted: October 17 2016
by Albin Nilsson
I'm sorry if this is a trivial question, but I am just getting started with cosmomc and I am a little confused.

I have a cosmological model which basically introduces two new parameters into the Friedmann equation, call them param1 and param2. These parameters are not independent, but depend on each other in some way. I would like to constrain these parameters using Planck data.
I assume that I need to calculate and predict some parameter values which I can then constrain using cosmomc. Could anyone tell me how to go about doing this? I know that there are a few threads about adding new parameters, but I have not been able to gather how to go about coding my specific case.

Thanks in advance

Re: Constraining a cosmology with two new coupled parameters

Posted: October 17 2016
by Antony Lewis
If param1 is a function of param2, then just add the one parameter param1, and calculate param2 in your theory/likelihood calculation.

Constraining a cosmology with two new coupled parameters

Posted: October 17 2016
by Albin Nilsson
By adding you mean following the procedure in: http://cosmocoffee.info/viewtopic.php?t ... c&start=15?

My problem is really that I don't understand how cosmomc then knows what param1 is, and how the equations for cosmological evolution depend on it.

In this case, it might be easier to redefine \Omega_M, \Omega_\Lambda, \Omega_curv and \Omega_rad, since my new parameters attach to all of those. Where are they defined?

Re: Constraining a cosmology with two new coupled parameters

Posted: October 17 2016
by Antony Lewis
It's the "Modify Calculator_CAMB.f90" step of the readme FAQ where you interface the cosmomc variable with CAMB which determines what it actually means.

Constraining a cosmology with two new coupled parameters

Posted: October 18 2016
by Albin Nilsson
Thanks for the help so far. This is what I have done:

1. Added line 115 in CosmologyTypes.f90, added 2 new parameters, param1 and param2
2. Changed the number of hard parameters on line 71 in CosmologyParameterization
s.f90 from 16 to 18.
3. Changed line 64 to call myparams.paramnames instead of params_CMB.paramnames
4. Created myparams.paramnames and added param1 and param2 at the end
5. Added lines 85 and 86 in Calculator_CAMB.f90 (real(dl) param1, and real(dl) param2)

The last step is then to modify the code to account for the structure changed by these new parameters; this is where I am stumped (partly because I don't speak Fortran).
My parameters attach to \Omega_m, \Omega_\Lambda, \Omega_rad and \Omega_curv in different ways.
If my new \Omega_m is (for example) \Omega = \Omega_m * param1, can I express that like this in Calculator_CAMB:

Code: Select all

P%omegab = CMB%omb * param1

and

Code: Select all

P%omegac = CMB%omc * param1
also, where do the other \Lambda CDM-parameters (curv and rad) come in?. I assume \Omega_m = \Omega_c + \Omega_b

Thanks again for answering my questions