=1=second-=1=order =1=non-=1=gaussianity - =1=song ... · easy to learn Ô more than 10.000 lines...
TRANSCRIPT
Second-Order Non-Gaussianity - SONG
coauthored with GW Pettinari
Institut für theoretische Teilchenphysik und Kosmologie
Christian Fidler
Today
Second-Order Boltzmann Codes
Why do we need second-order perturbations?Higher precisionNew physics
Ô Non-GaussianityÔ Mode couplingÔ Scalar-Vector-Tensor coupling
e.g. B-modesÔ Source terms
e.g. magnetic fields
∆(1)(~k , τ) = T (1)(k , τ)Φ(~k)
∆(2)(~k , τ) =
∫ ∫d~k1d~k2δ
3(~k − ~k1 − ~k2)T (2)(k , ~k1, ~k2, τ)Φ(~k1)Φ(~k2)
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 1/ 23
Second-Order Boltzmann Codes
Why do we need second-order perturbations?Higher precisionNew physics
Ô Non-GaussianityÔ Mode couplingÔ Scalar-Vector-Tensor coupling
e.g. B-modesÔ Source terms
e.g. magnetic fields
∆(1)(~k , τ) = T (1)(k , τ)Φ(~k)
∆(2)(~k , τ) =
∫ ∫d~k1d~k2δ
3(~k − ~k1 − ~k2)T (2)(k , ~k1, ~k2, τ)Φ(~k1)Φ(~k2)
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 1/ 23
A Brief History
Non-linear Boltzmann codes developed to predict the intrinsic bispectrumfor the PLANCK satellite mission
History of second-order codesCMBQUICK in mathematica (Pitrou 2011)First code, but relatively slow. Takes weeks to perform calculation tosufficient accuracyCOSMOLIB in C++ (Huang 2012)Significantly faster (several hours for the temperature bispectrum)SONG in C (Pettinari/Fidler 2013)Based on CLASS. Includes polarisation, magnetic fields, ...PRIVATE CODE in C++ (Su 2013)
The codes have been carefully crosschecked
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 2/ 23
Key Features of SONG
Based on CLASS
Ô Liner part of calculation performed by CLASSÔ Non-linear part inspired by CLASSÔ Modular, self-contained and flexible
Easy to learnÔ More than 10.000 lines of commentsÔ Structure of second-order modules as close as possible to the linear ones
of CLASS
Fast and efficientÔ OpenMP parallelisationÔ Uses novel numerical methods for Bessel integrations in the bispectrumÔ Takes 8 hours to compute the second-order bispectrum on a single core
If you know CLASS, you already know a lot of SONG!
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 3/ 23
SONG Contains CLASS
SONG comes with a modified version of CLASS thatcomputes all background and linear quantitiesstores the quadratic sources needed for the non-linear Boltzmannequation
SONG adds two new modules to it’s version of CLASS:A new module computing (linear) primordial bispectra (bispectra.c)A new module computing Fisher matrices (fisher.c)
These are required to compute the impact of the intrinsic bispectrum whenmeasuring various primordial templates.But they can also be used independant of SONG to compute primordialbispectra of non-separable primordial kernels.
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 4/ 23
SONG Includes ...
Second-order modulesSecond-order version of most class modules (e.g. perturbations2.c,transfer2.c)’Running class with two extra loops’ (k ,k1,k2)Quadratic sources complicate structureGeometric mode-couplingsBispectrum integration in bispectra2.c
∆(2)(~k , τ) =
∫ ∫d~k1d~k2δ
3(~k − ~k1 − ~k2)T (2)(k , ~k1, ~k2, τ)Φ(~k1)Φ(~k2)
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 5/ 23
SONG Computes Non-Gaussianity
Ideal experimentPRISMCoREPlanck
S / N
0
1
2
3
4
Multipole ℓ0 1000 2000 3000 4000
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 6/ 23
SONG Computes ...
SONG can compute matter perturbations beyond linear perturbation theory
10-4 10-3 10-2 10-1 100
k [1/Mpc]
0.6
0.4
0.2
0.0
0.2
0.4
0.6
0.8
1.0
1.2K
(k,1
0−5M
pc−
1,k
)z=500.0
10-4 10-3 10-2 10-1 100
k [1/Mpc]
z=100.0
10-4 10-3 10-2 10-1 100
k [1/Mpc]
z=0.0
δCDM numerical δb numerical δCDM analytical [VR]
SONG can solve other perturbations such as magnetic fields
0.1 0.5 1.0 5.0 10.0 50.0 100.0
10-31
10-29
10-27
10-25
a � aeq
@k3
PB
HkL�H
2Π
2LD1
�2in
Ga
us
s
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 7/ 23
SONG Computes ...
10 50 100 500 100010!10
10!9
10!8
10!7
10!6
10!5
10° 2° 0.5° 0.2°
!
1012
!!!"1"C !#!2
#"y!yy!Ey negativey!Ey positiveEy!Ey
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 8/ 23
SONG Computes Late-Time Effects
Late-time sources are tough at second-order. Use alternative approaches:Lensing: expansion in deflection anglesRedshift: transformation of variablesReionisation: blurring + low-l residuals
101 102
l
10−22
10−21
10−20
10−19
10−18
10−17
10−16
10−15
10−14
10−13
l(l
+1)CB l/2π
gain
gain (pSZ and pKin)
gain (pKin)
loss
linear (r = 10−4)
lensing
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 9/ 23
How Accurate Is SONG
Analytical approximationNumerical without redshift termNumerical with redshift term
b 6 ℓℓ
/ [-6
(C6Cℓ
+ C 6
C ℓ+
C ℓC ℓ
)]
−2
0
2
4
6
multipole ℓ200 500 800 1100 1400 1700 2000
SONG does not compute ...curvature, massive neutrinos, non-standard interactions, ...
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 10/ 23
Installing SONG
Installation should be simple if CLASS is already installed and running.The simplest option is to download directly fromhttps://github.com/coccoinomane/song by:
> git clone --recursive https :// github.com/coccoinomane/song.git
> cd song
> make song
Then test the code by
> ./song ini/intrinsic.ini pre/quick_song_run.pre
which should take less than a few minutes and create output ...
Running CLASS version v2.4.3
Running SONG version v1.0-beta3
Computing background
-> age = 13.813434 Gyr
-> conformal age = 14210.480724 Mpc
More information: https://arxiv.org/abs/1405.2280
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 11/ 23
The SONG-Directory
In your SONG-directory you should find
source/ // PHYSICS: the modules of SONG
main/ // main function song.c, calls the modules
include/ // all the headers
pre/ // various precision files
ini/ // various ini files
class.git/ // contains a modified version of CLASS
python/ // python wrapper for SONG
output/ // stores the requested output files
build/ // contains the compiled objects
tools/ // contains mathematical tools
test/ // contains routines used to test the code
scripts/ // some shell scripts
README.md // very important README file
MAKEFILE // The MAKEFILE
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 12/ 23
Structure of SONG
In addition to the CLASS modules SONG executes
input2.c // Reads SONG specific parameters
perturbations2.c // Evolves the second -order transfer functions
bessel2.c // Computes geometric factors for the
// line -of-sight integration
transfer2.c // Solves the second -order
// line -of-sight integration
class/bispectra.c // Computes linear primordial bispectra
bispectra2.c // Computes the second -order
// intrinsic bispectrum
spectra2.c // Computes second -order powerspectra
class/fisher.c // Computes the Fisher matrix
ConventionsEach module has at least an init and a free functionModels that have a CLASS equivalent end with a ’2’ (also within thecode e.g. pt2 instead of pt)
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 13/ 23
Input Files
SONG is called with two input files:
> ./song initialisation.ini precision.pre
initialisation.ini tells the code what to computeprecision.pre tells the code how accurate to compute
Ô This distinction is very useful when the code takes hours!
The .ini and .pre files contain both SONG and CLASS parametersMany inputs are shared (e.g. cosmological parameters)Use ini/intrinsic.ini and pre/quick_song_run.pre as documentationMany useful templates predefinedUnspecified parameter are set to a default value
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 14/ 23
SONG *.ini Files
Fixing the cosmology, as done in CLASS:
## Planck+WP+highL+BAO - Planck paper XVI , 2013
h = 0.6777
T_cmb = 2.7255
omega_b = 0.022161
omega_cdm = 0.11889
N_eff = 3.04
Omega_k = 0.
reio_parametrization = reio_none
tau_reio = 0.0952
k_pivot = 0.05
A_s = 2.2138e-9
n_s = 0.9611
YHe = 0.2477055
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 15/ 23
SONG *.ini Files
What should SONG compute?
output =
tBisp , eBisp // temperature and polarised bispectra
tCl2 , eCL2 // second -order power -spectra
delta_cdm_bk // matter bispectrum
delta_cdm_pk // matter power -spectrum
magnetic_pk // magnetic field power -spectrum
fisher // Fisher matrix
bispectrum_types =
intrinsic // second -order bispectrum
local , equilateral // primordial shapes
modes_song = 0,1,2,3 // compute only scalars or also vectors ,
tensors , ...
How much output do we want?
perturbations_verbose = 1 // verbose -level CLASS
perturbations2_verbose = 2 // verbose -level SONG
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 16/ 23
SONG *.ini Files
Sources in the second-order systems (be careful!)// Sources for second -order evolution
quadratic_collision = yes
quadratic_liouville = yes
include_time_delay_in_liouville = yes
include_redshift_in_liouville = yes
include_lensing_in_liouville = yes
// Scattering line -of-sight sources at second order
include_pure_scattering_song = yes
include_quad_scattering_song = yes
use_delta_tilde_in_los = yes
// Metric (Liouville) line -of-sight sources at second order
include_pure_metric_song = no
include_quad_metric_song = no
include_time_delay_song = no
include_redshift_in_song = no
include_lensing_in_song = no
include_sachs_wolfe_song = yes
include_integrated_sachs_wolfe_song = yes
only_early_isw = yes
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 17/ 23
SONG Precision Parameters
0.35
0.40
0.45
0.50
NL20 40 60 80 100 120 140
0.4
0.5
0.6
0.7
0.8
Nk0 100 200 300 400
0.45
0.50
0.55
0.60
N τ0 50 100 150 200 250 300
S / N
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Lmax sources0 5 10 15 20
0.4
0.6
0.8
1.0
k max / Mpc-10.1 0.2 0.3 0.4 0.5
0.5
1.0
1.5
2.0
2.5
Δ r0 20 40 60 80 100
S / N
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 18/ 23
SONG *.pre Files
Identical parameters for SONG are marked by a _songSome CLASS parameters are overwritten by SONG
// k_1 and k_2 -sampling
k_min_tau0_song = 0.1
k_max_tau0_over_l_max_song = 2
k_step_sub_song = 0.1
k_step_super_song = 0.025
k_logstep_super_song = 1.8
k_max_for_pk = 0.1
// k_3 sampling
k3_size_min = 5
// time sampling quadratic sources
perturb_sampling_stepsize_for_quadsources = 0.03
// time sampling line -of-sight
perturb_sampling_stepsize_song = 0.4
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 19/ 23
SONG *.pre Files
// Maximum multipole
l_max_scalars = 100
// Multipole cut in Boltzmann Hierarchy
l_max_g_song = 12
l_max_ur_song = 12
l_max_pol_g_song = 12
l_max_g_quadsources = -1
l_max_ur_quadsources = -1
l_max_pol_g_quadsources = -1
// Multipole cut in line -of-sight integration
l_max_los_t = 5
l_max_los_p = 5
l_max_los_quadratic_t = 5
l_max_los_quadratic_p = 5
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 20/ 23
SONG Output
A typical SONG console output:
Fisher matrix for l_max = 100:
local ( 0.000384991 -1.03924e-05 -0.000385105 )
equilateral ( -1.03924e-05 3.71746e-05 -2.35203e-05 )
intrinsic ( -0.000385105 -2.35203e-05 0.000722315 )
Correlation matrix for l_max = 100:
local ( 1 -0.0868697 -0.730282 )
equilateral ( -0.0868697 1 -0.143534 )
intrinsic ( -0.730282 -0.143534 1 )
fnl matrix (diagonal: 1/sqrt(F_ii), upper: F_12/F_11 , lower: F_12
/F_22):
local ( 50.9653 -0.0269939 -1.0003 )
equilateral ( -0.279557 164.012 -0.632697 )
intrinsic ( -0.533154 -0.0325623 37.208 )
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 21/ 23
THANK YOU FOR YOUR ATTENTION!
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 22/ 23
Installing SONG
Installation should be simple if CLASS is already installed and running.The simplest option is to download directly fromhttps://github.com/coccoinomane/song by:
> git clone --recursive https :// github.com/coccoinomane/song.git
> cd song
> make song
Then test the code by
> ./song ini/intrinsic.ini pre/quick_song_run.pre
which should take less than a few minutes and create output ...
Running CLASS version v2.4.3
Running SONG version v1.0-beta3
Computing background
-> age = 13.813434 Gyr
-> conformal age = 14210.480724 Mpc
More information: https://arxiv.org/abs/1405.2280
Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie
SONG 23/ 23