 |
COMPASS
5.0.0
End-to-end AO simulation tool using GPU acceleration
|
Go to the documentation of this file.
135 map<vector<int>, cufftHandle *> ftlgskern_plans,
float xpos,
136 float ypos,
float lambda,
float mag,
float zerop,
long size,
137 float noise,
long seed,
float G,
float thetaML,
float dx,
160 map<vector<int>, cufftHandle *> campli_plans,
161 map<vector<int>, cufftHandle *> fttotim_plans) = 0;
178 float *mask,
float scale,
int *istart,
int *jstart,
179 int *ivalid,
int *jvalid,
int nphase,
int npup,
int Nfft,
181 int indexfill(cuFloatComplex *d_odata, cuFloatComplex *d_idata,
int *indx,
183 int fillbincube(
float *bcube, cuFloatComplex *hrimage,
int *indxpix,
int Nfft,
184 int Npix,
int Nrebin,
int Nsub,
CarmaDevice *device);
186 cuFloatComplex *hrimage,
int *indxpix,
int Nfft,
int Npix,
188 int fillbinimg(
float *bimage,
float *bcube,
int npix,
int nsub,
int Nsub,
189 int *ivalid,
int *jvalid,
bool add,
CarmaDevice *device);
192 int *ivalid,
int *jvalid,
bool add,
CarmaDevice *device);
194 float *bcube,
int npix,
int nsub,
int Nsub,
int *ivalid,
195 int *jvalid,
int nim,
bool add,
CarmaDevice *device);
199 int digitalize(T *camimg,
float *binimg,
float *dark,
float *flat,
200 int max_flux_per_pix,
int max_pix_value,
int N,
CarmaDevice *device);
204 void subap_reduce(
int size,
int threads,
int blocks, T *d_idata, T *d_odata,
209 T *d_idata, T *d_odata);
212 void subap_reduce(
int size,
int threads,
int blocks, T *d_idata, T *d_odata,
220 void subap_reduce(
int size,
int threads,
int blocks, T *d_idata, T *d_odata,
224 void phase_reduce(
int threads,
int blocks, T *d_idata, T *d_odata,
int *indx,
228 void phase_derive(
int size,
int threads,
int blocks,
int n, T *d_idata,
229 T *d_odata,
int *indx, T *mask, T alpha,
float *fluxPerSub);
231 template <
class Tout,
class Tin>
232 void pyr_getpup(Tout *d_odata, Tin *d_idata, Tout *d_offsets, Tin *d_pup,
235 template <
class Tout,
class Tin>
236 void pyr_getpup(Tout *d_odata, Tin *d_idata, Tin *d_pup,
int np,
int N,
237 float lambda,
float cx,
float cy,
CarmaDevice *device);
240 void pyr_rollmod(T *d_odata, T *d_idata, T *d_mask,
float cx,
float cy,
int np,
244 void pyr_fillbin(T *d_odata, T *d_idata,
int nrebin,
int np,
int ns,
int nim,
253 const int rebin,
const bool add,
CarmaDevice *device);
255 template <
class Tin,
class Tout>
256 void pyr_abs2(Tout *d_odata, Tin *d_idata, Tout fact,
int ns,
int nim,
259 template <
class Tout,
class Tin>
268 template <
class Tout,
class Tin>
269 void pyr_abs(Tout *d_odata, Tin *d_idata,
int ns,
int nim,
272 template <
class Tout,
class Tin>
287 void pyr_fact(cuFloatComplex *d_data,
float fact,
int n,
int nim,
289 void pyr_fact(
float *d_data,
float fact1,
float *fact2,
int n,
int nim,
292 template <
class Tin,
class Tout>
293 void roof_abs2(Tout *d_odata, Tin *d_idata, Tout fact,
int ns,
int nim,
301 void roof_rollmod(T *d_odata, T *d_idata, T *d_mask,
float cx,
float cy,
int np,
305 void roof_fillbin(T *d_odata, T *d_idata,
int nrebin,
int np,
int ns,
int nim,
309 float *img,
int *validx,
int *validy,
int Nim,
int Npix,
312 #endif // _SUTRA_WFS_H_
CarmaObj< cuFloatComplex > * d_ftkernel
CarmaHostObj< float > * image_telemetry
void phase_reduce(int threads, int blocks, T *d_idata, T *d_odata, int *indx, T alpha)
void copy_imgin_binimg(float *binimg, int *validsubsx, int *validsubsy, int Nb, float *img, int *validx, int *validy, int Nim, int Npix, CarmaDevice *device)
CarmaObj< int > * d_validsubsx
int indexfill(cuFloatComplex *d_odata, cuFloatComplex *d_idata, int *indx, int nx, int Nx, int N, CarmaDevice *device)
int slopes_geom(int type=0)
int sensor_trace(SutraDms *ydm, int rst)
int fillbincube_async(CarmaStreams *streams, float *bcube, cuFloatComplex *hrimage, int *indxpix, int Nfft, int Npix, int Nrebin, int Nsub, CarmaDevice *device)
int load_kernels(float *lgskern)
void roof_fillbin(T *d_odata, T *d_idata, int nrebin, int np, int ns, int nim, CarmaDevice *device)
CarmaObj< cuFloatComplex > * d_fttotim
void pyr_submaskpyr(T *d_odata, T *d_mask, int n, CarmaDevice *device)
int set_max_flux_per_pix(int max_flux_per_pix)
int digitalize(T *camimg, float *binimg, float *dark, float *flat, int max_flux_per_pix, int max_pix_value, int N, CarmaDevice *device)
CarmaObj< float > * d_intensities
void roof_abs2(Tout *d_odata, Tin *d_idata, Tout fact, int ns, int nim, CarmaDevice *device)
virtual int define_mpi_rank(int rank, int size)=0
this file provides tools to CarmaObj
void subap_reduce_async(int threads, int blocks, CarmaStreams *streams, T *d_idata, T *d_odata)
void pyr_getpup(Tout *d_odata, Tin *d_idata, Tout *d_offsets, Tin *d_pup, int np, float lambda, CarmaDevice *device)
CarmaObj< float > * d_offsets
int sensor_trace(int rst)
void pyr_intensities(T *d_odata, T *d_idata, int *subindx, int *subindy, int ns, int nvalid, int nim, CarmaDevice *device)
CarmaObj< int > * d_validsubsy
void subap_reduce(int size, int threads, int blocks, T *d_idata, T *d_odata, CarmaDevice *device)
int slopes_geom(float *slopes, int type=0)
int set_pupil(float *pupil)
virtual int comp_image(bool noise=true)=0
void pyr_submask3d(Tout *d_odata, Tin *d_mask, int n, int nim, CarmaDevice *device)
this class provides the wfs features to COMPASS
CarmaObj< float > * d_slopes
virtual int comp_generic()=0
CarmaObj< int > * d_hrmap
int set_dark(float *dark, int nElem)
this class provides the atmos features to COMPASS
int set_binimg(float *binimg, int nElem)
void pyr_fact(T *d_data, T fact, int n, int nim, CarmaDevice *device)
cufftHandle * fttotim_plan
int pyr_fillbinimg(T *bimage, const T *bcube, const int nxsub, const bool add, CarmaDevice *device)
void roof_intensities(T *d_odata, T *d_idata, int *subindx, int *subindy, int ns, int nvalid, int nim, CarmaDevice *device)
int fillbinimg_async(CarmaStreams *streams, CarmaObj< float > *bimage, CarmaObj< float > *bcube, int npix, int nsub, int Nsub, int *ivalid, int *jvalid, bool add, CarmaDevice *device)
CarmaObj< float > * d_binimg_notnoisy
this class provides the stream features to CarmaObj
this class provides the telescope features to COMPASS
virtual int allocate_buffers(map< vector< int >, cufftHandle * > campli_plans, map< vector< int >, cufftHandle * > fttotim_plans)=0
CarmaObj< float > * d_dark
void pyr_submask(Tout *d_odata, Tin *d_mask, int n, CarmaDevice *device)
this class provides the context in which CarmaObj are created
void pyr_abs(Tout *d_odata, Tin *d_idata, int ns, int nim, CarmaDevice *device)
int convolve_cube(cuFloatComplex *d_odata, cuFloatComplex *d_idata, int N, int n, CarmaDevice *device)
CarmaObj< int > * d_phasemap
int fillcamplipup(cuFloatComplex *amplipup, float *phase, float *offset, float *mask, float scale, int *istart, int *jstart, int *ivalid, int *jvalid, int nphase, int npup, int Nfft, int Ntot, CarmaDevice *device, int offset_phase)
int set_flat(float *flat, int nElem)
SutraWfs(CarmaContext *context, SutraTelescope *d_tel, CarmaObj< cuFloatComplex > *d_camplipup, CarmaObj< cuFloatComplex > *d_camplifoc, CarmaObj< cuFloatComplex > *d_fttotim, string type, long nxsub, long nvalid, long npix, long nphase, long nrebin, long nfft, long ntot, long npup, float pdiam, float nphotons, float nphot4imat, int lgs, bool fakecam, int max_flux_per_pix, int max_pix_value, bool is_low_order, bool roket, int device)
CarmaObj< float > * d_fluxPerSub
int sensor_trace(SutraAtmos *atmos, SutraDms *ydms)
int set_max_pix_value(int max_pix_value)
void pyr_fillbin(T *d_odata, T *d_idata, int nrebin, int np, int ns, int nim, CarmaDevice *device)
CarmaObj< cuFloatComplex > * d_camplifoc
int set_fakecam(bool fakecam)
CarmaObj< float > * d_binimg
void roof_rollmod(T *d_odata, T *d_idata, T *d_mask, float cx, float cy, int np, int ns, CarmaDevice *device)
void pyr_abs2(Tout *d_odata, Tin *d_idata, Tout fact, int ns, int nim, CarmaDevice *device)
cufftHandle * campli_plan
void phase_derive(int size, int threads, int blocks, int n, T *d_idata, T *d_odata, int *indx, T *mask, T alpha, float *fluxPerSub)
CarmaObj< float > * d_flat
virtual int fill_binimage(int async)=0
CarmaObj< float > * d_sincar
CarmaObj< float > * d_bincube
CarmaObj< cuFloatComplex > * d_camplipup
int fillbinimg(float *bimage, float *bcube, int npix, int nsub, int Nsub, int *ivalid, int *jvalid, bool add, CarmaDevice *device)
this class provides the source features to COMPASS
std::vector< CarmaObj< float > * > d_pupil_ngpu
CarmaObj< float > * d_pupil
int set_noise(float noise, long seed)
int fillbincube(float *bcube, cuFloatComplex *hrimage, int *indxpix, int Nfft, int Npix, int Nrebin, int Nsub, CarmaDevice *device)
void subap_reduce_new(int size, int threads, int blocks, T *d_idata, T *d_odata, T thresh, CarmaDevice *device)
int wfs_initgs(CarmaObj< float > *d_lgskern, CarmaObj< cuFloatComplex > *d_ftlgskern, map< vector< int >, cufftHandle * > ftlgskern_plans, float xpos, float ypos, float lambda, float mag, float zerop, long size, float noise, long seed, float G, float thetaML, float dx, float dy)
int sensor_trace(SutraAtmos *yatmos)
CarmaContext * current_context
CarmaObj< uint16_t > * d_camimg
void pyr_rollmod(T *d_odata, T *d_idata, T *d_mask, float cx, float cy, int np, int ns, CarmaDevice *device)