=1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines...

25
Second- Order Non- Gaussianity - SONG coauthored with GW Pettinari Institut für theoretische Teilchenphysik und Kosmologie Christian Fidler Today

Transcript of =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines...

Page 1: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

Second-Order Non-Gaussianity - SONG

coauthored with GW Pettinari

Institut für theoretische Teilchenphysik und Kosmologie

Christian Fidler

Today

Page 2: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 3: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 4: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 5: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 6: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 7: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 8: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 9: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

2LD1

�2in

Ga

us

s

Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie

SONG 7/ 23

Page 10: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 11: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 12: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 13: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 14: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 15: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 16: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 17: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 18: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 19: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 20: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 21: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 22: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 23: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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

Page 24: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

THANK YOU FOR YOUR ATTENTION!

Christian Fidler Institut für theoretische Teilchenphysik und Kosmologie

SONG 22/ 23

Page 25: =1=Second-=1=Order =1=Non-=1=Gaussianity - =1=song ... · Easy to learn Ô More than 10.000 lines of comments Ô Structure of second-order modules as close as possible to the linear

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