SONICC
SONICC (Scale-dependent Omega for Neutrino Initial Condition Codes) computes backscaled initial density and velocity transfer functions for use in massive neutrino cosmological simulations.
Running
There are two parameter files within the params subdirectory that need to be filled in.
- First is a CAMB parameters file (an example is provided) containing the cosmological parameters and any other CAMB parameters you desire. Be careful to set the accuracy settings appropriately to ensure accurate neutrino transfer functions are computed:
accuracy_boost = 4
l_accuracy_boost = 5
Note that SONICC will determine what redshifts to sample CAMB with, but to prevent CAMB from initially complaining when reading this file, you will need to provide something as input. It is best to simply set:
transfer_num_redshifts = 1
transfer_redshift(1) = 0.000
- The second is a python file containing the initial redshifts for the cold matter and baryons, which can be the same or different, as well as the final redshift of the simulation (which is the redshift at which we will match CAMB). Here you will also link to the CAMB parameters file and specify an output directory. The other parameters specify time-stepping in the numerical solution of the linearized evolution equations and can be left at their default values. Optionally, you may enable flags that will output plots showing the scale-dependent omega at each iteration as well as plots comparing the resulting linear forward model of the simulation to CAMB at various redshifts.
Once the parameters are fully specified, the code is executed via
$ python SONICC.py
After successful completion, a text file storing the scale-dependent omega used in the growth factor will be created as well as text files storing the backscaled density and velocity transfer functions at the cold matter and neutrino initial redshifts.
Requirements
- camb: used to compute linear theory transfer functions.
- numpy
- scipy
- matplotlib: only used if optional plotting flags are enabled.