MAOS
Multithreaded Adaptive Optics Simulator
|
Data Structures | |
struct | atm_cfg_t |
struct | atmr_cfg_t |
struct | aper_cfg_t |
struct | llt_cfg_t |
struct | dither_cfg_t |
struct | powfs_cfg_t |
struct | wfsr_cfg_t |
struct | wfs_cfg_t |
struct | dm_cfg_t |
struct | evl_cfg_t |
struct | tomo_cfg_t |
struct | fit_cfg_t |
struct | lsr_cfg_t |
struct | recon_cfg_t |
struct | sim_cfg_t |
struct | ncpa_cfg_t |
struct | cn2est_cfg_t |
struct | plot_cfg_t |
struct | dbg_cfg_t |
struct | gpu_cfg_t |
struct | moao_cfg_t |
struct | load_cfg_t |
struct | save_cfg_t |
struct | dist_cfg_t |
struct | parms_t |
struct | arg_t |
Macros | |
#define | MAX_AMPS 5 |
Functions | |
parms_t * | setup_parms (const char *main, const char *extra, int override) |
void | setup_parms_gpu (parms_t *parms, int *gpus, int ngpu) |
void | free_parms (parms_t *parms) |
Configuration parameters that remain constant during simulation.
struct atm_cfg_t |
contains input parameters for the atmospheric turbulence.
Data Fields | ||
---|---|---|
real | r0z |
r0 at zenith |
real | r0 |
derived from r0z for zenith angle za |
real | dx |
sampling of turbulence screens |
real | hmax |
maximum in ht |
dmat * | L0 |
outer scale. One number or one per layer |
dmat * | r0logpsds |
[alpha beta]: temporal PSD of log(r0) is beta*f^alpha. f is in hz. |
dmat * | r0logpsdt |
[alpha beta]: spatial PSD of log(r0) is beta*f^alpha. f is in m. |
dmat * | ht |
height of each layer |
dmat * | wt |
weight of each layer (relative strength of \(C_n^2\)) |
dmat * | ws |
wind speed of each layer |
dmat * | wddeg |
wind direction of each layer |
dmat * | size |
size of atm in meter, [0 0]: automatic |
lmat * | overx |
maximum pixel distance in x direction the beam can be without wrapping |
lmat * | overy |
maximum pixel distance in y direction the beam can be without wrapping |
int | nps |
number of phase screens |
int | wdrand |
randomize wind direction |
int | iground |
index into the ground layer |
lmat * | ipsr |
corresponding reconstruction layer |
int | nx |
turbulence screen size along x |
int | ny |
turbulence screen size along y |
lmat * | nxn |
minimum turbulence screen size along to cover meta pupil |
int | nxnmax |
max of nxn |
int | method |
0: FFT Von Karman. 1: FFT Biharmonic. 2: Fractal method. |
int | frozenflow |
frozen flow. automatic if closeloop=1 |
int | ninit |
Initial size of the screen in fractal method. >=2 |
int | share |
0: disable sharing of atmosphere using file backend |
int | r0evolve |
Evolve r0 according to r0logpsd |
int | dtrat |
Only used if atm are loaded with frames that need to playback in time. |
int | interp |
Interpolation method when atm.dtrat>0. 0: stepwise(no interpolation), 1:linear, 2:sin^2. |
struct atmr_cfg_t |
contains input parameters for the atmospheric reconstruction.
Data Fields | ||
---|---|---|
real | r0z |
r0 at zenith |
real | r0 |
derived from r0z for zenith angle za |
real | L0 |
outer scale |
real | hs |
height of the high order guide star. derived |
real | hmax |
maximum of ht |
dmat * | ht |
height of each layer |
dmat * | wt |
weight of each layer (relative strength of \(C_n^2\)) |
real | dx |
baseline sampling (when os=1). matches to high order wfs. |
lmat * | indps |
Mapping atmr.ps to atm.ps |
lmat * | os |
over sampling factor of xloc over actuator spacing |
int | nps |
number of phase screens |
struct aper_cfg_t |
contains input parameters about the aperture, like the diameter, amplitude map, etc
Data Fields | ||
---|---|---|
real | d |
Telescope aperture diameter |
real | din |
Telescope inner blocking diameter |
real | rot |
pupil rotation |
dmat * | misreg |
Misregistration of the telescope pupil. 2x1 The intersection between the misregistered pupil (aper.d or fnamp) and a centered aper.d defines the actual pupil. |
char * | fnamp | |
char * | pupmask |
amplitude maps. expected to be square or rectangular mxn, with 0 at [m/2,n/2] (count from 0) The pupil cold stop |
struct llt_cfg_t |
contains input parameters for laser launch telescope
Data Fields | ||
---|---|---|
real | d |
LLT clear aperture diameter |
real | widthp |
Gaussian beam width percentage of d |
real | focus |
RMS focus error in nm of LLT. |
real | ttrat |
Ratio of uplink jitter to science jitter due to M2 windshake. |
real | fcfsm |
corner frequency for offloading FSM to a common path pointing mirror in LLT. 0: disabled |
real | dhs |
Spacing of sublayers to simulate for LGS |
char * | ttpsd |
PSD of uplink beam jitter |
char * | fnrange |
File contains range to sodium layer |
char * | fnprof |
File contains sodium profile |
char * | fnprep |
File contains sodium profiled used for computing i0. if NULL: equal to fnprof |
char * | fnsurf |
Pupil Surface OPD error |
char * | fnamp |
Pupil amplitude map. overrides widthp |
dmat * | ox |
location x of LLT center wrt telescope aperture center |
dmat * | oy |
see ox. |
dmat * | misreg | |
int | ttfr |
Remove piston/tip/tilt and focus (if = 2) from ncpa |
int | colprep |
starting column to use in fn for ETF in preparation of matched filter |
int | colsim |
starting column to use in fn for ETF in simulation |
int | coldtrat |
change to next sodium profile during simulation every coldtrat time step |
int | nhs |
Number of sublayer to simulate for LGS |
int | na_smooth |
1: smooth sodium profile to coarser grid before computing etf |
int | na_interp |
1: Interpolate sodium profile and use FFT to build etf. 0: direct sum, slow |
int | na_fit_maxit |
Number of iterations. 0: auto, 1 for CMF, 3 for COG. see wfsgrad.c |
real | na_fit_svdthres |
threshold for SVD inverse in sodium fitting. |
real | na_fit_dh |
sampling in height in sodium fitting |
real | na_thres |
altitude error threshold to move trombone, in unit of meter. |
lmat * | i |
Index into llt for this iwfs. |
int | nllt |
number of launch telescopes in this powfs |
real | epfsm |
Integrator gain for LLT FSM offloading |
struct dither_cfg_t |
parameters for dithering
struct powfs_cfg_t |
contains input parameters for each type of wfs (powfs).
Data Fields | ||
---|---|---|
dmat * | wvl |
list of wavelength in ascending order. |
dmat * | wvlwts |
weights for each wavelength. can be overriden by wfs.wvlwts. |
real | wvlmean |
Average wavelength |
char * | saloc |
saloc override file |
real | misregx |
misregistration wrt telescope pupil. shift along x |
real | misregy |
misregistration wrt telescope pupil. shift along y |
real | misregc |
misregistration wrt telescope pupil. camera is rotated CCW. |
real | misregrmax |
Maximum misregistration for all wfs in this powfs. |
char * | amp |
amplitude override file |
char * | piinfile |
input averaged pixel intensities for matched filter. NULL to disable |
char * | sninfile |
Speckle noisy input file. NULL to disable. not used |
real | hs |
height of guide star |
real | hc |
conjugation height of WFS pupil |
real | saat |
subaperture area (normalized) threshold to drop subaperture. |
real | safill2d |
subaperture lenslet throughgput. value is used to alter amplitude map |
real | saspherical |
Subaperture spherical aberration in nm RMS at best focus. |
real | safocuspv |
Subaperture focus error in nm p/v |
char * | neareconfile |
File contains noise equivalent angle in radian^2. Contains cell array of nwfsx1. |
real | nearecon |
NEA used in reconstruction in milli-arcsecond, sim.dtref integration time. Will be scaled by powfs.dtrat and subaperture area before use. |
real | neasim |
NEA used in simulation. -1 to use nearecon |
char * | neasimfile |
read NEA used in simulation from file. Defined at sim.dt sampling rate, in radian. neasim must be -1 |
real | neaextra |
Extra NEA to add in quadrature to the NEA determined by matched filter or CoG |
real | neamin |
Minimum NEA to limit the NEA determined by matched filter or CoG |
real | bkgrnd |
background in electron per pixel per LGS frame |
real | bkgrndc |
How much of the background in bkgrnd can be calibrated out. depends on variability. |
char * | bkgrndfn |
file contains sky background/rayleigh scatter input for each subaperture in each wfs. |
char * | bkgrndfnc |
How much of the background in bkgrndfn can be calibrated out. depends on variability. |
dmat * | qe |
File containing matrix of pixpsax*pixpsay specifying QE of each pixel. To simulate PCCD non uniform response |
real | rne |
read out noise in electron per pixel per frame |
real | pixblur |
pixel bluring due to leakage. relative to pixel size. |
real | dsa |
Size of subaperture in 1 dimension |
real | dx |
sampling of opd points in each subaperture. usually matches atmosphere sampling for LGS. may be coraser for NGS. |
real | pixtheta |
size of pixel pitch along x/y or azimuthal if radial ccd. Converted to radian from user input |
real | radpixtheta |
size of pixel pitch along radial direction. -1 for square pixel |
real | fieldstop |
size of field stop in arcsec. |
real | astscale |
Scale wfs.thetax and wfs.thetay. |
real | pixoffx |
offset of image center from center of detector |
real | pixoffy |
see pixoffx |
real | sigscale |
scale the signal level for simulation. |
real | siglev |
signal level at dtrat=1. will be override by wfs.siglev is specified. |
dmat * | siglevs |
in array format. 1x1 or nwfsx1, scaled from wfs.siglev by dtrat. |
real | sigrecon |
signal level for NEA computation |
struct llt_cfg_t * | llt |
configuration for LLT |
char * | fnllt |
filename of LLT configuration. empty means no llt. |
pywfs_cfg_t * | pycfg |
Set only for Pyramid WFS. |
char * | pywfs |
Pyramid WFS configuration |
int | type |
WFS type: 0: SHWFS, 1:Pyramid WFS |
int | step |
frame to start using WFS |
int | trs |
tip/tilt removal flag. True for LGS, False for NGS |
int | frs | |
int | lo |
Global focus removal flag. Optional for LGS, False for NGS whether this is a low order wfs. False for LGS, True for NGS |
int | skip |
skip in high order tomography, for split tomo (derived parameter) |
int | psol |
Compute pseudo open loop gradients (derived parameter) |
lmat * | wfs |
array of wfs belongs to this powfs |
lmat * | wfsr |
array of reconstruction wfs belongs to this powfs |
lmat * | wfsind |
wfsind[iwfs] gives the index of the wfs in this powfs group |
int | nwfs |
number of wfs belonging to this powfs |
int | nwfsr |
number of wfs for reconstruction belonging to this powfs |
int | neaphy |
use nea from physical optical precomputation in geometric simulations. |
int | phyusenea |
force using supplied noise equivalent angle in physical optics simulations |
int | order |
order of wavefront sensing along one dimension. |
int | pixpsa |
number of detector pixels along x/y (or azimuthal if radial CCD). |
int | radpix |
number of detector pixels along radial direction if radial CCD |
int | radgx |
1: gx/gy is along R/A coordinate. Only valid if radpix is set |
int | notf |
PSF is extended to this size before FFT into OTF. 0 for automatic |
int | embfac |
Embed subaperture atm OPD before fft. set to 2. |
int | nwvl |
Number of wavelength. 1 for LGS, 2 for NGS J+H sensing. |
int | gtype_sim |
wfs type if not using physical optics in reconstruction.
|
int | gtype_recon |
wfs type if not using physical optics in simulation.
|
int | phytype_recon |
physical optics type for reconstruction. 1: mtch, 2: tcog, 3: MAP |
int | phytype_sim |
physical optics type for simulation. -1 to follow phytype_recon |
int | phytype_sim1 |
Save phytype_sim initial value |
int | phytype_sim2 |
physical optics type after dithering update. -1 to follow phytype_sim |
int | phystep |
frame to start using physical optics.
|
int | usephy |
whether physical optics is used at all during simulation.(derived parameter) |
real | r0 |
Fried parameter for matched filter generation. Uses atm.r0, atm.L0 is not set |
real | L0 |
Outerscale for matched filter generation. Uses atm.r0, atm.L0 is not set |
int | mtchcr |
use constrained matched filter (0: disable, 1: both axis. 2: radial/x only, 3: az/y only) |
int | mtchcpl |
use coupling between r/a measure error. useful for LGS with x-y ccd. |
int | mtchstc |
shift peak in the time averaged short exposure PSF to center using fft. |
int | sigmatch |
scale subaperture image to have the same intensity as i0. Keep false. |
int | mtchadp |
Using adaptive matched filter. When the number of pixels in the image brighter than half maximum is more than this value, use constraint. introduced on 2011-02-21. |
int | mtchfft |
Compute gx, gy using i0 with FFT derivative instead of PSF. |
real | cogthres |
CoG threshold, relative to max(im) |
real | cogoff |
CoG offset to remove, relative to max(im). |
dmat * | ncpa |
Description of NCPA; 2xn; first row is rms in meter, second row is zernike mode or negative for power law. |
int | needGS0 |
need to compute GS0 (derived parameter) |
int | noisy |
noisy or not during simulation |
int | ncpa_method |
Method to correct ncpa.
|
int | pistatout |
output time averaged short exposure image. 1: shift to center, 2: do not shift |
int | pistatstart |
time step to compute pistatout |
int | pistatstc |
1: shift to center using fft method. 0: use geometric gradients. |
int | psfout |
output time history of low order wfs PSF. never do this for LGS. |
int | dtrat |
ratio of sample period over sim.dt. Note that sim.dt is assumed to be the fast, high-order loop (e.g. LGS) and the slow or low-order TT WFS cannot run faster. powfs.dtrat must be an integer value. |
int | idtrat |
Index of dtrat into parms->sim.dtrats |
int | i0scale |
scale i0 to matched subaperture area. |
int | moao |
index into MOAO struct. -1: no moao |
int | i0save |
Save time averaged subaperture images. |
char * | i0load |
load i0,gx,gy from this folder. |
real | gradscale |
Scale CL gradients. For testing |
int | dither |
Turn on/off dithering to update centroid gain or matched filter |
int | dither_mmd |
Enable multi-mode dithering. Only effective when recon.modal is set |
real | dither_amp |
Dither amplitude. |
real | dither_gpll |
Gain of phase locked loop |
real | dither_gog |
Gain for updating optical gain for cog |
real | dither_gdrift |
Gain for drift control |
real | dither_glpf |
LPF gain for i0,gx,gy update (matched filter) |
int | dither_npoint |
Number of points in each dither peroid (4) |
int | dither_pllskip |
Skip WFS frames for uplink loop to stable |
int | dither_pllrat |
Number of WFS frames for updating PLL. |
int | dither_ogskip |
Number of WFS frames to skip before computing averaged images |
int | dither_ograt |
Number of WFS frames to update pixel processing algorithm (MF/CoG) |
int | dither_ogsingle |
*Force using single gain update (when dither==1 for SHWFS) |
int | zoomshare |
1: All LGS share the same trombone |
real | zoomgain |
gain of the trombone controller |
real | zoomgain_drift |
gain for the trombone controller with i0 drift input |
int | zoomset |
Set zoom position from the beginning |
int | ng |
number of gradients per subaperture. 2 for SHWFS. >2 for raw PWFS |
real | apfsm |
servo coefficient for for LGS uplink pointing loop. |
real | epfsm |
error gain for uplink pointing |
real | alfsm |
Additional latency (*sim.dt) of the uplink loop |
real | zetafsm |
Damping of FSM modeled as second harmonic oscillater (SHO). |
real | f0fsm |
Resonance frequency of FSM (SHO). 0: infinite. |
int | idealfsm |
ideal compensation for uplink pointing |
int | commonfsm |
Make FSM common for each powfs (LLT). Keep at 0. |
struct wfsr_cfg_t |
contains input parmaeters for each wfsr for reconstruction
struct wfs_cfg_t |
contains input parmaeters for each wfs
Data Fields | ||
---|---|---|
dmat * | wvlwts |
Weights of signal value for each wavelength. if not specified in config, will use powfs.wvlwts |
dmat * | sabad |
coordinate of bad subaperture due to bad detector or lenslet array. |
real | thetax |
x direction |
real | thetay |
y direction |
real | misregx |
misregistration wrt telescope pupil: shift along x |
real | misregy |
misregistration wrt telescope pupil. shift along y |
real | misregc |
misregistration wrt telescope pupil. clocking error. |
real | hc |
conjugation height of WFS pupil is wfs.hc=powfs.hc+wfs.delta_hc (input) |
real | hs | |
real | siglev |
height of star is wfs.hs=powfs.hs+wfs.delta_hs (input) Total signal value for all wavelength. if not specified in config, will use powfs.siglev |
real | sigsim |
Signal value used for simulation. (derived parameter) |
real | fitwt |
Include wfs in fitting directions if corresponding wfs[iwfs].fitwt is greater than 0 |
int | powfs |
powfs type |
struct dm_cfg_t |
contains input parameters for each deformable mirror.
Data Fields | ||
---|---|---|
real | guard |
extra DM actuator rings outside of aper.d |
dmat * | stroke |
Stroke of DM (surface). OPD goes to \(\pm\) stroke. nactx2 array: min and max per actuator$ |
real | iastroke |
Inter actuator stroke (surface) |
dcell * | strokescale |
describes polynomials that convert opd to voltage (first cell), and voltage to opd (second cell). The two operations has to be strict inverse of each other |
real | dratio |
telescope diameter to DM diameter ratio (beam angle magnification factor) |
real | vmisreg |
vertical misregistration |
real | ht |
height conjugation range |
real | dx |
actuator separation along x (derived from order) |
real | ar |
[in] aspect ratio: dy/dx |
real | dy |
actuator separation along y (derived from dx and ar |
real | offset |
Center-most actuator offset from origin
|
real | iac |
If !=0: use cubic influence function with this Inter-Actuator Coupling coefficient. |
real | histbin |
The bin width for histogram. |
int | histn |
Number of bins in histogram. |
int | hist |
Compute histogram of commands of each actuator |
int | order |
Nominal order of the DM within telescope clear subaperture |
int | isground |
Is this DM the ground DM (derived) |
dmat * | actfloat |
floating actuators. nx2 coordinate |
dmat * | actstuck |
stuck actuators. nx2 coordinate. |
real | hyst |
The hysteresis amount (ratio) |
real | hyst_alpha |
The DM hysteresis model alpha parameter |
real | hyst_stroke |
The surface stroke that the hysteresis is measured at |
struct evl_cfg_t |
contarins input parameters all evaluation directions.
Data Fields | ||
---|---|---|
dmat * | thetax |
x Coordinate of evaluation directions |
dmat * | thetay |
y Coordinate of evaluation directions |
dmat * | wt |
weight of each direction |
dmat * | wvl |
wavelength for PSF and strehl computation |
dmat * | hs |
height of each science object |
const char ** | wvlname |
Common name of each wavelength. |
real | dx |
sampling of aperture for evaluation |
int | nwvl |
Number of wavelength |
lmat * | psf |
1: participate in psf evaluation. |
lmat * | psfr |
1: participate in psf reconstruction telemetry |
int | npsf |
how many directions we compute psf for |
int | rmax |
max radial mode for performance evaluation.
|
int | nmod |
Number of modes. derived from rmax. (nmax+1)*(nmax+2)/2 |
int | psfol |
compute Open loop PSF.
|
int | psfhist |
output history of the psf (a lot of storage) |
int | psfmean |
output time averaged psf |
int | cov |
save covairance of science OPD ,every this time step, for directions where evl.psf is 1 |
int | opdmean |
save science OPD time average every |
lmat * | pttr |
remove p/t/t from psf. 1 number for each evl. |
int | psfisim |
time step to start psfmean. |
lmat * | psfsize |
save this number of pixels of the center of the psf. 1 number for each wvl. |
lmat * | psfgridsize |
grid size for FFT to generate PSF. Becareful about FFT speed and enough padding. Determines the sampling of the generated PSF. 0 or negative for automatic. 1 number for each wvl. |
int | nevl |
Number of evaluation directions. (derived) |
int | tomo |
evaluate tomography performance. |
int | indoa |
index of the on axis evluation point. |
int | moao |
index into MOAO struct. -1: no MOAO |
int | split |
evaluate split tomography low order |
struct tomo_cfg_t |
contains input parameters for wavefront tomography.
Data Fields | ||
---|---|---|
real | tikcr |
tikhonov regularization. |
real | minwt |
minimum layer weight allowed. if less than this will force to this. |
real | iac |
!=0: use cubic influence function with this Inter-Actuator Coupling coefficient. |
real | cxxscale |
scale the Cxx^-1 term. |
real | svdthres |
Threshold in SVD inversion |
int | square |
use square/rectangular grid instead of tighter irregular grid |
int | cone |
use cone coordinate in xloc: keep true |
int | cxxalg |
method to compute Cxx^-1. 0: bihormonic approx. 1: inverse psd. 2: fractal |
int | guard |
guard rings of reconstruction grid ploc and xloc |
int | pos |
over sampling factor of ploc over actuator spacing |
int | nxbase |
Each layer xloc grid size is tomo.os*tomo.nxbase is not zero. same for ploc. |
int | piston_cr |
single point piston constraint. |
int | ahst_wt |
Weight used to compute low order model removal in AHST 1: remove effect on NGS WFS (not good if WFS is outside of science FoV) 2: remove effect on Science 3: Identity weighting (bad) |
int | ahst_idealngs |
ideal correction on NGS modes. For skycoverage preprocessing. |
int | ahst_focus |
1: Make magnification mode free of focus in science (only effective when sim.mffocus=1 |
int | alg |
Tomography algorithm to solve the linear equation.
|
int | bgs |
1: use BGS, block Gaussia Seidel then use alg to solve each block. |
int | precond |
Tomography preconditioner. 0: No preconditioner. (CG) 1: Fourier Domain Preconditioner. (FDPCG) |
int | maxit |
max iterations. Usually 30 for CG, 3 for FDPCG in closed loop warm restart. x10 in open loop |
int | cgwarm |
Warm restart in CG. |
int | assemble |
force assemble tomography matrix in CG |
int | predict |
test predictive control. |
int | ninit |
like atm.ninit, the initial screen to generate from covariance directly |
int | splitlrt |
1: low rank terms also in LHS. |
struct fit_cfg_t |
contains input parameters for deformable mirror fitting.
Data Fields | ||
---|---|---|
dmat * | thetax |
x Coordinate of DM fitting directions. |
dmat * | thetay |
y Coordinate of DM fitting directions. |
dmat * | wt |
weight of each direction |
dmat * | hs |
height of target in each direction |
real | tikcr |
tikhonov regularization |
real | svdthres |
Threshold in SVD inversion |
real | actthres |
Threshold for slaving value of weakly coupled actuators |
real | actthres2 |
Threshold for reducing jump across weakly coupled actuators |
int | actslave |
Enable slaving for non-active actuators. Useful in CBS method |
int | actextrap |
extrapolate actuator results to non-active actuators. |
int | nfit |
Number of DM fit directions |
int | lrt_piston |
Piston constraint low rank term in fit coefficient matrix |
int | lrt_tt |
differential tip/tilt constraint on two DMs or tt on upper dms. |
int | alg |
Fitting algorithm to solve the linear equation. 0: Cholesky direct solve for the large matrix. (CBS) 1: CG or PCG. 2: SVD or EVD: Eigen value decompsition |
int | bgs |
1: use BGS, block Gaussia Seidel then use alg to solve each block. |
int | precond |
Preconditioner. Not available. |
int | maxit |
max iterations. Usually 4 for CG |
int | guard |
guard rings of reconstruction grid ploc |
int | square |
using square grid on DM and ploc. |
int | assemble |
force assemble fit matrix in CG |
int | pos |
over sampling of floc over aloc. for fitting. normally equal to tomo.pos |
int | indoa |
Index of on axis point. |
int | cachedm |
Cache DM command in intermediate plane |
int | cachex |
Cache X (xloc) in intermediate plane |
int | cgwarm |
Warm restart in CG. |
struct lsr_cfg_t |
contains input parameters for the least square reconstructor.
struct recon_cfg_t |
contains input parameters for wavefront reconstruction.
struct sim_cfg_t |
contains input parameters for simulation, like loop gain, seeds, etc.
Data Fields | ||
---|---|---|
real | dt |
sampling period (s) for simulation. |
real | dtref |
sampling period (s) for setting siglev or nearecon. |
real | za |
zenith angle in radian |
real | htel |
Height of telescope. Used to adjust sodium profile range |
int | start |
time step to start simulation. 0 |
int | end |
time step to stop simulation. exclusive |
int | pause |
Pause at the end of every time step |
lmat * | seeds |
simulation seeds |
int | nseed |
How many simulation seed |
int | closeloop |
closed loop or open loop |
dmat * | wspsd |
Telescope wind shake PSD input. Nx2. First column is freq in Hz, Second column is PSD in rad^2/Hz. |
int | wsseq |
sequence of wind shake time series. |
dmat * | aphi |
servo coefficient for high order dm. A is command. e is error signal. at time step n, the command is updated by A(n)=A(n-1)*apdm(0)+A(n-2)*ap(1)+...+e(n-2)*ep |
dmat * | ephi |
error gain for DM commands (high order) |
real | f0dm |
Natural frequency of the DMs. |
real | zetadm |
Damping of the DMs. |
dmat * | aplo |
servo coefficient for ngs modes. |
dmat * | eplo |
error gain for NGS modes (low order) |
real | alhi |
Additional latency (*sim.dt) of the high order loop besides 2 cycle delay. |
real | allo |
Additional latnecy (*sim.dt) of the low order loop |
real | aptwfs |
Twfs reference vector servo coefficient. |
real | eptwfs |
Twfs reference vector servo gain. |
real | eptsph |
Twfs reference vector servo gain for spherical mode |
real | fcttm |
cross over frequency of tip/tilt split. 0 to disable ttm. |
real | fcfocus |
cross-over frequency of the focus LPF. |
real | fov |
The diameter of total fov in arcsec |
int | focus2tel |
Offload focus to telescope |
real | epfocus2tel | |
int | mffocus |
method for focus blending between LGS and LO NGS
|
int | cachedm |
cache dm shape on fine sampled grid matched WFS or Science grid |
int | fuseint |
fuse the high and low order integrators in split tomography |
int | skysim |
1: we are doing skycoverage preprocessing |
int | evlol |
evaluate open loop error only |
int | noatm |
disable atmosphere |
int | idealtomo |
Use downsampled turbulence directly as tomography outout (to evaluate fitting error without tomography effect) |
int | psfr |
do PSF reconstruction telemetry |
int | ecnn |
Calculate WF covariance due to WFS noise cov Cnn. |
int | wfsalias |
Study the wfs aliasing effect by projecting turbulence onto the NULL space of DM. |
int | idealwfs |
Generates ideal WFS by sensing turbulence with DM range. |
int | idealevl |
Evaluate performance within DM range. |
real | dtlo |
low order wfs sampling period |
real | dthi |
high order wfs sampling period |
int | dtrat_hi |
ratio of sampling period over clock of high order wfs |
int | dtrat_lo |
highest dtrat of the lower order loop. |
int | dtrat_lo2 |
lowest dtrat of the lower order loop. |
int | dtrat_lof |
lowest dtrat of the lower order focus loop. |
int | dtrat_skip |
dtrat (over sim.dt) for frame drop. Be careful when powfs.dtrat is not one. |
int | noisy_hi |
whether high order WFS is noisy |
int | noisy_lo |
whether low order WFS is noisy |
real | lpfocushi |
derived: lpfocus=2*pi*fc*sim.dthi |
real | lpfocuslo |
derived: lpfocus=2*pi*fc*sim.dtlo |
real | lpttm |
los path filter for ttm. derived: lpttm=2*pi*fcttm*sim.dt |
int | dmclip |
derived: Need to clip actuator stroke |
int | dmclipia |
derived: Need to clip inter-actuator stroke |
int | dmproj |
derived: Need to projection atmosphere onto DMspace. |
int | mvmport |
Non zero: specify which port does the MVM server run on and connect to it for MVM reconstruction. |
char * | mvmhost |
Which host does the MVM server run |
int | mvmsize |
number of gradients to send each time. 0 is all. |
int | mvmngpu |
number of GPUs to use in server |
char * | dmadd |
Containing dm vector to simulate turbulence (added to integrator output). It should be cell array (time steps) of cell arry (DMs) of vectors. Can be empty |
struct ncpa_cfg_t |
Data Fields | ||
---|---|---|
dmat * | thetax |
Coordinate for NCPA calibration (arcsec) |
dmat * | thetay |
Coordinate for NCPA calibration (arcsec) |
dmat * | wt |
Weight for each point. |
dmat * | hs |
Height of star. |
int | calib |
calibrate NCPA. 1: with all DMs. 2: with only ground DM. |
int | ttr |
Remove average t/t from NCPA for WFS. Equivalent as repositioning WFS. default 1. |
int | rmsci |
1: do not include calibration residual in science path. |
int | preload |
preload integrator with DM sys flat |
int | ndir |
Number of points for NCPA calibration |
char ** | surf |
OPD surfaces |
int | nsurf |
Number of OPD surfaces |
char ** | tsurf |
Tilted surfaces, surface, not OPD |
int | ntsurf |
Number of tilted surfaces |
struct cn2est_cfg_t |
Parameters for Cn square estimation.
Data Fields | ||
---|---|---|
dmat * | pair |
If non empty, paris of WFS to use for cn2 estimation. Empty: disable cn2 estimation |
int | step |
do cn2 estimation every this time step |
int | reset |
reset the accumulated cn2 after every cn2step. |
int | tomo |
update tomography parameters if non zero |
int | verbose |
1:Print out estimated r0, cn2 during simulation. |
int | keepht |
>0: use the layer ht specified by atmr.ht. 2: also do slodar directly on these layers. |
int | nhtomo |
number of layers to feed into reconstructor. only effective if keepht=0 |
int | moveht |
1: move the ht used for reconstructor to near strongest layers. only effective if keepht=0. |
int | psol |
Use pseudo open loop gradients. 0 to probe residual |
real | hmax |
maximum height to estimat |
real | saat |
subaperture area threashold to use in cn2 estimation |
struct plot_cfg_t |
contains input parameters for plotting during simulation. For debug purpose
struct dbg_cfg_t |
contains input parameters for debugging.
Data Fields | ||
---|---|---|
int | mvstlimit |
Limit number of modes controled on MVST |
int | annular_W |
Define the W0/W1 on annular aperture instead of circular |
lmat * | tomo_maxit |
if not empty, will study these maxits in open loop |
int | tomo_hxw |
1: Force use hxw always instead of ray tracing from xloc to ploc. |
int | ecovxx |
save the xx used to calculate ecov in psfr. |
int | useopdr |
use opdr in psf reconstruction |
int | force |
Force run even if Res_${seed}.done exists |
int | cmpgpu |
1: cpu code follows GPU implementation. |
int | pupmask |
Testing pupil mask for NGS WFS to be within LGS volume. |
int | wfslinearity |
Study the linearity of this wfs |
int | nocgwarm |
Disable warm restart in CG |
int | test |
Temporary any testing purpose |
int | dmfullfov |
let DM cover full FoV (sim.fov) |
int | tomo |
Comparing tomography in GPU and CPU |
int | fit |
Comparing DM fitting in GPU and CPU |
int | gp_noamp |
Use annular instead of ampground for GP |
dmat * | atm |
test special atmosphere. <0: fourier mode with spatial frequency 1/dbg.atm m^-1. >0: zernike mode |
real | gradoff_scale |
Scale the reference vector |
int | gradoff_reset |
reset gradoff after creating matched filter with dithering |
dcell * | dmoff |
DM offset for simulating turbulence on the DM. dimension: ndm*nstep |
dcell * | gradoff |
Introduced additional gradient offset. dimension: nwfs*nstep |
int | twfsflag |
use TWFS to control 0: all modes, 1: radial only |
int | twfsrmax |
TWFS maximum zernike radial order. |
int | wfs_iac |
Cubic spline coupling factor for turbulence fitting onto wfs grid. |
int | fullatm |
Always copy full atm to GPU. |
int | lo_blend |
Low order multi-rate control blending scheme. |
real | eploscale |
Scale of eplo |
int | ahst_keepfocus |
keep LGS focus in ngs mode removal |
int | recon_stuck |
Whether to handle stuck actuator in reconstruction. |
struct gpu_cfg_t |
Configure GPU usage for different parts.
struct moao_cfg_t |
contains input parameters for each MOAO type.
Data Fields | ||
---|---|---|
real | dx |
Spacing of MOAO DM act |
int | order |
Nominal order of this MOAO |
int | used |
This moao is used |
int | actslave |
Do we do actuator slaving |
int | lrt_ptt |
Piston/tip/tilt constraint |
real | iac |
If !=0: use cubic influence function with this Inter-Actuator Coupling coefficient. |
real | stroke |
Stroke of the MOAO DM |
real | gdm |
The gain of type I controller. a[n]=a[n-1]+e*g where g=o[n]-a[n-1] |
real | ar |
Aspect ratio dy/dx |
real | guard | |
dmat * | actfloat |
file containing floating actuators. nx2 coordinate |
dmat * | actstuck |
file containing stuck actuators. nx2 coordinate. |
struct load_cfg_t |
contains input parameters for reusing of saved variables.
struct save_cfg_t |
contains input parameters for saving variables.
Data Fields | ||
---|---|---|
int | extra |
Save extra results, namely clep, olep, cleNGSmp, etc |
int | all |
save absolutely everything. mainly for debugging |
int | setup |
save preparation matrices |
int | recon |
save reconstructor information. large |
int | mvst |
MVST computation intermediate matrices |
int | ncpa |
save NCPA surface OPD on aper and powfs |
int | fdpcg |
save FDPCG matrices |
int | atm |
save atmosphere |
int | run |
save run time informaton for each time step |
int | opdr |
save reconstructed OPD on XLOC for each time step |
int | opdx |
save ATM propagated to XLOC for each time step |
int | dm |
save computed DM actuator commands for each time step |
int | evlopd |
save science OPD every |
int | dither |
save estimated matched filter from dithering |
int | gradoff |
save gradient reference vector |
lmat * | wfsopd |
save WFS OPD: |
lmat * | ints |
save WFS subaperture image |
lmat * | grad |
save WFS gradients |
lmat * | gradnf |
save WFS noise free gradients |
lmat * | gradpsol |
save WFS PSOL gradients |
lmat * | gradgeom |
save WFS geometric gradient during physical optics simu |
int | wfsopdhi |
save high order WFS OPD(derived) |
int | wfsopdlo |
save low order WFS OPD(derived) |
int | intshi |
save high orrder WFS integration(derived) |
int | intslo |
save low orrder WFS integration(derived) |
int | gradhi |
save WFS gradients for high order wfs (derived) |
int | gradlo |
save WFS gradients for low order wfs (derived) |
int | gradgeomhi |
save WFS geometric gradient during physical optics simulations.(derived) |
int | gradgeomlo |
save WFS geometric gradient during physical optics simulations.(derived) |
int | gcovp |
output cumulative gradient covariance average every gcovp step |
int | ngcov |
number of pairs of gradient covariance to compute |
lmat * | gcov |
size of 2*ngcov, specifying wfs for each pair |
int | ecov |
save covariance of DM error vector |
int | mvmi |
save TomoL output of mvm control matrix assembly for warm restart. |
int | mvmf |
save FitR output of mvm control matrix assembly |
int | mvm |
save computed mvm control matrix |
struct dist_cfg_t |
struct parms_t |
is a wrapper of all _CFG_T data types.
Data Fields | ||
---|---|---|
atm_cfg_t | atm |
atmospheric parameters |
atmr_cfg_t | atmr |
information about reconstructed atm |
aper_cfg_t | aper |
aperture parameters |
tomo_cfg_t | tomo |
tomography parameters |
fit_cfg_t | fit |
DM fit parameters |
lsr_cfg_t | lsr |
LSR parameters |
recon_cfg_t | recon |
general reconstruction parameters |
evl_cfg_t | evl |
Performance evaluation parameters |
powfs_cfg_t * | powfs |
Array of wfs type |
wfs_cfg_t * | wfs |
Array of wfs |
wfsr_cfg_t * | wfsr |
Array of wfs used in reconstruction. Has only 1 wfs per powfs in glao mode, otherwise same as wfs. |
dm_cfg_t * | dm |
Array of DM |
moao_cfg_t * | moao |
Array of MOAO |
sim_cfg_t | sim |
Simulation information |
ncpa_cfg_t | ncpa |
Surface and NCPA caibration parameters. |
cn2est_cfg_t | cn2 |
Parameters for Cn2 estimation |
plot_cfg_t | plot |
Specify what to plot during simulation. |
dbg_cfg_t | dbg |
Specify debugging parameters |
gpu_cfg_t | gpu |
Specify GPU options. |
load_cfg_t | load |
Specify what matrices to load for debugging |
save_cfg_t | save |
Specify what to save to file for debugging |
dist_cfg_t | distortion |
Field distortion. Not misregistration |
int | npowfs |
Number of wfs types |
int | nwfs |
Number of wfs |
int | nwfsr |
Number of wfs used in reconstruction. =npowfs in glao, =nwfs otherwise |
int | ndm |
Number of DMs |
int | nmoao |
Number of different MOAO type |
int * | fdlock |
Records the fd of the seed lock file. if -1 will skip the seed |
char ** | fnlock |
Records the filename of the seed lock file. |
int | nlopowfs |
Number of low order wfs types |
lmat * | lopowfs |
List of low order powfs |
int | nhipowfs |
Number of high order wfs types |
lmat * | hipowfs |
List of high order powfs |
int | ntrpowfs |
Number of tip/tilt removed wfs types |
int | ntipowfs |
Number of tip/tilt include wfs types |
int | nphypowfs |
Number of powfs with local/uplink tip/tilt loop |
int | nlowfs |
Number of low order wfs. |
int | nhiwfs |
Number of high order wfs |
dmat * | dirs |
Collect for beam directions |
int | dither |
Some WFS is doing dithering |
int | ilgspowfs |
Index of LGS WFS |
int | nlgspowfs |
Number of LGS WFS |
int | ittfpowfs |
Index of ttf lo powfs. -1 if none |
int | ittpowfs |
Index of tt lo powfs. -1 if none |
int | itpowfs |
Index of twfs |
int | idmground |
Index of ground dm. default to 0 |
int | step_lo |
Enabling step for low order wfs |
int | step_hi |
Enabling step for high order wfs |
real | hipowfs_hsmin |
high order wfs minimum height |
real | hipowfs_hsmax |
high order wfs maximum height |
int | itwfssph |
index of TWFS spherical mode |
struct arg_t |
arg_t is used for command line parsing.
parms_t* setup_parms | ( | const char * | mainconf, |
const char * | extraconf, | ||
int | override | ||
) |
This routine calles other routines in this file to setup the parms parameter struct parms and check for possible errors. parms is kept constant after returned from setup_parms.
void setup_parms_gpu | ( | parms_t * | parms, |
int * | gpus, | ||
int | ngpu | ||
) |
Additional setup_parms code to run when maos is running. It only contains GPU initialization code for the moment.
void free_parms | ( | parms_t * | parms | ) |
Free the parms struct.