Gateau User Manual
Atmospheric simulation of astronomical signals
structs.h
Go to the documentation of this file.
1 /*!
2  * \file
3  * \brief Data structures for receiving data from Python interface.
4  **/
5 
6 #ifndef __STRUCTS_h
7 #define __STRUCTS_h
8 
9 struct Instrument;
10 struct Telescope;
11 struct atmosphere;
12 struct Source;
13 struct Cascade;
14 struct ArrSpec;
15 
16 struct ArrSpec
17 {
18  float start;
19  float step;
20  int num;
21 };
22 
23 struct Cascade
24 {
25  float *eta_cascade; /**< Efficiency terms associated with each stage of this cascade.*/
26  float *psd_cascade; /**< Power spectral density of each parasitic source of this cascade.*/
27  float *psd_cmb; /**< Power spectral density of each parasitic source of this cascade.*/
28  int num_stage; /**< Number of (grouped) stages in cascade.*/
29 };
30 
31 struct Instrument
32 {
33  int nf_ch; /**< Number of elements in freqs.*/
34  float *f_ch; /**< Array with filter frequencies.*/
35  float f_sample; /**< Readout frequency of instrument in Hertz.*/
36  float *filterbank; /**< Array with filterbank matrix, flattened.*/
37  float delta; /**< Superconducting bandgap energy in Joules.*/
38  float eta_pb; /**< Pair breaking efficiency of superconductor.*/
39  float *az_fpa; /**< Array with azimuth pointings for FPA.*/
40  float *el_fpa; /**< Array with elevation pointings for FPA.*/
41  int num_spax;
42  int use_onef;
43  float *onef_level;
44  float *onef_conv;
45  float *onef_alpha;
46 };
47 
48 struct Telescope
49 {
50  float *eta_illum; /**< Array of aperture efficiencies.*/
51  float *az_scan; /**< Azimuth co-ordinates of scan strategy for simulation.*/
52  float *el_scan; /**< Elevation co-ordinates of scan strategy for simulation.*/
53  float *az_scan_center; /**< Azimuth center co-ordinates of scan strategy for simulation.*/
54  float *el_scan_center; /**< Elevation center co-ordinates of scan strategy for simulation.*/
55 };
56 
57 
58 struct Atmosphere
59 {
60  float T_atm; /**< floatemperature of atmosphere in Kelvin.*/
61  float v_wind; /**< Max windspeed in meters per second.*/
62  float h_column; /**< Reference column height of atmosphere, in meters.*/
63  float dx; /**< Gridsize along x axis in meters.*/
64  float dy; /**< Gridsize along y axis in meters.*/
65  char* path; /**< Path to prepd folder.*/
66  float pwv0; /**< Average PWV at start of simulation.*/
67  float pwv_slope; /**< Linear slope of average PWV.*/
68 };
69 
70 
71 struct Source
72 {
73  struct ArrSpec az_src_spec;
74  struct ArrSpec el_src_spec;
75  struct ArrSpec f_spec;
76 
77  float *I_nu; /**< Flat array of specific intensities.*/
78  int nI_nu; /**< Number of source intensities.*/
79 };
80 
81 #endif
Cascade
Definition: structs.h:23
Atmosphere::pwv_slope
float pwv_slope
Definition: structs.h:67
Cascade::psd_cascade
float * psd_cascade
Definition: structs.h:26
Atmosphere::pwv0
float pwv0
Definition: structs.h:66
Instrument::el_fpa
float * el_fpa
Definition: structs.h:40
Telescope::el_scan_center
float * el_scan_center
Definition: structs.h:54
Instrument::eta_pb
float eta_pb
Definition: structs.h:38
Instrument::nf_ch
int nf_ch
Definition: structs.h:33
Cascade::eta_cascade
float * eta_cascade
Definition: structs.h:25
Source::nI_nu
int nI_nu
Definition: structs.h:78
ArrSpec
Definition: structs.h:16
Cascade::num_stage
int num_stage
Definition: structs.h:28
Atmosphere::dx
float dx
Definition: structs.h:63
Instrument::f_sample
float f_sample
Definition: structs.h:35
Atmosphere::path
char * path
Definition: structs.h:65
Atmosphere
Definition: structs.h:58
Telescope::az_scan_center
float * az_scan_center
Definition: structs.h:53
Telescope::eta_illum
float * eta_illum
Definition: structs.h:50
Atmosphere::dy
float dy
Definition: structs.h:64
Instrument::delta
float delta
Definition: structs.h:37
Instrument::filterbank
float * filterbank
Definition: structs.h:36
Instrument::az_fpa
float * az_fpa
Definition: structs.h:39
Atmosphere::h_column
float h_column
Definition: structs.h:62
Instrument::f_ch
float * f_ch
Definition: structs.h:34
Atmosphere::v_wind
float v_wind
Definition: structs.h:61
Source::I_nu
float * I_nu
Definition: structs.h:77
Telescope::el_scan
float * el_scan
Definition: structs.h:52
Cascade::psd_cmb
float * psd_cmb
Definition: structs.h:27
Telescope
Definition: structs.h:48
Instrument
Definition: structs.h:31
Telescope::az_scan
float * az_scan
Definition: structs.h:51
Atmosphere::T_atm
float T_atm
Definition: structs.h:60
Source
Definition: structs.h:71