forked from miguelzuma/hi_class_public
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hi_class.ini
195 lines (149 loc) · 9.08 KB
/
hi_class.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
* hi_class input parameter file *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
> This example of input file lists all the new parameters implemented in hi_class
> with detailed comments. The idea here is that the parameters used also in CLASS
> are usually not reported, i.e. they assume their standard value. For a complete
> list of these parameters look at the "explanatory.ini" file.
> All the quantities related to the scalar field introduced in hi_class have been
> marked with the "_smg" label (scalar modified gravity).
> Only lines containing an equal sign not preceded by a sharp sign "#" are
> considered by the code. Hence, do not write an equal sign within a comment,
> the whole line would be interpreted as relevant input. Input files must have
> an extension ".ini".
> If you use the code in a publication please cite the original CLASS paper together with
> "hi_class: Horndeski in the Cosmic Linear Anisotropy Solving System"
> M. Zumalacarregui, E. Bellini, I. Sawicki, J, Lesgourgues
----------------------------
----> background parameters:
----------------------------
1a) Omega_smg is the fractional density of the scalar field today. There are three possibilities
i) Omega_smg unspecified or equivalently set to 0. In this case the code will
ignore the scalar field equations and will use the standard CLASS equations
ii) Omega_smg has a value larger than 0 but smaller than 1. In this case you should
leave either Omega_Lambda or Omega_fld unspecified. Then, hi_class will run
with the scalar field equations, and Omega_Lambda or Omega_fld will be inferred
using the closure equation (sum_i Omega_i) equals (1 + Omega_k)
iii) Omega_smg has a negqative value. In this case the equations for the scalar field
will be used, you have to specify both Omega_Lambda and Omega_fld, and Omega_smg will
be inferred by the code using the closure equation
Omega_Lambda = 0 # fractional density of the cosmological constant today
Omega_fld = 0 # fractional density of a perfect fluid today, see the "explanatory.ini" file for details on this fluid
Omega_smg = -1 # fractional density of the DE field today. If it is specified to a given value, then need to comment Omega_Lambda or Omega_fld
1b) For debugging purposes one can specify Omega_smg_debug AND unspecify Omega_smg,fld,Lambda.
In this case the closure equation is not satisfied in general
# Omega_smg_debug = 0.
1c) There are two possible expansion histories of the universe currently implemented
i) "lcdm": fixes the expansion history to be the one predicted by a cosmological constant
ii) "wowa": introduces a fluid with equation of state p/rho equal to w0+wa(1-a/a0)
This information is stored in the "expansion_model" variable. After specifying it, you have
to provide the values for the parameters to fully specify the parametrization you chose. These
are stored in the vector "expansion_smg"
i) "lcdm" -> Omega_smg (default)
ii) "wowa" -> Omega_smg, w0, wa
expansion_model = lcdm
expansion_smg = 0.5 #this value will be overwritten using the closure equation. See below
# expansion_model = wowa
# expansion_smg = 0.5, -1., 0.
1c) Given a vector containing the values of the parameters needed to fully fix the background
evolution you chose, you should specify which parameter you want to vary to satisfy the
closure equation (tuning_index_smg, default: 0) and your initial guess on how much you want
to vary it (tuning_dxdy_guess_smg, default: 1)
# tuning_index_smg = 0
# tuning_dxdy_guess_smg = 1.
------------------------------
----> gravity parameters:
------------------------------
2a) The theory of gravity is described by the alpha functions at the linear level.
There are four possible parametrizations of the alpha functions currently implemented
i) "propto_omega": all the alphas are proportional to the fractional density of the Dark
Energy fluid at the background. Then, you have to provide a vector containg the
factor of proportionality of each alpha and the initial value of the Planck Mass
ii) "propto_scale": all the alphas are proportional to the scale factor. Then, you have
to provide a vector containg the factor of proportionality of each alpha and the
initial value of the Planck Mass
iii) "eft_alphas_power_law": delta_M, alpha_{K, B, T} are proportional to the scale factor to
some power. Then, you have to provide a vector containg eight parameters, the four
proportionality constants and the four exponents of the scale factor. This generalize
the "propto_scale" parametrization with the remarkable exception that in that case
alpha_M was proportional to the scale factor, while here it is the Planck mass that
scales with the scale factor
iv) "eft_gammas_power_law": this parametrization uses the basis of the eft framework
(Omega, gamma_i) and assumes that they are power laws of the scale factor
(g1_0*pow(a,g1_exp)). You have to provide a vector containing eight parameters,
the four proportionality constants and the four exponents of the scale factor
v) "eft_gammas_exponential": this parametrization uses the basis of the eft framework
(Omega, gamma_i) and assumes that they are exponentials in the scale factor. In a
schematic way it reads: exp(gi_0*pow(a,gi_exp))-1. You have to provide a vector
containing eight parameters, the four proportionality constants and the four
exponents of the scale factor
The parametrization you want to used is stored in the variable "gravity_model", while the
value of the parameters is stored in the vector "parameters_smg"
i) "propto_omega" -> x_k, x_b, x_m, x_t, M*^2_ini (default)
ii) "propto_scale" -> x_k, x_b, x_m, x_t, M*^2_ini
iii) "eft_alphas_power_law" -> delta_M_0, x_k, x_b, x_t, delta_M_0_exp, x_k_exp, x_b_exp, x_t_exp
iv) "eft_gammas_power_law" -> Om_0, g_1, g_2, g_3, Om_0_exp, g_1_exp, g_2_exp, g_3_exp
v) "eft_gammas_exponential" -> Om_0, g_1, g_2, g_3, Om_0_exp, g_1_exp, g_2_exp, g_3_exp
gravity_model = propto_omega
parameters_smg = 1., 0., 0., 0., 1.
2b) There are two possible initial conditions for the perturbations of the scalar field
i) "single_clock": single_clock IC given with respect to photons (default)
ii) "zero": set the initial value of the scalar field and its first derivative to 0
pert_initial_conditions_smg = single_clock
---------------------------
----> stability parameters:
---------------------------
3a) The absence of ghost and gradient instabilities is tested in the code for both scalars
and tensors. It is possible to avoid these tests altoghether by changing
skip_stability_tests_smg = no # default: no
3b) If skip_stability_tests_smg is set to no, it is possible to relax the stability conditions
to accept slightly negative values (moslty to avoid numerical noise around 0).
Indeed, the code internally verify that the following conditions are satisfied at all times
(all default values are zero)
i) cs2_smg > - abs(cs2_safe_smg). Sound speed of the scalar sector
ii) ct2_smg > - abs(ct2_safe_smg). Sound speed of the tensor sector
iii) D_smg > - abs(D_safe_smg). Kinetic term of the scalar sector
iv) M2_smg > - abs(M2_safe_smg). Kinetic term of the tensor sector
cs2_safe_smg = 0.
D_safe_smg = 0.
ct2_safe_smg = 0.
M2_safe_smg = 0.
---------------------------
----> precision parameters:
---------------------------
4a) Sometimes the evolution of the perturbations is slown down due to the presence of rapid
oscillations of the scalar field at early times. We noticed that it is possible to speed
up the code by artificially adding a constant value to the kineticity. This should not
affect observable scales, but you use it at your own risk! (default: 0.)
# kineticity_safe_smg = 1e-4
4b) When studying early dark energy models, sometimes the code complaints if radiation is
not sufficiently dominant at early times. Then, you can try to modify the CLASS precision
parameter tol_initial_Omega_r (default: 1.e-4)
# tol_initial_Omega_r = 1.e-4
4c) We noticed that some precision parameter of CLASS has to be modified to get precise enough
results in hi_class. We then changed their default values in "source/input.c". These are
start_small_k_at_tau_c_over_tau_h = 1e-4
start_large_k_at_tau_h_over_tau_k = 1e-4
perturb_sampling_stepsize = 0.05
l_logstep = 1.045
l_linstep = 50
--------------------------------
----> standard CLASS parameters:
--------------------------------
5) Here we report for completeness some parameters that are present in CLASS, see explanatory.ini
for details.
5a) list of output spectra requested
output = tCl,pCl,lCl,mPk
5b) file name root 'root' for all output files
root = output/test_
5c) Do you want to write a file with the input parameters you used? Do you want to write a table
of background quantitites in a file?
write parameters = yeap
write background = yeah
5d) Verbose parameters
input_verbose = 1
background_verbose = 1
output_verbose = 1
thermodynamics_verbose = 1
perturbations_verbose = 1
spectra_verbose = 1