Skip to content
Snippets Groups Projects

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.

Installation

You can install SONICC with pip, either directly from the git repository:

pip install git+https://git.cels.anl.gov/hacc/sonicc.git

or by first cloning the repository:

git clone https://git.cels.anl.gov/hacc/sonicc.git
cd sonicc
pip install .

In either case, this will automatically install all of the internal dependencies (camb, numpy, scipy, matplotlib).

Running

After installing, SONICC can be run on the command line by passing the configuration file containing the relevant parameters; e.g.,

sonicc example_params/sonicc_params.toml

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.

Parameters

The configuration file contains the initial redshifts for the cold matter and neutrinos, which can be the same or different, as well as the final redshift of the simulation (which is the redshift at which the total matter transfer function will match CAMB). 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. The plots will be saved to the location specified for the output path.

The CAMB parameters file (an example is provided here) contains 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