COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
SutraWfs Class Referenceabstract

this class provides the wfs features to COMPASS More...

#include <sutra_wfs.h>

Inheritance diagram for SutraWfs:
Collaboration diagram for SutraWfs:

Public Member Functions

virtual ~SutraWfs ()
 
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 set_pupil (float *pupil)
 
int set_binimg (float *binimg, int nElem)
 
int set_dark (float *dark, int nElem)
 
int set_flat (float *flat, int nElem)
 
int set_fakecam (bool fakecam)
 
int set_max_flux_per_pix (int max_flux_per_pix)
 
int set_max_pix_value (int max_pix_value)
 
int load_kernels (float *lgskern)
 
int sensor_trace (SutraAtmos *yatmos)
 
int sensor_trace (SutraDms *ydm, int rst)
 
int sensor_trace (SutraAtmos *atmos, SutraDms *ydms)
 
int sensor_trace (int rst)
 
int slopes_geom (float *slopes, int type=0)
 
int slopes_geom (int type=0)
 
virtual int fill_binimage (int async)=0
 
virtual int comp_image (bool noise=true)=0
 
virtual int define_mpi_rank (int rank, int size)=0
 
virtual int allocate_buffers (map< vector< int >, cufftHandle * > campli_plans, map< vector< int >, cufftHandle * > fttotim_plans)=0
 
int set_noise (float noise, long seed)
 

Public Attributes

int device
 
string type
 
long nxsub
 
long nvalid
 
long npix
 
long nrebin
 
long nfft
 
long ntot
 
long npup
 
long nphase
 
long nmaxhr
 
long nffthr
 
float subapd
 
float nphot
 
float nphot4imat
 
float noise
 
bool lgs
 
bool kernconv
 
bool roket
 
bool is_low_order
 
bool fakecam
 
int max_flux_per_pix
 
int max_pix_value
 
cufftHandle * campli_plan
 
cufftHandle * fttotim_plan
 
CarmaObj< cuFloatComplex > * d_ftkernel
 
CarmaObj< cuFloatComplex > * d_camplipup
 
CarmaObj< cuFloatComplex > * d_camplifoc
 
CarmaObj< cuFloatComplex > * d_fttotim
 
CarmaObj< float > * d_pupil
 
CarmaObj< float > * d_bincube
 
CarmaObj< float > * d_binimg
 
CarmaObj< float > * d_binimg_notnoisy
 
CarmaObj< float > * d_intensities
 
CarmaObj< float > * d_offsets
 
CarmaObj< float > * d_fluxPerSub
 
CarmaObj< float > * d_sincar
 
CarmaObj< int > * d_hrmap
 
CarmaObj< uint16_t > * d_camimg
 
CarmaObj< float > * d_dark
 
CarmaObj< float > * d_flat
 
CarmaObj< float > * d_slopes
 
CarmaHostObj< float > * image_telemetry
 
SutraSourced_gs
 
std::vector< CarmaObj< float > * > d_pupil_ngpu
 
CarmaStreamsstreams
 
int nstreams
 
CarmaObj< int > * d_phasemap
 
CarmaObj< float > * d_ttprojmat
 
CarmaObj< float > * d_ttprojvec
 
CarmaObj< int > * d_validsubsx
 
CarmaObj< int > * d_validsubsy
 
CarmaObj< float > * d_submask
 
CarmaContextcurrent_context
 
int offset
 MPI stuff. More...
 
int nvalid_tot
 
int rank
 
int * displ_bincube
 
int * count_bincube
 

Protected Member Functions

virtual int comp_generic ()=0
 
 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)
 

Detailed Description

this class provides the wfs features to COMPASS

Author
COMPASS Team https://github.com/ANR-COMPASS
Version
5.4.4
Date
2022/01/24

Definition at line 35 of file sutra_wfs.h.

Constructor & Destructor Documentation

◆ ~SutraWfs()

virtual SutraWfs::~SutraWfs ( )
virtual

Definition at line 109 of file sutra_wfs.h.

◆ SutraWfs()

SutraWfs::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 
)
protected

Member Function Documentation

◆ allocate_buffers()

virtual int SutraWfs::allocate_buffers ( map< vector< int >, cufftHandle * >  campli_plans,
map< vector< int >, cufftHandle * >  fttotim_plans 
)
pure virtual

Implemented in SutraWfsSH, SutraWfs_PyrHR, and SutraWfsGeom.

◆ comp_generic()

virtual int SutraWfs::comp_generic ( )
protectedpure virtual

◆ comp_image()

virtual int SutraWfs::comp_image ( bool  noise = true)
pure virtual

Implemented in SutraWfsSH, and SutraWfs_PyrHR.

◆ define_mpi_rank()

virtual int SutraWfs::define_mpi_rank ( int  rank,
int  size 
)
pure virtual

Implemented in SutraWfsSH, SutraWfs_PyrHR, and SutraWfsGeom.

◆ fill_binimage()

virtual int SutraWfs::fill_binimage ( int  async)
pure virtual

Implemented in SutraWfs_PyrHR, SutraWfsSH, and SutraWfsGeom.

◆ load_kernels()

int SutraWfs::load_kernels ( float *  lgskern)

◆ sensor_trace() [1/4]

int SutraWfs::sensor_trace ( int  rst)

◆ sensor_trace() [2/4]

int SutraWfs::sensor_trace ( SutraAtmos atmos,
SutraDms ydms 
)

◆ sensor_trace() [3/4]

int SutraWfs::sensor_trace ( SutraAtmos yatmos)

◆ sensor_trace() [4/4]

int SutraWfs::sensor_trace ( SutraDms ydm,
int  rst 
)

◆ set_binimg()

int SutraWfs::set_binimg ( float *  binimg,
int  nElem 
)

◆ set_dark()

int SutraWfs::set_dark ( float *  dark,
int  nElem 
)

◆ set_fakecam()

int SutraWfs::set_fakecam ( bool  fakecam)

◆ set_flat()

int SutraWfs::set_flat ( float *  flat,
int  nElem 
)

◆ set_max_flux_per_pix()

int SutraWfs::set_max_flux_per_pix ( int  max_flux_per_pix)

◆ set_max_pix_value()

int SutraWfs::set_max_pix_value ( int  max_pix_value)

◆ set_noise()

int SutraWfs::set_noise ( float  noise,
long  seed 
)

◆ set_pupil()

int SutraWfs::set_pupil ( float *  pupil)

◆ slopes_geom() [1/2]

int SutraWfs::slopes_geom ( float *  slopes,
int  type = 0 
)

◆ slopes_geom() [2/2]

int SutraWfs::slopes_geom ( int  type = 0)

◆ wfs_initgs()

int SutraWfs::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 
)

Member Data Documentation

◆ campli_plan

cufftHandle* SutraWfs::campli_plan

Definition at line 62 of file sutra_wfs.h.

◆ count_bincube

int* SutraWfs::count_bincube

Definition at line 106 of file sutra_wfs.h.

◆ current_context

CarmaContext* SutraWfs::current_context

Definition at line 99 of file sutra_wfs.h.

◆ d_bincube

CarmaObj<float>* SutraWfs::d_bincube

Definition at line 70 of file sutra_wfs.h.

◆ d_binimg

CarmaObj<float>* SutraWfs::d_binimg

Definition at line 71 of file sutra_wfs.h.

◆ d_binimg_notnoisy

CarmaObj<float>* SutraWfs::d_binimg_notnoisy

Definition at line 72 of file sutra_wfs.h.

◆ d_camimg

CarmaObj<uint16_t>* SutraWfs::d_camimg

Definition at line 78 of file sutra_wfs.h.

◆ d_camplifoc

CarmaObj<cuFloatComplex>* SutraWfs::d_camplifoc

Definition at line 66 of file sutra_wfs.h.

◆ d_camplipup

CarmaObj<cuFloatComplex>* SutraWfs::d_camplipup

Definition at line 65 of file sutra_wfs.h.

◆ d_dark

CarmaObj<float>* SutraWfs::d_dark

Definition at line 79 of file sutra_wfs.h.

◆ d_flat

CarmaObj<float>* SutraWfs::d_flat

Definition at line 80 of file sutra_wfs.h.

◆ d_fluxPerSub

CarmaObj<float>* SutraWfs::d_fluxPerSub

Definition at line 75 of file sutra_wfs.h.

◆ d_ftkernel

CarmaObj<cuFloatComplex>* SutraWfs::d_ftkernel

Definition at line 64 of file sutra_wfs.h.

◆ d_fttotim

CarmaObj<cuFloatComplex>* SutraWfs::d_fttotim

Definition at line 67 of file sutra_wfs.h.

◆ d_gs

SutraSource* SutraWfs::d_gs

Definition at line 86 of file sutra_wfs.h.

◆ d_hrmap

CarmaObj<int>* SutraWfs::d_hrmap

Definition at line 77 of file sutra_wfs.h.

◆ d_intensities

CarmaObj<float>* SutraWfs::d_intensities

Definition at line 73 of file sutra_wfs.h.

◆ d_offsets

CarmaObj<float>* SutraWfs::d_offsets

Definition at line 74 of file sutra_wfs.h.

◆ d_phasemap

CarmaObj<int>* SutraWfs::d_phasemap

Definition at line 92 of file sutra_wfs.h.

◆ d_pupil

CarmaObj<float>* SutraWfs::d_pupil

Definition at line 69 of file sutra_wfs.h.

◆ d_pupil_ngpu

std::vector<CarmaObj<float> *> SutraWfs::d_pupil_ngpu

Definition at line 87 of file sutra_wfs.h.

◆ d_sincar

CarmaObj<float>* SutraWfs::d_sincar

Definition at line 76 of file sutra_wfs.h.

◆ d_slopes

CarmaObj<float>* SutraWfs::d_slopes

Definition at line 82 of file sutra_wfs.h.

◆ d_submask

CarmaObj<float>* SutraWfs::d_submask

Definition at line 97 of file sutra_wfs.h.

◆ d_ttprojmat

CarmaObj<float>* SutraWfs::d_ttprojmat

Definition at line 93 of file sutra_wfs.h.

◆ d_ttprojvec

CarmaObj<float>* SutraWfs::d_ttprojvec

Definition at line 94 of file sutra_wfs.h.

◆ d_validsubsx

CarmaObj<int>* SutraWfs::d_validsubsx

Definition at line 95 of file sutra_wfs.h.

◆ d_validsubsy

CarmaObj<int>* SutraWfs::d_validsubsy

Definition at line 96 of file sutra_wfs.h.

◆ device

int SutraWfs::device

Definition at line 37 of file sutra_wfs.h.

◆ displ_bincube

int* SutraWfs::displ_bincube

Definition at line 105 of file sutra_wfs.h.

◆ fakecam

bool SutraWfs::fakecam

Definition at line 58 of file sutra_wfs.h.

◆ fttotim_plan

cufftHandle* SutraWfs::fttotim_plan

Definition at line 63 of file sutra_wfs.h.

◆ image_telemetry

CarmaHostObj<float>* SutraWfs::image_telemetry

Definition at line 84 of file sutra_wfs.h.

◆ is_low_order

bool SutraWfs::is_low_order

Definition at line 56 of file sutra_wfs.h.

◆ kernconv

bool SutraWfs::kernconv

Definition at line 54 of file sutra_wfs.h.

◆ lgs

bool SutraWfs::lgs

Definition at line 53 of file sutra_wfs.h.

◆ max_flux_per_pix

int SutraWfs::max_flux_per_pix

Definition at line 59 of file sutra_wfs.h.

◆ max_pix_value

int SutraWfs::max_pix_value

Definition at line 60 of file sutra_wfs.h.

◆ nfft

long SutraWfs::nfft

Definition at line 43 of file sutra_wfs.h.

◆ nffthr

long SutraWfs::nffthr

Definition at line 48 of file sutra_wfs.h.

◆ nmaxhr

long SutraWfs::nmaxhr

Definition at line 47 of file sutra_wfs.h.

◆ noise

float SutraWfs::noise

Definition at line 52 of file sutra_wfs.h.

◆ nphase

long SutraWfs::nphase

Definition at line 46 of file sutra_wfs.h.

◆ nphot

float SutraWfs::nphot

Definition at line 50 of file sutra_wfs.h.

◆ nphot4imat

float SutraWfs::nphot4imat

Definition at line 51 of file sutra_wfs.h.

◆ npix

long SutraWfs::npix

Definition at line 41 of file sutra_wfs.h.

◆ npup

long SutraWfs::npup

Definition at line 45 of file sutra_wfs.h.

◆ nrebin

long SutraWfs::nrebin

Definition at line 42 of file sutra_wfs.h.

◆ nstreams

int SutraWfs::nstreams

Definition at line 90 of file sutra_wfs.h.

◆ ntot

long SutraWfs::ntot

Definition at line 44 of file sutra_wfs.h.

◆ nvalid

long SutraWfs::nvalid

Definition at line 40 of file sutra_wfs.h.

◆ nvalid_tot

int SutraWfs::nvalid_tot

Definition at line 103 of file sutra_wfs.h.

◆ nxsub

long SutraWfs::nxsub

Definition at line 39 of file sutra_wfs.h.

◆ offset

int SutraWfs::offset

MPI stuff.

Definition at line 102 of file sutra_wfs.h.

◆ rank

int SutraWfs::rank

Definition at line 104 of file sutra_wfs.h.

◆ roket

bool SutraWfs::roket

Definition at line 55 of file sutra_wfs.h.

◆ streams

CarmaStreams* SutraWfs::streams

Definition at line 89 of file sutra_wfs.h.

◆ subapd

float SutraWfs::subapd

Definition at line 49 of file sutra_wfs.h.

◆ type

string SutraWfs::type

Definition at line 38 of file sutra_wfs.h.


The documentation for this class was generated from the following file: