![]() |
MAOS
Multithreaded Adaptive Optics Simulator
|
Functions | |
void | ngsmod_prep (const parms_t *parms, recon_t *recon, const aper_t *aper) |
void | ngsmod_setup (const parms_t *parms, recon_t *recon) |
void | ngsmod_dot (real *pttr_out, real *pttrcoeff_out, real *ngsmod_out, const parms_t *parms, const ngsmod_t *ngsmod, const aper_t *aper, const real *opd, int ievl) |
int | ngsmod_dot_post (real *pttr_out, real *pttrcoeff_out, real *ngsmod_out, real tot, const real *coeff, const ngsmod_t *ngsmod, const aper_t *aper, real thetax, real thetay) |
void | ngsmod_free (ngsmod_t *ngsmod) |
void | ngsmod_split (dcell **Merr, sim_t *simu, dcell *dmerr) |
void | ngsmod_remove (sim_t *simu, dcell *dmerr) |
void | ngsmod_opd (dmat *iopd, const loc_t *loc, const ngsmod_t *ngsmod, real thetax, real thetay, const real *mod, real alpha) |
Contains functions to setup NGS modes and reconstructor using AHST for one or more DMs. Use parms->wfsr instead of parms->wfs for wfs information, which hands GLAO mode correctly.
Notice that update of this file may require GPU code update accordingly
AHST parameters that are related to the geometry only, and will not be updated when estimated WFS measurement noise changes.
setup NGS modes reconstructor in ahst mode.
When tomo.ahst_wt=1:
Rngs=GM^\dagger=(GM'*W_N*GM)^{-1}*GM'*W_N W_N is recon->saneai M^\dagger=Rngs*GA reconstruct mode from NGS measurements equals to original mode Pngs=M*M^\dagger=M*Rngs*GA satisfies Rngs*GA*Pngs=Rngs*GA In other words, M^\dagger=(M^T W_G M)^{-1}*M^T W_G with W_G=(GA^T*W_N*GA)
Projector has the properties: M*Pngs*(1-M*Pngs)=0
void ngsmod_dot | ( | real * | pttr_out, |
real * | pttrcoeff_out, | ||
real * | ngsmod_out, | ||
const parms_t * | parms, | ||
const ngsmod_t * | ngsmod, | ||
const aper_t * | aper, | ||
const real * | opd, | ||
int | ievl | ||
) |
used in performance evaluation on science opds. accumulate to out
int ngsmod_dot_post | ( | real * | pttr_out, |
real * | pttrcoeff_out, | ||
real * | ngsmod_out, | ||
real | tot, | ||
const real * | coeff, | ||
const ngsmod_t * | ngsmod, | ||
const aper_t * | aper, | ||
real | thetax, | ||
real | thetay | ||
) |
Separate post processing part so that GPU code can call it. Return non zero if error happens.
remove NGS modes from LGS DM commands.