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  int use_rad_trans; /**< Enable radiative transfer cascade.*/
30 };
31 
32 struct Instrument
33 {
34  int nf_ch; /**< Number of elements in freqs.*/
35  float *f_ch; /**< Array with filter frequencies.*/
36  float f_sample; /**< Readout frequency of instrument in Hertz.*/
37  float *transmission; /**< Array with transmission matrix, flattened along sky frequency axis.*/
38  float delta; /**< Superconducting bandgap energy in Joules.*/
39  float eta_pb; /**< Pair breaking efficiency of superconductor.*/
40  float *az_fpa; /**< Array with azimuth pointings for FPA.*/
41  float *el_fpa; /**< Array with elevation pointings for FPA.*/
42  int num_spax;
43  int use_photon_noise;
44  int use_pink;
45  float *pink_level;
46  float *pink_alpha;
47 };
48 
49 struct Telescope
50 {
51  float *eta_illum; /**< Array of illumination efficiencies.*/
52  float *eta_ap; /**< Array of aperture efficiencies.*/
53  float *az_scan; /**< Azimuth co-ordinates of scan strategy for simulation.*/
54  float *el_scan; /**< Elevation co-ordinates of scan strategy for simulation.*/
55  float *az_scan_center; /**< Azimuth center co-ordinates of scan strategy for simulation.*/
56  float *el_scan_center; /**< Elevation center co-ordinates of scan strategy for simulation.*/
57 };
58 
59 
60 struct Atmosphere
61 {
62  float T_atm; /**< floatemperature of atmosphere in Kelvin.*/
63  float v_wind; /**< Max windspeed in meters per second.*/
64  float h_column; /**< Reference column height of atmosphere, in meters.*/
65  float dx; /**< Gridsize along x axis in meters.*/
66  float dy; /**< Gridsize along y axis in meters.*/
67  char* path; /**< Path to prepd folder.*/
68  float pwv0; /**< Average PWV at start of simulation.*/
69  float pwv_slope; /**< Linear slope of average PWV.*/
70 };
71 
72 
73 struct Source
74 {
75  struct ArrSpec az_src_spec;
76  struct ArrSpec el_src_spec;
77  struct ArrSpec f_spec;
78 
79  float *I_nu; /**< Flat array of specific intensities.*/
80  int nI_nu; /**< Number of source intensities.*/
81 };
82 
83 #endif
Cascade
Definition: structs.h:23
Atmosphere::pwv_slope
float pwv_slope
Definition: structs.h:69
Cascade::psd_cascade
float * psd_cascade
Definition: structs.h:26
Atmosphere::pwv0
float pwv0
Definition: structs.h:68
Instrument::el_fpa
float * el_fpa
Definition: structs.h:41
Telescope::el_scan_center
float * el_scan_center
Definition: structs.h:56
Instrument::eta_pb
float eta_pb
Definition: structs.h:39
Instrument::nf_ch
int nf_ch
Definition: structs.h:34
Cascade::eta_cascade
float * eta_cascade
Definition: structs.h:25
Source::nI_nu
int nI_nu
Definition: structs.h:80
ArrSpec
Definition: structs.h:16
Cascade::num_stage
int num_stage
Definition: structs.h:28
Atmosphere::dx
float dx
Definition: structs.h:65
Instrument::f_sample
float f_sample
Definition: structs.h:36
Atmosphere::path
char * path
Definition: structs.h:67
Atmosphere
Definition: structs.h:60
Telescope::az_scan_center
float * az_scan_center
Definition: structs.h:55
Telescope::eta_illum
float * eta_illum
Definition: structs.h:51
Atmosphere::dy
float dy
Definition: structs.h:66
Instrument::delta
float delta
Definition: structs.h:38
Instrument::transmission
float * transmission
Definition: structs.h:37
Telescope::eta_ap
float * eta_ap
Definition: structs.h:52
Instrument::az_fpa
float * az_fpa
Definition: structs.h:40
Atmosphere::h_column
float h_column
Definition: structs.h:64
Instrument::f_ch
float * f_ch
Definition: structs.h:35
Atmosphere::v_wind
float v_wind
Definition: structs.h:63
Source::I_nu
float * I_nu
Definition: structs.h:79
Telescope::el_scan
float * el_scan
Definition: structs.h:54
Cascade::use_rad_trans
int use_rad_trans
Definition: structs.h:29
Cascade::psd_cmb
float * psd_cmb
Definition: structs.h:27
Telescope
Definition: structs.h:49
Instrument
Definition: structs.h:32
Telescope::az_scan
float * az_scan
Definition: structs.h:53
Atmosphere::T_atm
float T_atm
Definition: structs.h:62
Source
Definition: structs.h:73