coffee
Coronagraph Optimization For Fast Exoplanet Exploration
AOsystSim.h
Go to the documentation of this file.
1 
16 #ifndef _AOSYSTSIM_H
17 #define _AOSYSTSIM_H
18 
19 
20 
21 
22 
23 
28 int init_AOsystSim();
29 
30 
31 
32 
53 int AOsystSim_run(int syncmode, long DMindex, long delayus);
54 
55 
56 
57 
58 
59 
60 /* =============================================================================================== */
61 /* =============================================================================================== */
65 /* =============================================================================================== */
67 /* =============================================================================================== */
68 
69 typedef struct {
70  double alpha;
71  double alpha_ld;
72  double alpha_arcsec;
73  double lambda0; // wavelength at seeing measurement [m]
74  double lambdai; // imaging wavelength (science) [m]
75  double lambdawfs; // WFS wavelength [m]
76 
77  double CN2layer_h[20]; // [m]
78  double CN2layer_coeff[20]; // sum of coeffs = 1
79  double CN2layer_Chrom_disp[20]; // chromatic displacement [m]
80 
81  double D; // telescope aperture [m]
82  double r0; // Fried parameter at lambda0 [m]
83  double windspeed; // [m/s]
84  double betapWFS; // WFS efficiency
85  double betaaWFS; // WFS efficiency
86  double betapWFSsci; // WFS efficiency Sci
87  double betaaWFSsci; // WFS efficiency Sci
88  double Fwfs; // source flux [ph.s-1.m-2]
89  double Fsci;
90 
91  double framedelayMult; // delay in unit of frames
92 
93  double f; // spatial frequency [m^{-1}]
94  double hf; // sine wave component amplitude
95  double X;
96  double Xwfs;
97  double Y;
98  double Ywfs;
99  double dX;
100  double dY;
101 
102  double CP_UOPD; // uncorrected OPD
103  double CP_OPHN; // photon noise error corrected OPD
104  double CP_OTEM; // temporal error corrected OPD
105 
106  double CP_UAMP; // uncorrected AMP
107  double CP_APHN; // photon noise error corrected AMP
108  double CP_ATEM; // temporal error corrected AMP
109 
110  double CC_OMUL;
111  double CC_OPRO;
112  double CC_ORPA;
113 
114  double CC_AMUL;
115  double CC_APRO;
116  double CC_ARPA;
117 
118 
119 
120  double twfs; // WFS effective exposure time for OPD correction
121  double twfs_opt; // optimal WFS exposure time - OPD
122 
123  double twfs_A; // WFS effective exposure time for AMP correction
124  double twfs_Aopt; // optimal WFS exposure time - AMP
125 
126 
127  double twfssci;
128  double hfc; // corrected sine wave component amplitude
129  double twfssci_opt; // optimal WFS exposure time - phase
130  double twfs_opt_amp; // optimal WFS exposure time - amplitude
131  double hfca; // time lag term
132  double hfcb; // WFS photon noise
133  double C2; // quadratic sum of C2a and C2b
134  double C2_wfs; // quadratic sum of C2a and C2b
135  double C3; // corrected amplitude
136  double C4; // chromatic phase
137  double C5; // chromatic amplitude
138  double C6; // refractive index
139  double Csum;
140  double Csum_detection; // 5 sigma
141 
142  // near-IR loop:
143  double RIC_hfca; // Refractive Index Chromaticity : time lag
144  double RIC_hfcb; // Refractive Index Chromaticity : photon noise
145  double RIC_hfc;
146  double TL_hfca; // time lag correction: time lag
147  double TL_hfcb; // time lag correction: photon noise
148  double TL_hfc;
149  double C7; // post-nearIR correction time lag
150  double C8; // post-nearIR correction
151  double C9; // C4 ->
152  double C10; // C5 ->
153  double C11; // post-nearIR correction refractive index
154  double Csum2;
155  double Csum2ave;
156 
157 } EXAOSIMCONF;
158 
170 int AOsystSim_simpleAOfilter(const char *IDin_name, const char *IDout_name);
171 
173 
175 
176 
177 
178 
179 
180 
181 /* =============================================================================================== */
182 /* =============================================================================================== */
186 /* =============================================================================================== */
188 /* =============================================================================================== */
189 
190 
195 long AOsystSim_mkTelPupDM(const char *ID_name, long msize, double xc, double xy, double rin, double rout, double pupPA, double spiderPA, double spideroffset, double spiderthick, double stretchx);
196 
197 
202 long AOsystSim_fitTelPup(const char *ID_name, const char *IDtelpup_name);
203 
205 
206 
207 
208 
209 
210 
211 
212 /* =============================================================================================== */
213 /* =============================================================================================== */
217 /* =============================================================================================== */
219 /* =============================================================================================== */
220 
221 int AOsystSim_mkWF_mkCONF(const char *fname);
222 
223 int AOsystSim_mkWF(const char *CONF_FNAME);
224 
226 
227 
228 
229 
230 
231 
232 
233 /* =============================================================================================== */
234 /* =============================================================================================== */
238 /* =============================================================================================== */
240 /* =============================================================================================== */
241 
242 int AOsystSim_WFSsim_Pyramid(const char *inWFc_name, const char *outWFSim_name, double modampl, long modnbpts);
243 
244 int AOsystSim_runWFS(long index, const char *IDout_name);
245 
246 int AOsystSim_PyrWFS_mkCONF(const char *fname);
247 
248 int AOsystSim_PyrWFS(const char *CONF_FNAME);
249 
251 
252 
253 
254 
255 
256 
257 
258 /* =============================================================================================== */
259 /* =============================================================================================== */
263 /* =============================================================================================== */
265 /* =============================================================================================== */
266 
267 int AOsystSim_DMshape(const char *IDdmctrl_name, const char *IDdmifc_name, const char *IDdm_name);
268 
269 int AOsystSim_DM_mkCONF(const char *fname);
270 
271 int AOsystSim_DM(const char *CONF_FNAME);
272 
273 
275 
276 
277 
278 
279 
280 /* =============================================================================================== */
281 /* =============================================================================================== */
285 /* =============================================================================================== */
287 /* =============================================================================================== */
288 
289 int AOsystSim_coroLOWFS(const char *CONF_FNAME);
290 
292 
293 
294 
295 
296 
297 
298 
299 
300 /* =============================================================================================== */
301 /* =============================================================================================== */
305 /* =============================================================================================== */
307 /* =============================================================================================== */
308 
309 long AOsystSim_FPWFS_imsimul(double probeamp, double sepx, double sepy, double contrast, double wferramp, double totFlux, double DMgainErr, double RON, double CnoiseFloor);
310 
311 int AOsystSim_FPWFS_mkprobes(const char *IDprobeA_name, const char *IDprobeB_name, long dmxsize, long dmysize, double CPAmax, double CPArmin, double CPArmax, double RMSampl, long modegeom);
312 
313 int AOsystSim_FPWFS_sensitivityAnalysis(int mapmode, int mode, int optmode, int NBprobes);
314 
316 
317 
318 
319 
320 
321 
322 
323 
324 
325 
326 
327 
328 #endif
double C11
Definition: AOsystSim.h:153
double C2
Definition: AOsystSim.h:133
double twfssci_opt
Definition: AOsystSim.h:129
double CC_ARPA
Definition: AOsystSim.h:116
double alpha_arcsec
Definition: AOsystSim.h:72
double Y
Definition: AOsystSim.h:97
long AOsystSim_fitTelPup(const char *ID_name, const char *IDtelpup_name)
Fit measured DM response to telescope pupil.
Definition: AOsystSim.c:1639
double CC_AMUL
Definition: AOsystSim.h:114
double alpha
Definition: AOsystSim.h:70
double Csum_detection
Definition: AOsystSim.h:140
int init_AOsystSim()
Module initialization.
Definition: AOsystSim.c:181
double windspeed
Definition: AOsystSim.h:83
double lambda0
Definition: AOsystSim.h:73
int AOsystSim_PyrWFS(const char *CONF_FNAME)
Definition: AOsystSim.c:3051
double TL_hfca
Definition: AOsystSim.h:146
double CC_OMUL
Definition: AOsystSim.h:110
double TL_hfcb
Definition: AOsystSim.h:147
double dY
Definition: AOsystSim.h:100
double RIC_hfc
Definition: AOsystSim.h:145
int AOsystSim_coroLOWFS(const char *CONF_FNAME)
Definition: AOsystSim.c:4037
double C4
Definition: AOsystSim.h:136
double betaaWFS
Definition: AOsystSim.h:85
double CP_OTEM
Definition: AOsystSim.h:104
int AOsystSim_DM(const char *CONF_FNAME)
Definition: AOsystSim.c:3597
double twfs_opt_amp
Definition: AOsystSim.h:130
double betaaWFSsci
Definition: AOsystSim.h:87
long AOsystSim_FPWFS_imsimul(double probeamp, double sepx, double sepy, double contrast, double wferramp, double totFlux, double DMgainErr, double RON, double CnoiseFloor)
Definition: AOsystSim.c:4605
double C5
Definition: AOsystSim.h:137
double RIC_hfca
Definition: AOsystSim.h:143
double betapWFSsci
Definition: AOsystSim.h:86
double f
Definition: AOsystSim.h:93
long AOsystSim_mkTelPupDM(const char *ID_name, long msize, double xc, double xy, double rin, double rout, double pupPA, double spiderPA, double spideroffset, double spiderthick, double stretchx)
Make telescope pupil.
Definition: AOsystSim.c:1511
double CP_ATEM
Definition: AOsystSim.h:108
double Xwfs
Definition: AOsystSim.h:96
double CC_OPRO
Definition: AOsystSim.h:111
double D
Definition: AOsystSim.h:81
double Csum2ave
Definition: AOsystSim.h:155
double twfs_Aopt
Definition: AOsystSim.h:124
int AOsystSim_WFSsim_Pyramid(const char *inWFc_name, const char *outWFSim_name, double modampl, long modnbpts)
Definition: AOsystSim.c:2783
double hfca
Definition: AOsystSim.h:131
double X
Definition: AOsystSim.h:95
double alpha_ld
Definition: AOsystSim.h:71
int AOsystSim_simpleAOfilter(const char *IDin_name, const char *IDout_name)
simple AO filtering model using Fourier analysis simulates WFS integration, delay, noise (as a function of spatial frequency)
Definition: AOsystSim.c:747
int AOsystSim_PyrWFS_mkCONF(const char *fname)
Definition: AOsystSim.c:3004
int AOsystSim_FPWFS_sensitivityAnalysis(int mapmode, int mode, int optmode, int NBprobes)
Definition: AOsystSim.c:5149
double hfc
Definition: AOsystSim.h:128
double C10
Definition: AOsystSim.h:152
int_fast8_t AOsystSim_extremeAO_contrast_sim()
Definition: AOsystSim.c:996
double Ywfs
Definition: AOsystSim.h:98
double C9
Definition: AOsystSim.h:151
double CP_UOPD
Definition: AOsystSim.h:102
double CC_APRO
Definition: AOsystSim.h:115
double Csum2
Definition: AOsystSim.h:154
int AOsystSim_mkWF(const char *CONF_FNAME)
Definition: AOsystSim.c:1975
double hf
Definition: AOsystSim.h:94
double CP_APHN
Definition: AOsystSim.h:107
double framedelayMult
Definition: AOsystSim.h:91
double r0
Definition: AOsystSim.h:82
double twfssci
Definition: AOsystSim.h:127
double C6
Definition: AOsystSim.h:138
int AOsystSim_runWFS(long index, const char *IDout_name)
Definition: AOsystSim.c:2968
double RIC_hfcb
Definition: AOsystSim.h:144
double twfs_A
Definition: AOsystSim.h:123
double C3
Definition: AOsystSim.h:135
double dX
Definition: AOsystSim.h:99
double C2_wfs
Definition: AOsystSim.h:134
double CP_OPHN
Definition: AOsystSim.h:103
double C7
Definition: AOsystSim.h:149
int AOsystSim_run(int syncmode, long DMindex, long delayus)
Run AO system simulation.
Definition: AOsystSim.c:304
int AOsystSim_FPWFS_mkprobes(const char *IDprobeA_name, const char *IDprobeB_name, long dmxsize, long dmysize, double CPAmax, double CPArmin, double CPArmax, double RMSampl, long modegeom)
Definition: AOsystSim.c:4937
double hfcb
Definition: AOsystSim.h:132
int AOsystSim_DM_mkCONF(const char *fname)
Definition: AOsystSim.c:3558
double C8
Definition: AOsystSim.h:150
int AOsystSim_mkWF_mkCONF(const char *fname)
Definition: AOsystSim.c:1915
double CP_UAMP
Definition: AOsystSim.h:106
double twfs_opt
Definition: AOsystSim.h:121
double twfs
Definition: AOsystSim.h:120
double CC_ORPA
Definition: AOsystSim.h:112
double lambdai
Definition: AOsystSim.h:74
double TL_hfc
Definition: AOsystSim.h:148
double Fwfs
Definition: AOsystSim.h:88
double lambdawfs
Definition: AOsystSim.h:75
double Csum
Definition: AOsystSim.h:139
double betapWFS
Definition: AOsystSim.h:84
Definition: AOsystSim.h:69
double Fsci
Definition: AOsystSim.h:89
int AOsystSim_DMshape(const char *IDdmctrl_name, const char *IDdmifc_name, const char *IDdm_name)
DM control signals to DMshape.
Definition: AOsystSim.c:3445