'Celestine' Quintessence in CMBEASY

Use of Cobaya. camb, CLASS, cosmomc, compilers, etc.
Post Reply
Matthew Francis
Posts: 6
Joined: September 01 2005
Affiliation: University of Sydney

''Celestine'' Quintessence in CMBEASY

Post by Matthew Francis » May 08 2007

I've been trying to run CMBEASY for various Quintessence models using the w(a) = w_0 + (1-a)w_a parametrization dubbed 'Celestine' in CMBEASY. I've played around with the configuration.cfg file using the xcmb driver to change the Quintessence parameters for some of the other models (leaping,crossover) and it all works fine, but I can't seem to use this mechanism to adjust the celestine parameters through the configuration file.

If I add lines to the .cfg file indicating the w_0 and w_a values I want they appear to get read in correctly, So if I put:

celestine:w0=-0.9
celestine:w1=0.1

in the .cfg file after adding

double w0() const { return param[0];}
double wa() const { return param[1];}

to celestine.h, I get the output from xcmb:

----------------------------------------
----Begin configuration entries---------
----------------------------------------
Configuration file: ../resources/configuration.cfg
Gauge: quintSynchronous
InitialConditions: adiabatic
QuintessenceType: celestine
--Parameters:
w0: -0.9
w1: 0.1


However these values don't seem to be used by the program, and the only way I can actually change them is in the celestine.h file, which requires re-compilation to use the new values. In the above example I set in the celestine.h file:

param.resize(2);
param[0] = -0.4;
param[1] = 0

The code seems to use the above values regardless of what appears in the configuration file. This is confirmed by the QuintCosmos Status output:

=============================================================
======================= QuintCosmos Status =======================
=============================================================
.....
:::: w_0: -4.000000e-01

Unlike crossover and the other Quintessence models, there is no celestine.cc file and in particular no prepare() routine which I suspect could be part of the problem.

If anyone could give me some suggestions as to how to control celestine and more generally any arbitrary quintessence model that has been constructed without needed to re-compile I would appreciate it.

Georg Robbers
Posts: 5
Joined: May 23 2006
Affiliation: University of Heidelberg

Re: ''''Celestine'''' Quintessence in CMBEASY

Post by Georg Robbers » May 09 2007

Try this patch:

Code: Select all

=== cmbeasy/anisotropy/xdriver.cc
==================================================================
--- cmbeasy/anisotropy/xdriver.cc       (revision 961)
+++ cmbeasy/anisotropy/xdriver.cc       (local)
@@ -174,6 +174,7 @@
       if (dataManager.getQuintessenceType()==Quintessence::leaping) { cosmos.setQParameters(dataManager.getQuintessenceParameters());
       cosmos.tuneQuintessence(dataManager.getLeapingTune()); }
       else if (dataManager.getQuintessenceType()==Quintessence::ipl || dataManager.getQuintessenceType()==Quintessence::crossover ||
+          dataManager.getQuintessenceType()==Quintessence::celestine ||
               dataManager.getQuintessenceType()==Quintessence::crossoverfield) {
                cosmos.setQParameters(dataManager.getQuintessenceParameters());
        //      cosmos.setQParameters(20.0,0.01,0.0,0.0,280);
Unlike crossover and the other Quintessence models, there is no celestine.cc file and in particular no prepare() routine which I suspect could be part of the problem.
It doesn't need a .cc file - you only need to specify the equation of state itself, everything else is computed automatically by the parent class (in arbitrary.cc).

Matthew Francis
Posts: 6
Joined: September 01 2005
Affiliation: University of Sydney

''Celestine'' Quintessence in CMBEASY

Post by Matthew Francis » May 09 2007

Thanks Georg, it works fine with that additional line. Cheers!

Post Reply