4 #include "trigonometric_integrals.h"
9 #define _M_EV_TOO_BIG_FOR_HALOFIT_ 10.
11 #define _M_SUN_ 1.98847e30
13 #define _MAX_NUM_EXTRAPOLATION_ 100000
15 enum non_linear_method {nl_none,nl_halofit,nl_HMcode};
16 enum pk_outputs {pk_linear,pk_nonlinear,pk_numerical_nowiggle,pk_analytic_nowiggle};
18 enum source_extrapolation {extrap_zero,extrap_only_max,extrap_only_max_units,extrap_max_scaled,extrap_hmcode,extrap_user_defined};
20 enum hmcode_baryonic_feedback_model {hmcode_emu_dmonly, hmcode_owls_dmonly, hmcode_owls_ref, hmcode_owls_agn, hmcode_owls_dblim, hmcode_user_defined};
21 enum hmcode_version {hmcode_version_2015, hmcode_version_2020, hmcode_version_2020_unfitted, hmcode_version_2020_baryonic};
23 enum out_sigmas {out_sigma,out_sigma_prime,out_sigma_disp};
42 enum non_linear_method
method;
46 enum hmcode_baryonic_feedback_model feedback;
264 enum pk_outputs pk_output,
271 int fourier_pks_at_z(
275 enum pk_outputs pk_output,
280 double * out_pk_cb_ic
287 enum pk_outputs pk_output,
295 int fourier_pks_at_k_and_z(
299 enum pk_outputs pk_output,
305 double * out_pk_cb_ic
311 enum pk_outputs pk_output,
327 enum out_sigmas sigma_output,
335 enum pk_outputs pk_output,
429 enum out_sigmas sigma_output,
int fourier_pks_at_kvec_and_zvec(struct background *pba, struct fourier *pfo, enum pk_outputs pk_output, double *kvec, int kvec_size, double *zvec, int zvec_size, double *out_pk, double *out_pk_cb)
Definition: fourier.c:818
int fourier_sigma_at_z(struct background *pba, struct fourier *pfo, double R, double z, int index_pk, double k_per_decade, double *result)
Definition: fourier.c:2760
int fourier_k_nl_at_z(struct background *pba, struct fourier *pfo, double z, double *k_nl, double *k_nl_cb)
Definition: fourier.c:1179
int fourier_pk_tilt_at_k_and_z(struct background *pba, struct primordial *ppm, struct fourier *pfo, enum pk_outputs pk_output, double k, double z, int index_pk, double *pk_tilt)
Definition: fourier.c:1029
int fourier_get_source(struct background *pba, struct perturbations *ppt, struct fourier *pfo, int index_k, int index_ic, int index_tp, int index_tau, double **sources, double *source)
Definition: fourier.c:2177
int fourier_sigmas_at_z(struct precision *ppr, struct background *pba, struct fourier *pfo, double R, double z, int index_pk, enum out_sigmas sigma_output, double *result)
Definition: fourier.c:1103
int fourier_wnw_split(struct precision *ppr, struct background *pba, struct primordial *ppm, struct fourier *pfo)
Definition: fourier.c:2537
int fourier_free(struct fourier *pfo)
Definition: fourier.c:1812
int fourier_pk_at_k_and_z(struct background *pba, struct primordial *ppm, struct fourier *pfo, enum pk_outputs pk_output, double k, double z, int index_pk, double *out_pk, double *out_pk_ic)
Definition: fourier.c:448
int fourier_indices(struct precision *ppr, struct background *pba, struct perturbations *ppt, struct primordial *ppm, struct fourier *pfo)
Definition: fourier.c:1898
int fourier_get_tau_list(struct perturbations *ppt, struct fourier *pfo)
Definition: fourier.c:2127
int fourier_pk_at_z(struct background *pba, struct fourier *pfo, enum linear_or_logarithmic mode, enum pk_outputs pk_output, double z, int index_pk, double *out_pk, double *out_pk_ic)
Definition: fourier.c:70
int fourier_pk_analytic_nowiggle(struct precision *ppr, struct background *pba, struct primordial *ppm, struct fourier *pfo)
Definition: fourier.c:2492
int fourier_pk_linear(struct background *pba, struct perturbations *ppt, struct primordial *ppm, struct fourier *pfo, int index_pk, int index_tau, int k_size, double *lnpk, double *lnpk_ic)
Definition: fourier.c:2330
int fourier_get_k_list(struct precision *ppr, struct primordial *ppm, struct perturbations *ppt, struct fourier *pfo)
Definition: fourier.c:2056
int fourier_init(struct precision *ppr, struct background *pba, struct thermodynamics *pth, struct perturbations *ppt, struct primordial *ppm, struct fourier *pfo)
Definition: fourier.c:1265
int fourier_sigmas(struct fourier *pfo, double R, double *lnpk_l, double *ddlnpk_l, int k_size, double k_per_decade, enum out_sigmas sigma_output, double *result)
Definition: fourier.c:2584
double * pk_eq_w_and_Omega
Definition: fourier.h:230
int index_md_scalars
Definition: fourier.h:80
short has_pk_m
Definition: fourier.h:93
double ** nl_corr_density
Definition: fourier.h:211
int ln_tau_size_nl
Definition: fourier.h:128
int * pk_l_nw_index
Definition: fourier.h:192
double ** ddln_pk_nl
Definition: fourier.h:168
int index_tau_min_nl
Definition: fourier.h:214
double * k
Definition: fourier.h:118
short has_pk_analytic_nowiggle
Definition: fourier.h:60
int pk_eq_size
Definition: fourier.h:225
int pk_eq_tau_size
Definition: fourier.h:227
double ** ddln_pk_ic_l
Definition: fourier.h:146
double * tau
Definition: fourier.h:208
double * ddln_pk_l_an_extra
Definition: fourier.h:190
short is_allocated
Definition: fourier.h:243
double ** ddln_pk_l
Definition: fourier.h:161
enum hmcode_version hm_version
Definition: fourier.h:49
int index_pk_eq_w
Definition: fourier.h:223
enum source_extrapolation extrapolation_method
Definition: fourier.h:44
int pk_size
Definition: fourier.h:106
enum non_linear_method method
Definition: fourier.h:42
int ic_ic_size
Definition: fourier.h:84
ErrorMsg error_message
Definition: fourier.h:241
int k_size
Definition: fourier.h:116
int index_pk_eq_Omega_m
Definition: fourier.h:224
double eta_0
Definition: fourier.h:52
double * ddln_pk_l_nw_extra
Definition: fourier.h:199
double z_infinity
Definition: fourier.h:53
int k_size_pk
Definition: fourier.h:117
short has_pk_numerical_nowiggle
Definition: fourier.h:67
int index_pk_total
Definition: fourier.h:101
short has_pk_eq
Definition: fourier.h:55
double ** ln_pk_nl
Definition: fourier.h:163
double * ln_pk_l_an_extra
Definition: fourier.h:186
double ** ln_pk_ic_l
Definition: fourier.h:130
double ** ln_pk_l
Definition: fourier.h:156
short * is_non_zero
Definition: fourier.h:85
double ** k_nl
Definition: fourier.h:212
short has_pk_cb
Definition: fourier.h:94
double log10T_heat_hmcode
Definition: fourier.h:58
int tau_size
Definition: fourier.h:207
double * pk_eq_tau
Definition: fourier.h:229
double * ln_pk_l_nw_extra
Definition: fourier.h:194
int index_pk_cb
Definition: fourier.h:97
int ic_size
Definition: fourier.h:83
double ** ln_pk_l_extra
Definition: fourier.h:180
double * ln_k
Definition: fourier.h:119
short fourier_verbose
Definition: fourier.h:239
double * pk_eq_ddw_and_ddOmega
Definition: fourier.h:231
int ln_tau_size
Definition: fourier.h:127
double * sigma8
Definition: fourier.h:170
short has_pk_matter
Definition: fourier.h:114
double ** ddln_pk_l_extra
Definition: fourier.h:184
int index_pk_cluster
Definition: fourier.h:103
int index_pk_m
Definition: fourier.h:96
double * ln_tau
Definition: fourier.h:121
Definition: perturbations.h:98
linear_or_logarithmic
Definition: primordial.h:21
Definition: primordial.h:79
Definition: background.h:44
Definition: thermodynamics.h:59