CLASS MANUAL
primordial.h File Reference
#include "perturbations.h"
+ Include dependency graph for primordial.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  primordial
 

Enumerations

enum  primordial_spectrum_type
 
enum  linear_or_logarithmic
 
enum  potential_shape
 
enum  target_quantity
 
enum  integration_direction
 
enum  time_definition
 
enum  phi_pivot_methods
 
enum  inflation_module_behavior
 

Detailed Description

Documented includes for primordial module.


Data Structure Documentation

◆ primordial

struct primordial

Structure containing everything about primordial spectra that other modules need to know.

Once initialized by primordial_init(), contains a table of all primordial spectra as a function of wavenumber, mode, and pair of initial conditions.

Data Fields
double k_pivot

pivot scale in $ Mpc^{-1} $

int has_k_max_for_primordial_pk
double k_max_for_primordial_pk

maximum value of k in 1/Mpc in P(k)

enum primordial_spectrum_type primordial_spec_type

type of primordial spectrum (simple analytic from, integration of inflationary perturbations, etc.)

double A_s

usual scalar amplitude = curvature power spectrum at pivot scale

double n_s

usual scalar tilt = [curvature power spectrum tilt at pivot scale -1]

double alpha_s

usual scalar running

double beta_s

running of running

double r

usual tensor to scalar ratio of power spectra, $ r=A_T/A_S=P_h/P_R $

double n_t

usual tensor tilt = [GW power spectrum tilt at pivot scale]

double alpha_t

usual tensor running

double f_bi

baryon isocurvature (BI) entropy-to-curvature ratio $ S_{bi}/R $

double n_bi

BI tilt

double alpha_bi

BI running

double f_cdi

CDM isocurvature (CDI) entropy-to-curvature ratio $ S_{cdi}/R $

double n_cdi

CDI tilt

double alpha_cdi

CDI running

double f_nid

neutrino density isocurvature (NID) entropy-to-curvature ratio $ S_{nid}/R $

double n_nid

NID tilt

double alpha_nid

NID running

double f_niv

neutrino velocity isocurvature (NIV) entropy-to-curvature ratio $ S_{niv}/R $

double n_niv

NIV tilt

double alpha_niv

NIV running

double c_ad_bi

ADxBI cross-correlation at pivot scale, from -1 to 1

double n_ad_bi

ADxBI cross-correlation tilt

double alpha_ad_bi

ADxBI cross-correlation running

double c_ad_cdi

ADxCDI cross-correlation at pivot scale, from -1 to 1

double n_ad_cdi

ADxCDI cross-correlation tilt

double alpha_ad_cdi

ADxCDI cross-correlation running

double c_ad_nid

ADxNID cross-correlation at pivot scale, from -1 to 1

double n_ad_nid

ADxNID cross-correlation tilt

double alpha_ad_nid

ADxNID cross-correlation running

double c_ad_niv

ADxNIV cross-correlation at pivot scale, from -1 to 1

double n_ad_niv

ADxNIV cross-correlation tilt

double alpha_ad_niv

ADxNIV cross-correlation running

double c_bi_cdi

BIxCDI cross-correlation at pivot scale, from -1 to 1

double n_bi_cdi

BIxCDI cross-correlation tilt

double alpha_bi_cdi

BIxCDI cross-correlation running

double c_bi_nid

BIxNIV cross-correlation at pivot scale, from -1 to 1

double n_bi_nid

BIxNIV cross-correlation tilt

double alpha_bi_nid

BIxNIV cross-correlation running

double c_bi_niv

BIxNIV cross-correlation at pivot scale, from -1 to 1

double n_bi_niv

BIxNIV cross-correlation tilt

double alpha_bi_niv

BIxNIV cross-correlation running

double c_cdi_nid

CDIxNID cross-correlation at pivot scale, from -1 to 1

double n_cdi_nid

CDIxNID cross-correlation tilt

double alpha_cdi_nid

CDIxNID cross-correlation running

double c_cdi_niv

CDIxNIV cross-correlation at pivot scale, from -1 to 1

double n_cdi_niv

CDIxNIV cross-correlation tilt

double alpha_cdi_niv

CDIxNIV cross-correlation running

double c_nid_niv

NIDxNIV cross-correlation at pivot scale, from -1 to 1

double n_nid_niv

NIDxNIV cross-correlation tilt

double alpha_nid_niv

NIDxNIV cross-correlation running

enum potential_shape potential

parameters describing the case primordial_spec_type = inflation_V

double V0

one parameter of the function V(phi)

double V1

one parameter of the function V(phi)

double V2

one parameter of the function V(phi)

double V3

one parameter of the function V(phi)

double V4

one parameter of the function V(phi)

double H0

one parameter of the function H(phi)

double H1

one parameter of the function H(phi)

double H2

one parameter of the function H(phi)

double H3

one parameter of the function H(phi)

double H4

one parameter of the function H(phi)

double phi_end

value of inflaton at the end of inflation

enum phi_pivot_methods phi_pivot_method

flag for method used to define and find the pivot scale

double phi_pivot_target

For each of the above methods, critical value to be reached between pivot and end of inflation (N_star, [aH]ratio, etc.)

enum inflation_module_behavior behavior

Specifies if the inflation module computes the primordial spectrum numerically (default) or analytically

char * command

'external_Pk' mode: command generating the table of Pk and custom parameters to be passed to it string with the command for calling 'external_Pk'

double custom1

one parameter of the primordial computed in 'external_Pk'

double custom2

one parameter of the primordial computed in 'external_Pk'

double custom3

one parameter of the primordial computed in 'external_Pk'

double custom4

one parameter of the primordial computed in 'external_Pk'

double custom5

one parameter of the primordial computed in 'external_Pk'

double custom6

one parameter of the primordial computed in 'external_Pk'

double custom7

one parameter of the primordial computed in 'external_Pk'

double custom8

one parameter of the primordial computed in 'external_Pk'

double custom9

one parameter of the primordial computed in 'external_Pk'

double custom10

one parameter of the primordial computed in 'external_Pk'

int md_size

number of modes included in computation

int * ic_size

for a given mode, ic_size[index_md] = number of initial conditions included in computation

int * ic_ic_size

number of ordered pairs of (index_ic1, index_ic2); this number is just N(N+1)/2 where N = ic_size[index_md]

int lnk_size

number of ln(k) values

double * lnk

list of ln(k) values lnk[index_k]

double ** lnpk

depends on indices index_md, index_ic1, index_ic2, index_k as: lnpk[index_md][index_k*ppm->ic_ic_size[index_md]+index_ic1_ic2] where index_ic1_ic2 labels ordered pairs (index_ic1, index_ic2) (since the primordial spectrum is symmetric in (index_ic1, index_ic2)).

  • for diagonal elements (index_ic1 = index_ic2) this arrays contains ln[P(k)] where P(k) is positive by construction.
  • for non-diagonal elements this arrays contains the k-dependent cosine of the correlation angle, namely P(k )_(index_ic1, index_ic2)/sqrt[P(k)_index_ic1 P(k)_index_ic2] This choice is convenient since the sign of the non-diagonal cross-correlation is arbitrary. For fully correlated or anti-correlated initial conditions, this non -diagonal element is independent on k, and equal to +1 or -1.
double ** ddlnpk

second derivative of above array, for spline interpolation. So:

  • for index_ic1 = index_ic, we spline ln[P(k)] vs. ln(k), which is good since this function is usually smooth.
  • for non-diagonal coefficients, we spline P(k)_(index_ic1, index_ic2)/sqrt[P(k)_index_ic1 P(k)_index_ic2] vs. ln(k), which is fine since this quantity is often assumed to be constant (e.g for fully correlated/anticorrelated initial conditions) or nearly constant, and with arbitrary sign.
short ** is_non_zero

is_non_zero[index_md][index_ic1_ic2] set to false if pair (index_ic1, index_ic2) is uncorrelated (ensures more precision and saves time with respect to the option of simply setting P(k)_(index_ic1, index_ic2) to zero)

double ** amplitude

all amplitudes in matrix form: amplitude[index_md][index_ic1_ic2]

double ** tilt

all tilts in matrix form: tilt[index_md][index_ic1_ic2]

double ** running

all runnings in matrix form: running[index_md][index_ic1_ic2]

int index_in_a

scale factor

int index_in_phi

inflaton vev

int index_in_dphi

its time derivative

int index_in_ksi_re

Mukhanov variable (real part)

int index_in_ksi_im

Mukhanov variable (imaginary part)

int index_in_dksi_re

Mukhanov variable (real part, time derivative)

int index_in_dksi_im

Mukhanov variable (imaginary part, time derivative)

int index_in_ah_re

tensor perturbation (real part)

int index_in_ah_im

tensor perturbation (imaginary part)

int index_in_dah_re

tensor perturbation (real part, time derivative)

int index_in_dah_im

tensor perturbation (imaginary part, time derivative)

int in_bg_size

size of vector of background quantities only

int in_size

full size of vector

double phi_pivot

in inflationary module, value of phi_pivot (set to 0 for inflation_V, inflation_H; found by code for inflation_V_end)

double phi_min

in inflationary module, value of phi when $ k_{min}=aH $

double phi_max

in inflationary module, value of phi when $ k_{max}=aH $

double phi_stop

in inflationary module, value of phi at the end of inflation

short primordial_verbose

flag regulating the amount of information sent to standard output (none if set to zero)

ErrorMsg error_message

zone for writing error messages

Enumeration Type Documentation

◆ primordial_spectrum_type

enum defining how the primordial spectrum should be computed

◆ linear_or_logarithmic

enum defining whether the spectrum routine works with linear or logarithmic input/output

◆ potential_shape

enum defining the type of inflation potential function V(phi)

◆ target_quantity

enum defining which quantity plays the role of a target for evolving inflationary equations

◆ integration_direction

enum specifying if we want to integrate equations forward or backward in time

◆ time_definition

enum specifying if we want to evolve quantities with conformal or proper time

◆ phi_pivot_methods

enum specifying how, in the inflation_V_end case, the value of phi_pivot should calculated

◆ inflation_module_behavior

enum specifying how the inflation module computes the primordial spectrum (default: numerical)