8 #include "../global/global.h"
44 real_vector_t scale_outputs;
62 float *phase_diagram_global;
67 int Computed_Flux_Power_Spectrum;
69 int n_skewers_local_x;
70 int n_skewers_local_y;
71 int n_skewers_local_z;
72 int n_skewers_total_x;
73 int n_skewers_total_y;
74 int n_skewers_total_z;
76 int n_skewers_processed_root_x;
77 int n_skewers_processed_root_y;
78 int n_skewers_processed_root_z;
80 int n_skewers_processed_x;
81 int n_skewers_processed_y;
82 int n_skewers_processed_z;
84 int skewers_direction;
91 Real *skewers_HI_density_local_x;
92 Real *skewers_HI_density_local_y;
93 Real *skewers_HI_density_local_z;
95 Real *skewers_HeII_density_local_x;
96 Real *skewers_HeII_density_local_y;
97 Real *skewers_HeII_density_local_z;
99 Real *skewers_velocity_local_x;
100 Real *skewers_velocity_local_y;
101 Real *skewers_velocity_local_z;
103 Real *skewers_temperature_local_x;
104 Real *skewers_temperature_local_y;
105 Real *skewers_temperature_local_z;
107 Real *skewers_HI_density_root_x;
108 Real *skewers_HI_density_root_y;
109 Real *skewers_HI_density_root_z;
111 Real *skewers_HeII_density_root_x;
112 Real *skewers_HeII_density_root_y;
113 Real *skewers_HeII_density_root_z;
115 Real *skewers_velocity_root_x;
116 Real *skewers_velocity_root_y;
117 Real *skewers_velocity_root_z;
119 Real *skewers_temperature_root_x;
120 Real *skewers_temperature_root_y;
121 Real *skewers_temperature_root_z;
123 Real *full_HI_density_x;
124 Real *full_HI_density_y;
125 Real *full_HI_density_z;
127 Real *full_HeII_density_x;
128 Real *full_HeII_density_y;
129 Real *full_HeII_density_z;
131 Real *full_velocity_x;
132 Real *full_velocity_y;
133 Real *full_velocity_z;
135 Real *full_temperature_x;
136 Real *full_temperature_y;
137 Real *full_temperature_z;
139 Real *full_optical_depth_HI_x;
140 Real *full_optical_depth_HI_y;
141 Real *full_optical_depth_HI_z;
143 Real *full_optical_depth_HeII_x;
144 Real *full_optical_depth_HeII_y;
145 Real *full_optical_depth_HeII_z;
147 Real *full_vel_Hubble_x;
148 Real *full_vel_Hubble_y;
149 Real *full_vel_Hubble_z;
151 Real *skewers_transmitted_flux_HI_x;
152 Real *skewers_transmitted_flux_HI_y;
153 Real *skewers_transmitted_flux_HI_z;
155 Real *skewers_transmitted_flux_HeII_x;
156 Real *skewers_transmitted_flux_HeII_y;
157 Real *skewers_transmitted_flux_HeII_z;
159 #ifdef OUTPUT_SKEWERS
161 Real *skewers_density_local_x;
162 Real *skewers_density_local_y;
163 Real *skewers_density_local_z;
165 Real *skewers_density_root_x;
166 Real *skewers_density_root_y;
167 Real *skewers_density_root_z;
169 Real *skewers_density_x_global;
170 Real *skewers_density_y_global;
171 Real *skewers_density_z_global;
173 Real *skewers_HI_density_x_global;
174 Real *skewers_HI_density_y_global;
175 Real *skewers_HI_density_z_global;
177 Real *skewers_HeII_density_x_global;
178 Real *skewers_HeII_density_y_global;
179 Real *skewers_HeII_density_z_global;
181 Real *skewers_temperature_x_global;
182 Real *skewers_temperature_y_global;
183 Real *skewers_temperature_z_global;
185 Real *skewers_los_velocity_x_global;
186 Real *skewers_los_velocity_y_global;
187 Real *skewers_los_velocity_z_global;
189 Real *skewers_transmitted_flux_HI_x_global;
190 Real *skewers_transmitted_flux_HI_y_global;
191 Real *skewers_transmitted_flux_HI_z_global;
193 Real *skewers_transmitted_flux_HeII_x_global;
194 Real *skewers_transmitted_flux_HeII_y_global;
195 Real *skewers_transmitted_flux_HeII_z_global;
197 Real *transfer_buffer_root_x;
198 Real *transfer_buffer_root_y;
199 Real *transfer_buffer_root_z;
202 Real Flux_mean_root_HI_x;
203 Real Flux_mean_root_HI_y;
204 Real Flux_mean_root_HI_z;
206 Real Flux_mean_root_HeII_x;
207 Real Flux_mean_root_HeII_y;
208 Real Flux_mean_root_HeII_z;
214 Real Flux_mean_HeII_x;
215 Real Flux_mean_HeII_y;
216 Real Flux_mean_HeII_z;
221 int n_skewers_processed;
236 int n_PS_processed_x;
237 int n_PS_processed_y;
238 int n_PS_processed_z;
248 fftw_complex *fft_delta_F_x;
249 fftw_complex *fft_delta_F_y;
250 fftw_complex *fft_delta_F_z;
251 Real *fft2_delta_F_x;
252 Real *fft2_delta_F_y;
253 Real *fft2_delta_F_z;
257 fftw_plan fftw_plan_x;
258 fftw_plan fftw_plan_y;
259 fftw_plan fftw_plan_z;
260 Real *hist_k_edges_x;
261 Real *hist_k_edges_y;
262 Real *hist_k_edges_z;
283 Real *mpi_domain_boundary_x;
284 Real *mpi_domain_boundary_y;
285 Real *mpi_domain_boundary_z;
286 vector<int> mpi_indices_x;
287 vector<int> mpi_indices_y;
288 vector<int> mpi_indices_z;
293 AnalysisModule(
void);
294 void Initialize(Real Lx, Real Ly, Real Lz, Real x_min, Real y_min, Real z_min,
int nx,
int ny,
int nz,
int nx_real,
295 int ny_real,
int nz_real, Real dx_real, Real dy_real, Real dz_real,
int n_ghost_hydro, Real z_now,
299 void Load_Scale_Outputs(
struct Parameters *P);
300 void Set_Next_Scale_Output();
303 void Initialize_Phase_Diagram(
struct Parameters *P);
306 #ifdef LYA_STATISTICS
307 void Initialize_Lya_Statistics(
struct Parameters *P);
308 void Initialize_Lya_Statistics_Measurements(
int axis);
309 void Transfer_Skewers_Data(
int axis);
310 void Compute_Lya_Mean_Flux_Skewer(
int skewer_id,
int axis);
311 void Reduce_Lya_Mean_Flux_Axis(
int axis);
312 void Reduce_Lya_Mean_Flux_Global();
313 void Clear_Power_Spectrum_Measurements(
void);
314 void Reduce_Power_Spectrum_Axis(
int axis);
315 void Reduce_Power_Spectrum_Global();
316 void Transfer_Skewers_Global_Axis(
int axis);