CLASSpp Manual
Cosmology reference and developer manual
Loading...
Searching...
No Matches
primordial_module.h
1#ifndef PRIMORDIAL_MODULE_H
2#define PRIMORDIAL_MODULE_H
3
4#include "base_module.h"
5#include "input_module.h"
6#include "perturbations_module.h"
7
8class PrimordialModule : public BaseModule {
9 public:
10 PrimordialModule(InputModulePtr input_module, PerturbationsModulePtr perturbation_module);
11 ~PrimordialModule();
12
13 void primordial_spectrum_at_k(int index_md,
14 enum linear_or_logarithmic mode,
15 double k,
16 double* pk) const;
17 void primordial_output_titles(std::string& titles) const;
18 void primordial_output_data(int number_of_titles, double* data) const;
19
20 std::vector<int>
21 ic_size_;
22 std::vector<int>
23 ic_ic_size_;
24 std::vector<std::vector<short>>
25 is_non_zero_;
29 int lnk_size_;
33 double phi_pivot_;
37 double phi_min_;
38 double phi_max_;
39 double phi_stop_;
41 double A_s_;
42 double n_s_;
43 double alpha_s_;
44 double beta_s_;
45 double r_;
46 double n_t_;
47 double alpha_t_;
48
49 private:
50 void primordial_init();
51 void primordial_indices();
52 void primordial_get_lnk_list(double kmin, double kmax, double k_per_decade);
53 void primordial_analytic_spectrum_init();
54 void primordial_analytic_spectrum(int index_md, int index_ic1_ic2, double k, double* pk) const;
55 void primordial_inflation_potential(double phi, double* V, double* dV, double* ddV) const;
56 void primordial_inflation_hubble(
57 double phi, double* H, double* dH, double* ddH, double* dddH) const;
58 void primordial_inflation_indices();
59 void primordial_inflation_solve_inflation();
60 void primordial_inflation_analytic_spectra(double* y_ini);
61 void primordial_inflation_spectra(double* y_ini);
62 void primordial_inflation_one_wavenumber(double* y_ini, int index_k);
63 void primordial_inflation_one_k(
64 double k, double* y, double* dy, double* curvature, double* tensor);
65 void primordial_inflation_find_attractor(
66 double phi_0, double precision, double* y, double* dy, double* H_0, double* dphidt_0);
67 void primordial_inflation_evolve_background(double* y,
68 double* dy,
69 enum target_quantity target,
70 double stop,
71 bool check_epsilon,
72 enum integration_direction direction,
73 enum time_definition time);
74 void primordial_inflation_check_potential(double phi, double* V, double* dV, double* ddV);
75 void primordial_inflation_check_hubble(
76 double phi, double* H, double* dH, double* ddH, double* dddH);
77 void primordial_inflation_get_epsilon(double phi, double* epsilon);
78 void primordial_inflation_find_phi_pivot(double* y, double* dy);
79 void primordial_inflation_derivs_member(double tau,
80 double* y,
81 double* dy,
82 void* parameters_and_workspace) const;
83 static void primordial_inflation_derivs(double tau,
84 double* y,
85 double* dy,
86 void* parameters_and_workspace);
87 void primordial_external_spectrum_init();
88
89 PerturbationsModulePtr perturbations_module_;
90
94 int md_size_;
95 std::vector<double> lnk_;
96 std::vector<std::vector<double>>
97 lnpk_;
110 std::vector<std::vector<double>>
111 ddlnpk_;
122
124
125 std::vector<std::vector<double>>
126 amplitude_;
127 std::vector<std::vector<double>>
128 tilt_;
129 std::vector<std::vector<double>>
130 running_;
132
134
136 int index_in_a_;
137 int index_in_phi_;
138 int index_in_dphi_;
139 int index_in_ksi_re_;
140 int index_in_ksi_im_;
141 int index_in_dksi_re_;
142 int index_in_dksi_im_;
143 int index_in_ah_re_;
144 int index_in_ah_im_;
145 int index_in_dah_re_;
146 int index_in_dah_im_;
147 int in_bg_size_;
148 int in_size_;
150};
151
152#endif //PRIMORDIAL_MODULE_H
target_quantity
Definition primordial.h:31
time_definition
Definition primordial.h:39
linear_or_logarithmic
Definition primordial.h:23
integration_direction
Definition primordial.h:35
Definition precision.h:63