COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
sutra_controller_geo.h
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------
2 // This file is part of COMPASS <https://anr-compass.github.io/compass/>
3 //
4 // Copyright (C) 2011-2023 COMPASS Team <https://github.com/ANR-COMPASS>
5 // All rights reserved.
6 
7 // -----------------------------------------------------------------------------
8 
16 
17 #ifndef SUTRA_CONTROLLER_GEO_H_
18 #define SUTRA_CONTROLLER_GEO_H_
19 
20 #include <sutra_controller.h>
21 
22 template <typename Tcomp, typename Tout>
23 class sutra_controller_geo : public SutraController<Tcomp, Tout> {
24  public:
25  long Nphi;
26  int Ntt;
27 
40  // CarmaObj<T> *d_Btt;
41  // CarmaObj<T> *d_cenbuff; // centroids circular buffer
42 
43  public:
45  float delay, SutraDms *dms, int *idx_dms, int ndm,
46  int *idx_centro, int ncentro, bool wfs_direction);
49 
50  string get_type();
51 
52  cusparseHandle_t cusparse_handle() {
53  return this->current_context->get_cusparse_handle();
54  }
55  int load_Btt(Tcomp *Btt_pzt, Tcomp *Btt_TT);
56  int load_mgain(Tcomp *mgain);
57  int comp_dphi(SutraSource *target, bool wfs_direction);
58  int comp_com();
59  int init_proj(SutraDms *dms, int *indx_dm, Tcomp *unitpervolt,
60  int *indx_pup);
61  int init_proj_sparse(SutraDms *dms, int *indx_dm, Tcomp *unitpervolt,
62  int *indx_pup, int *indx_mpup, bool roket);
63 };
64 
65 #endif /* SUTRA_CONTROLLER_GEO_H_ */
this class provides the context in which CarmaObj are created
Definition: carma_context.h:79
cusparseHandle_t get_cusparse_handle()
this class provides the controller features to COMPASS
CarmaContext * current_context
this class provides the source features to COMPASS
Definition: sutra_source.h:37
this class provides the controller_geo features to COMPASS
CarmaObj< int > * d_indx_mpup
CarmaObj< Tcomp > * d_gain
CarmaObj< int > * d_indx_pup
int load_mgain(Tcomp *mgain)
CarmaObj< Tcomp > * d_geocov
CarmaObj< Tcomp > * d_proj
int comp_dphi(SutraSource *target, bool wfs_direction)
CarmaObj< double > * d_phi
CarmaSparseObj< double > * d_IFsparse
int init_proj(SutraDms *dms, int *indx_dm, Tcomp *unitpervolt, int *indx_pup)
CarmaObj< double > * d_compdouble
sutra_controller_geo(const sutra_controller_geo &controller)
CarmaObj< float > * d_compfloat
CarmaObj< Tcomp > * d_TT
int init_proj_sparse(SutraDms *dms, int *indx_dm, Tcomp *unitpervolt, int *indx_pup, int *indx_mpup, bool roket)
CarmaObj< Tcomp > * d_phif
sutra_controller_geo(CarmaContext *context, long nactu, long Nphi, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro, bool wfs_direction)
CarmaObj< Tcomp > * d_geocovTT
int comp_com()
!!! YOU MUST set d_centroids before calling it!!!!
cusparseHandle_t cusparse_handle()
int load_Btt(Tcomp *Btt_pzt, Tcomp *Btt_TT)