Skip to content

Public repository of the Cosmic Linear Anisotropy Solving System (master or 2.9 branches for standard code; ExoCLASS branch for exotic energy injection; class_matter branch for FFTlog)

Notifications You must be signed in to change notification settings

jsalvado/class_public_lrs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLASS_lrs: Cosmic Linear Anisotropy Solving System with Long Range Interactions

Forked by Ivan Esteban and Jordi Salvado from the CLASS code by Julien Lesgourgues and Thomas Tram.

This is a fork of CLASS 2.9.2, designed to implement the cosmology of scalar-mediated long range interactions among fermions. For details, see the companion paper.

There are two ipython notebooks in the notebooks/ folder, longrange.ipynb and longrange_checks.ipynb, that you can have a look at to familiarize yourself with this code.

Input parameters

  • longrangescalar -- If 'y' or 'Y', include scalar-mediated long range interactions
  • longrangescalar_phi_pt -- If 'y' or 'Y', include scalar field perturbations (see caveats below)
  • longrangescalar_nuggets -- If 'y' or 'Y', include fermion nugget formation (see caveats below)
  • lrs_g_over_M -- Interaction coupling over scalar mass in eV-1
  • lrs_M_phi -- Scalar mass in eV. Only relevant if scalar field perturbations are being taken into account
  • lrs_m_F -- Fermion mass in eV
  • log10_lrs -- If 'y' or 'Y', the input parameters lrs_g_over_M, lrs_M_phi and lrs_m_F are interpreted as the base-10 logarithms of the corresponding physical parameters
  • lrs_g_F -- Number of internal degrees of freedom of the fermion
  • lrs_T_F -- Fermion temperature over photon temperature, assumed to be constant

Caveats

The main physical issue is that density perturbations of a system of attractive long-range interacting fermions are unstable. When fermions become non-relativistic, they collapse into non-linear nuggets that a linear code as CLASS cannot properly model. This can be overcome by assuming that nugget formation takes place over timescales and distances much smaller than cosmological scales. In this case, one can enforce an instantaneous transition to a dust-like behaviour below some pre-computed fermion temperature Tnug. This is equivalent to setting

longrangescalar_phi_pt = 'N'

longrangescalar_nuggets = 'y'

It is important to turn off scalar field perturbations, as they may make perturbations exponentially grow if Tnug is not 100% precise. For the details on how we estimate Tnug, see Appendix B in the companion paper.

The code can also be run with scalar field perturbations, in which case non-relativistic fermion density perturbations will exponentially grow. Notice, though, that this growth is stronger at scales much smaller than those computed by CLASS, what in turn affects the background. Such simulations are therefore unphysical.

Apart from that, the implementation largely follows the CLASS 2.9.2 implementation of warm relics (named ncdm in the code). The fermion momentum distribution function is hard-coded to be Fermi-Dirac of an ultrarelativistic relic. This can be easily modified in the function background_lrs_distribution of the file source/longrange.c. Fluid approximations are in principle implemented, but their accuracy has not been tested. Tensor perturbations have not been properly implemented.

About

Public repository of the Cosmic Linear Anisotropy Solving System (master or 2.9 branches for standard code; ExoCLASS branch for exotic energy injection; class_matter branch for FFTlog)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 51.4%
  • Jupyter Notebook 34.3%
  • Python 5.1%
  • JavaScript 3.4%
  • C++ 1.4%
  • CSS 1.0%
  • Other 3.4%