ps_halo_1loop.c File Reference

Documented real-space, direct numerical integration computation of 1loop contributions of the halo/galaxy power spectrum See arXiv:2010.14523 for explicit expressions. More...

#include "header.h"
Include dependency graph for ps_halo_1loop.c:

Functions

double PS_hh_G (struct Cosmology *Cx, double k, double z, double M, long mode_pt, long IR_switch, long SPLIT, long mode_mf)
 Compute the contributions up to 1loop to halo power spectrum for Gaussian initial conditions. More...
 
double PS_hh_PNG (struct Cosmology *Cx, double k, double z, double M, long mode_pt, long IR_switch, long SPLIT, long mode_mf)
 Compute contributions up to 1loop to halo power spectrum arising from non-Gaussian initial conditions of local shape. More...
 
static int G_loop_integrands (const int *ndim, const cubareal x[], const int *ncomp, cubareal ff[], void *p)
 The integrand function passed passed to Cuhre integration routine to compute Gaussian 1loop terms. More...
 
void Compute_G_loops (struct Cosmology *Cx, double k, double z, long IR_switch, long hm_switch, long SPLIT, double *result)
 Compute the loop contributions dure to nonlinear evolution of matter fluctuations and nonlinear halo bias, present for Gaussian initial conditions. More...
 
static int PNG_loop_integrands (const int *ndim, const cubareal x[], const int *ncomp, cubareal ff[], void *p)
 The integrand function passed passed to Cuhre integration routine to compute PNG 1loop terms. More...
 
void Compute_PNG_loops (struct Cosmology *Cx, double k, double z, long IR_switch, long SPLIT, double *result)
 Compute the loop contributions dure to nonlinear evolution of matter fluctuations and nonlinear halo bias, rising from non-Gaussian initial conditions of local shape. More...
 
double F2_s (double k1, double k2, double mu)
 
double S2_s (double k1, double k2, double mu)
 
double F3_s (double k, double q, double mu)
 
double S2 (double mu)
 
double F2 (double k1, double k2, double mu)
 

Detailed Description

Documented real-space, direct numerical integration computation of 1loop contributions of the halo/galaxy power spectrum See arXiv:2010.14523 for explicit expressions.

Azadeh Moradinezhad Dizgah, November 4th 2021

This module computes the 1loop halo/galaxy power sprtcurm in real-space via direct numerical integration. IR-resummation and EFT counter terms are included. In addition to loops due to gravitational loops, terms arising only in the presence of local PNG are also included. The explicit expressions of all the loops are given in 2010.14523.

In summary, the following functions can be called from other modules:

  1. PS_hh_G()
  2. PS_hh_PNG()
  3. Compute_Gloops()
  4. Compute_PNGloops()
  5. F2_s()
  6. F3_s()
  7. S2_s()
  8. F2()
  9. S2()

Function Documentation

◆ Compute_G_loops()

void Compute_G_loops ( struct Cosmology Cx,
double  k,
double  z,
long  IR_switch,
long  hm_switch,
long  SPLIT,
double *  result 
)

Compute the loop contributions dure to nonlinear evolution of matter fluctuations and nonlinear halo bias, present for Gaussian initial conditions.

Parameters
CxInput: pointer to cosmology structure
kInput: wavenumber
zInput: redshift of interest
IR_switchInput: switch to decide whether to perform IR resummation or no
hm_switchInput: switch to decide whether to compute the 1loop terms due to matter or bias
SPLITInput: switch to set the method to perform the wiggle-nowiggle split of matter power spectrum
resultOutput: an output array containing the results of the 1loop terms, has 2 elements for hm_switch=MATTER, and 6 elements for hm_switch=HALO
Returns
void
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Compute_PNG_loops()

void Compute_PNG_loops ( struct Cosmology Cx,
double  k,
double  z,
long  IR_switch,
long  SPLIT,
double *  result 
)

Compute the loop contributions dure to nonlinear evolution of matter fluctuations and nonlinear halo bias, rising from non-Gaussian initial conditions of local shape.

Parameters
CxInput: pointer to cosmology structure
kInput: wavenumber
zInput: redshift of interest
IR_switchInput: switch to decide whether to perform IR resummation or no
SPLITInput: switch to set the method to perform the wiggle-nowiggle split of matter power spectrum
resultOutput: an output array containing the results of the 1loop terms, has 8 elements for hm_switch=HALO
Returns
void
Here is the call graph for this function:
Here is the caller graph for this function:

◆ F2()

double F2 ( double  k1,
double  k2,
double  mu 
)
Here is the caller graph for this function:

◆ F2_s()

double F2_s ( double  k1,
double  k2,
double  mu 
)
Here is the caller graph for this function:

◆ F3_s()

double F3_s ( double  k,
double  q,
double  mu 
)
Here is the caller graph for this function:

◆ G_loop_integrands()

static int G_loop_integrands ( const int *  ndim,
const cubareal  x[],
const int *  ncomp,
cubareal  ff[],
void *  p 
)
static

The integrand function passed passed to Cuhre integration routine to compute Gaussian 1loop terms.

Parameters
ndimInput: Dimensionality of the domain of integration
xInput: An array of integration variables
ncompInput: Dimensionality of the integrand function
ffInput: Array of values of the integrand of dimension fdim
pInput: integration parmaeters return the error status

Model used in 1907.06666, the integrals are given in the appendix, Eq. A1, note that my S2_s = sigma^2(q,k-1) and F2_s = F2(q,k-q) in their notation. Factor of 2. * (logqmax - logqmin) is due to change of variable from 0 to logarithmic k, and a factor of 2*PI is due to integration over azimuthal angle. Note that to compare the theoretical predictions against Emiliano's measurement, since he is using a different notation for Fourier transform, I need to devide each 0 power spectrum by a factor of 1/pow(2.*M_PI,3.), which I do in my pk_lin() function. If using another notation for Fourier transform (the one that I usually use, which has a factor of 1/pow(2*M_PI,3) in the definition), you need to multiply these integrands by a factor of 1/pow(2*M_PI,3).

The integrands below correspond to the follwing bias combinaions:

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PNG_loop_integrands()

static int PNG_loop_integrands ( const int *  ndim,
const cubareal  x[],
const int *  ncomp,
cubareal  ff[],
void *  p 
)
static

The integrand function passed passed to Cuhre integration routine to compute PNG 1loop terms.

Parameters
ndimInput: Dimensionality of the domain of integration
xInput: An array of integration variables
ncompInput: Dimensionality of the integrand function
ffInput: Array of values of the integrand of dimension fdim
pInput: integration parmaeters return the error status

Factor of 2. * (logqmax - logqmin) is due to change of variable from 0 to logarithmic k, and a factor of 2*PI is due to integration over azimuthal angle. Note that to compare the theoretical predictions against Emiliano's measurement, since he is using a different notation for Fourier transform, I need to devide each 0 power spectrum by a factor of 1/pow(2.*M_PI,3.), which I do in my pk_lin() function. If using another notation for Fourier transform (the one that I usually use, which has a factor of 1/pow(2*M_PI,3) in the definition), you need to multiply these integrands by a factor of 1/pow(2*M_PI,3).

The integrands below correspond to the follwing bias combinaions:

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PS_hh_G()

double PS_hh_G ( struct Cosmology Cx,
double  k,
double  z,
double  M,
long  mode_pt,
long  IR_switch,
long  SPLIT,
long  mode_mf 
)

Compute the contributions up to 1loop to halo power spectrum for Gaussian initial conditions.

Parameters
CxInput: pointer to cosmology structure
kInput: wavenumber
zInput: redshift of interest
MInput: halo mass, used in computing the halo bias
mode_ptInput: switch to decide whether to compute tree-level halo power spectrum or the 1loop
IR_switchInput: switch to decide whether to perform IR resummation or no
SPLITInput: switch to set the method to perform the wiggle-nowiggle split of matter power spectrum
mode_mfInput: switch to set the theoretical model of the mass function used to compute the halo biases
Returns
G loop contributions of P_h
Here is the call graph for this function:

◆ PS_hh_PNG()

double PS_hh_PNG ( struct Cosmology Cx,
double  k,
double  z,
double  M,
long  mode_pt,
long  IR_switch,
long  SPLIT,
long  mode_mf 
)

Compute contributions up to 1loop to halo power spectrum arising from non-Gaussian initial conditions of local shape.

Parameters
CxInput: pointer to cosmology structure
kInput: wavenumber
zInput: redshift of interest
MInput: halo mass, used in computing the halo bias
mode_ptInput: switch to decide whether to compute tree-level halo power spectrum or the 1loop
IR_switchInput: switch to decide whether to perform IR resummation or no
SPLITInput: switch to set the method to perform the wiggle-nowiggle split of matter power spectrum
mode_mfInput: switch to set the theoretical model of the mass function used to compute the halo biases
Returns
PNG loop contributions of P_h
Here is the call graph for this function:

◆ S2()

double S2 ( double  mu)

◆ S2_s()

double S2_s ( double  k1,
double  k2,
double  mu 
)
Here is the caller graph for this function: