AdaptiveOpticsControl
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 
80  double D; // telescope aperture [m]
81  double r0; // Fried parameter at lambda0 [m]
82  double windspeed; // [m/s]
83  double betapWFS; // WFS efficiency
84  double betaaWFS; // WFS efficiency
85  double betapWFSsci; // WFS efficiency Sci
86  double betaaWFSsci; // WFS efficiency Sci
87  double Fwfs; // source flux [ph.s-1.m-2]
88  double Fsci;
89 
90  double framedelay; // delay in unit of frames
91 
92  double f_wfs; // spatial frequency
93  double f_0; // spatial frequency
94  double f; // spatial frequency
95  double hf; // sine wave component amplitude
96  double X;
97  double Y;
98  double dX;
99  double dY;
100  double C0;
101  double C1;
102  double twfs;
103  double twfssci;
104  double hfc; // corrected sine wave component amplitude
105  double twfs_opt; // optimal WFS exposure time - phase
106  double twfssci_opt; // optimal WFS exposure time - phase
107  double twfs_opt_amp; // optimal WFS exposure time - amplitude
108  double hfca; // time lag term
109  double hfcb; // WFS photon noise
110  double C2; // quadratic sum of C2a and C2b
111  double C2_wfs; // quadratic sum of C2a and C2b
112  double C3; // corrected amplitude
113  double C4; // chromatic phase
114  double C5; // chromatic amplitude
115  double C6; // refractive index
116  double Csum;
117  double Csum_detection; // 5 sigma
118 
119  // near-IR loop:
120  double RIC_hfca; // Refractive Index Chromaticity : time lag
121  double RIC_hfcb; // Refractive Index Chromaticity : photon noise
122  double RIC_hfc;
123  double TL_hfca; // time lag correction: time lag
124  double TL_hfcb; // time lag correction: photon noise
125  double TL_hfc;
126  double C7; // post-nearIR correction time lag
127  double C8; // post-nearIR correction
128  double C9; // C4 ->
129  double C10; // C5 ->
130  double C11; // post-nearIR correction refractive index
131  double Csum2;
132  double Csum2ave;
133 
134 } EXAOSIMCONF;
135 
147 int AOsystSim_simpleAOfilter(const char *IDin_name, const char *IDout_name);
148 
150 
152 
153 
154 
155 
156 
157 
158 /* =============================================================================================== */
159 /* =============================================================================================== */
163 /* =============================================================================================== */
165 /* =============================================================================================== */
166 
167 
172 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);
173 
174 
179 long AOsystSim_fitTelPup(const char *ID_name, const char *IDtelpup_name);
180 
182 
183 
184 
185 
186 
187 
188 
189 /* =============================================================================================== */
190 /* =============================================================================================== */
194 /* =============================================================================================== */
196 /* =============================================================================================== */
197 
198 int AOsystSim_mkWF_mkCONF(const char *fname);
199 
200 int AOsystSim_mkWF(const char *CONF_FNAME);
201 
203 
204 
205 
206 
207 
208 
209 
210 /* =============================================================================================== */
211 /* =============================================================================================== */
215 /* =============================================================================================== */
217 /* =============================================================================================== */
218 
219 int AOsystSim_WFSsim_Pyramid(const char *inWFc_name, const char *outWFSim_name, double modampl, long modnbpts);
220 
221 int AOsystSim_runWFS(long index, const char *IDout_name);
222 
223 int AOsystSim_PyrWFS_mkCONF(const char *fname);
224 
225 int AOsystSim_PyrWFS(const char *CONF_FNAME);
226 
228 
229 
230 
231 
232 
233 
234 
235 /* =============================================================================================== */
236 /* =============================================================================================== */
240 /* =============================================================================================== */
242 /* =============================================================================================== */
243 
244 int AOsystSim_DMshape(const char *IDdmctrl_name, const char *IDdmifc_name, const char *IDdm_name);
245 
246 int AOsystSim_DM_mkCONF(const char *fname);
247 
248 int AOsystSim_DM(const char *CONF_FNAME);
249 
250 
252 
253 
254 
255 
256 
257 /* =============================================================================================== */
258 /* =============================================================================================== */
262 /* =============================================================================================== */
264 /* =============================================================================================== */
265 
266 int AOsystSim_coroLOWFS(const char *CONF_FNAME);
267 
269 
270 
271 
272 
273 
274 
275 
276 
277 /* =============================================================================================== */
278 /* =============================================================================================== */
282 /* =============================================================================================== */
284 /* =============================================================================================== */
285 
286 long AOsystSim_FPWFS_imsimul(double probeamp, double sepx, double sepy, double contrast, double wferramp, double totFlux, double DMgainErr, double RON, double CnoiseFloor);
287 
288 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);
289 
290 int AOsystSim_FPWFS_sensitivityAnalysis(int mapmode, int mode, int optmode, int NBprobes);
291 
293 
294 
295 
296 
297 
298 
299 
300 
301 
302 
303 
304 
305 #endif
double C11
Definition: AOsystSim.h:130
double C2
Definition: AOsystSim.h:110
double twfssci_opt
Definition: AOsystSim.h:106
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:1431
double alpha
Definition: AOsystSim.h:70
double Csum_detection
Definition: AOsystSim.h:117
int init_AOsystSim()
Module initialization.
Definition: AOsystSim.c:174
double windspeed
Definition: AOsystSim.h:82
double lambda0
Definition: AOsystSim.h:73
double C0
Definition: AOsystSim.h:100
int AOsystSim_PyrWFS(const char *CONF_FNAME)
Definition: AOsystSim.c:2831
double TL_hfca
Definition: AOsystSim.h:123
double TL_hfcb
Definition: AOsystSim.h:124
double dY
Definition: AOsystSim.h:99
double RIC_hfc
Definition: AOsystSim.h:122
int AOsystSim_coroLOWFS(const char *CONF_FNAME)
Definition: AOsystSim.c:3812
double C4
Definition: AOsystSim.h:113
double betaaWFS
Definition: AOsystSim.h:84
int AOsystSim_DM(const char *CONF_FNAME)
Definition: AOsystSim.c:3371
double twfs_opt_amp
Definition: AOsystSim.h:107
double betaaWFSsci
Definition: AOsystSim.h:86
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:4380
double C5
Definition: AOsystSim.h:114
double RIC_hfca
Definition: AOsystSim.h:120
double betapWFSsci
Definition: AOsystSim.h:85
double f
Definition: AOsystSim.h:94
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:1303
double D
Definition: AOsystSim.h:80
double Csum2ave
Definition: AOsystSim.h:132
int AOsystSim_WFSsim_Pyramid(const char *inWFc_name, const char *outWFSim_name, double modampl, long modnbpts)
Definition: AOsystSim.c:2568
double hfca
Definition: AOsystSim.h:108
double X
Definition: AOsystSim.h:96
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:731
int AOsystSim_PyrWFS_mkCONF(const char *fname)
Definition: AOsystSim.c:2787
int AOsystSim_FPWFS_sensitivityAnalysis(int mapmode, int mode, int optmode, int NBprobes)
Definition: AOsystSim.c:4924
double hfc
Definition: AOsystSim.h:104
double C10
Definition: AOsystSim.h:129
int_fast8_t AOsystSim_extremeAO_contrast_sim()
Definition: AOsystSim.c:968
double C9
Definition: AOsystSim.h:128
double f_wfs
Definition: AOsystSim.h:92
double C1
Definition: AOsystSim.h:101
double Csum2
Definition: AOsystSim.h:131
int AOsystSim_mkWF(const char *CONF_FNAME)
Definition: AOsystSim.c:1765
double hf
Definition: AOsystSim.h:95
double r0
Definition: AOsystSim.h:81
double twfssci
Definition: AOsystSim.h:103
double C6
Definition: AOsystSim.h:115
int AOsystSim_runWFS(long index, const char *IDout_name)
Definition: AOsystSim.c:2751
double RIC_hfcb
Definition: AOsystSim.h:121
double C3
Definition: AOsystSim.h:112
double dX
Definition: AOsystSim.h:98
double C2_wfs
Definition: AOsystSim.h:111
double C7
Definition: AOsystSim.h:126
double f_0
Definition: AOsystSim.h:93
int AOsystSim_run(int syncmode, long DMindex, long delayus)
Run AO system simulation.
Definition: AOsystSim.c:296
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:4712
double hfcb
Definition: AOsystSim.h:109
int AOsystSim_DM_mkCONF(const char *fname)
Definition: AOsystSim.c:3332
double C8
Definition: AOsystSim.h:127
int AOsystSim_mkWF_mkCONF(const char *fname)
Definition: AOsystSim.c:1705
double framedelay
Definition: AOsystSim.h:90
double twfs_opt
Definition: AOsystSim.h:105
double twfs
Definition: AOsystSim.h:102
double lambdai
Definition: AOsystSim.h:74
double TL_hfc
Definition: AOsystSim.h:125
double Fwfs
Definition: AOsystSim.h:87
double lambdawfs
Definition: AOsystSim.h:75
double Csum
Definition: AOsystSim.h:116
double betapWFS
Definition: AOsystSim.h:83
Definition: AOsystSim.h:69
double Fsci
Definition: AOsystSim.h:88
int AOsystSim_DMshape(const char *IDdmctrl_name, const char *IDdmifc_name, const char *IDdm_name)
DM control signals to DMshape.
Definition: AOsystSim.c:3220