Download: PSpectRe

Early Universe Cosmology @ Yale

 

PSpectRe [PSeudo Spectral Reheating] is C++ code for evolving interacting scalar fields in the early universe.   PSpectRe is (as the name suggests!) based on a pseudo-spectral algorithm, so the fundamental variables are the momentum modes of the interacting fields, unlike finite difference routines, which evaluate the fields in position space.   As currently implemented, PSpectRe simulates two fields interacting via a quartic polynomial potential, or a single field with a sixth-order potential, and it is designed to be easily extendable to a variety of problems and scenarios in early universe physics.


PSpectRe is developed by Richard Easther, Hal Finkel and Nathaniel Roth, and available under a BSD-style license. Consequently, you are free to reuse and adapt this code, with or without redistribution of the source, but must provide appropriate acknowledgement in any derivative work.


We have a number of plans for extending PSpectRe, and designed the code to be flexible and adaptable. PSpectRe has been well tested for some scenarios, but has not been thoroughly tested for all combinations of all options.  If you find bugs, have feedback, or want to be emailed when we update the code, please contact Hal Finkel or Richard Easther.


Since PSpectRe is based on a pseudo-spectral algorithm, the fundamental variables are the momentum modes of the interacting fields, unlike finite difference routines, which evaluate the fields in position space.   


Click to download PSpectRe

Using PSpectRe:  The makefile makes intelligent guesses about which compiler to use (either g++ or Intel), and hopefully the code can be built by simply typing “make” at the command line. The code can be invoked with the following command, to get a sample run for a model with a quadratic inflaton potential:


./pspectre @example_params.txt


while


./pspectre @lambdaphi4_params.txt


will run a model with a quartic potential  while


./pspectre @oscphi6_params.txt


runs an oscillon model.



Documentation is in the “documentation” directory! Good luck.


If you are using PSpectRe and wish to be informed of updates and bugfixes, please contact Hal Finkel or Richard Easther



Other Numerical Resources:

  1. BulletLatticeEasy - staggered leapfrog finite difference (Felder and Tkachev)

  2. BulletCUDAEasy - GPU accelerated LatticeEasy (Sainio).

  3. BulletDefrost - higher order finite difference (Frolov) and MPI-Defrost (Finkel)