PYESSENCE is a Python code designed to allow the testing of linearly perturbed coupled quintessence models with multiple CDM fluid species and multiple DE scalar fields. The code allows two main approaches to investigating the viability of such models. Firstly, the "stability" of these perturbations may be investigated. Here we use the word "stability" rather loosely to mean the perturbations might experience runaway growth or "explode"; models in which the perturbations have runaway growth may be excluded. Secondly, the power spectra or growth functions may be calculated in order they be compared with observations - they may either prove to be outside current observational bounds or provide deviations from the standard model of cosmology which would be detectable in future surveys e.g. SKA. The code is designed to be as general as possible, with the form of the potential and other model specific parameters set in the MODEL.py module, while the equations within the code allow for more exotic forms of dark matter which might have non-zero equations of state. For any given model the code will produce or allow to be calculated some quantities which may be compared with observations. Most directly the evolution of the density perturbations for the CDM species are calculated by the code along with the background densities for the same. This in turn allows the power spectrum for the density perturbations to be generated by running the code for a range of wavenumbers. Furthermore, growth functions such as 'g', the evolution of the density contrast normalised by today's value, or 'f', the e-fold derivative of the density contrast scaled to the density contrast may be generated from the data output and compared with, for example, f(z)σ8(z) measurements. Finally and related to this last point, although the code gives results in flat gauge it is a simple matter to convert these into whichever gauge is required for a given research or comparison with existing literature. An advantage of this code is that it is relatively small and therefore fast. It can generate sufficient observables to allow the ruling out of regions of parameter space, or potentially a given model entirely, before embarking on more detailed analysis with larger codes with broader functionality.


PYESSENCE was written and tested using Python 2.7.3 and should therefore work on higher versions. It may work with earlier versions but this has not been tested.
The core modules use Numpy, and these were developed and tested using v1.6.2.
The core modules use Scipy, and these were developed and tested using v0.10.1.
The various example PYESSENCE application examples use Matplotlib to demonstrate plotting of results but this is not required for the core modules.


Download the latest version of PYESSENCE from either Bitbucket or this website. If necessary unpack the zipped directories into a working directory. Make sure to add the paths for the Examples, General and Model folders to PYTHONPATH. Adding the Data folder to PYTHONPATH is not necessary for the running of the core modules, however depending upon how any application files are configured this might be necessary/advantageous. Once installed with the pathing updated it should be possible to run the application in the normal way from the command line. Alternatively, a preferred interface may be used e.g. Spyder. There is also a README.txt file included for a quick reference guide.

Please note: If you use PYESSENCE in any published work you are kindly asked to cite this guide paper and this first use paper.