yao - Adaptive Optics simulation tool in yorick
Yao is a monte-carlo simulation package for adaptive
optics. It includes fast core coded in C (e.g. wavefront sensing) that are
glued together by yorick interpreted code. One defines the system to
evaluate using a configuration file, and then run aoread, aoinit and aoloop.
Yao features:
- *
- Shack-Hartmann and Curvature WFS, on or off axis.
- *
- Stackarray (piezostack), curvature (bimorph), modal (zernike) and Tip-Tilt
deformable mirrors are supported. The altitude of conjugation is
adjustable.
- *
- An arbitrary number of WFSs and DMs can be selected, with the possibility
of mixing types. It is therefore possible (and easy) to simulate single DM
systems, as well as single non-zero conjugate, GLAO and MCAO systems.
- *
- It supports Natural and Laser Guide Stars (or a mix), WFS with photon and
read-out noise.
- *
- It uses a multi-layered atmospheric model, with geometrical propagation
only.
- *
- The loop execution has been optimized for speed: the critical routines
have been coded in C. Yorick is thus used as a convenient glue between
lower levels optimized C calls. Overall, this is rather efficient: A
simple 6x6 Shack-Hartmann system runs at up to 650 iterations per second
on an apple dual 2GHz G5 (200 iterations/sec for a full diffraction
propagation model). A 50x50 Shack-Hartmann system runs at about 3
iterations/s. A 188 curvature system runs at 25 iterations/s.
- *
- Straightforward scriptability to probe parameter domains.
- *
- GTK GUI to change some of the system parameters while the loop is running
(new in v4.0). This provides an educational approach to Adaptive Optics
(newbies can play with the parameters and immediately sees how the system
reacts) and can also provides a quick way to investigate the stability
conditions for a newly designed system, before entering more serious
Monte-carlo simulations.
- help,aoread will give you information about the syntax, parameters
and keywords of aoread. See help,aoinit and help,aoloop also.
Francois Rigaut, Gemini Observatory
Input files:
- parfile.par
- A yao parameter file. This file follows a regular yorick syntax. It is
directly included by yorick to define the structures used by yao. As it
might be a little bit daunting to create a parfile from scratch, example
parfiles are provided. Their location depends on the installation. Search
for yao/examples (e.g. shx6x.par, curvature.par)
- screen*.fits
- To simulate the atmospheric turbulence, yao needs phase screens. You can
create phase screens with create_phase_screens(). They might also be
included in your distribution.
Output files:
- parfile.res
- After a simulation run, results are output in parfile.res in the cwd
Lots.
LGS uplink propagation is not implemented
Shack-Hartmann cross talk between subapertures is not
implemented
Many more.