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.
'Celestine' Quintessence in CMBEASY
-
- Posts: 6
- Joined: September 01 2005
- Affiliation: University of Sydney
-
- Posts: 5
- Joined: May 23 2006
- Affiliation: University of Heidelberg
Re: ''''Celestine'''' Quintessence in CMBEASY
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);
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).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.
-
- Posts: 6
- Joined: September 01 2005
- Affiliation: University of Sydney
''Celestine'' Quintessence in CMBEASY
Thanks Georg, it works fine with that additional line. Cheers!