COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
sutra_controller_generic< Tcomp, Tout > Class Template Reference

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

#include <sutra_controller_generic.h>

Inheritance diagram for sutra_controller_generic< Tcomp, Tout >:
Collaboration diagram for sutra_controller_generic< Tcomp, Tout >:

Public Member Functions

 sutra_controller_generic (CarmaContext *context, long nslope, long nactu, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro, int nstates)
 
 sutra_controller_generic (const sutra_controller_generic &controller)
 
 ~sutra_controller_generic ()
 
string get_type ()
 
string get_commandlaw ()
 
int set_decayFactor (float *decayFactor)
 
int set_modal_gains (float *gain)
 
int set_cmat (float *cmat)
 
int set_matE (float *matE)
 
int set_commandlaw (string law)
 
int set_polc (bool p)
 
int set_imat (float *imat)
 
int set_leaky_factor (Tcomp factor)
 
int comp_polc ()
 
int comp_com ()
 !!! YOU MUST set d_centroids before calling it!!!! More...
 
int fill_cmatPadded ()
 
int distribute_cmat ()
 
- Public Member Functions inherited from SutraController< Tcomp, Tout >
 SutraController (CarmaContext *context, int nslope, int nactu, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro)
 
virtual ~SutraController ()
 
int nactu ()
 
int nslope ()
 
cublasHandle_t cublas_handle ()
 
void init_voltage ()
 
int set_centroids_ref (Tcomp *centroids_ref)
 
int add_perturb_voltage (string name, float *perturb, int N)
 
int set_perturb_voltage (string name, float *perturb, int N)
 
int remove_perturb_voltage (string name)
 
int reset_perturb_voltage ()
 
int enable_perturb_voltage (string name)
 
int disable_perturb_voltage (string name)
 
int set_com (float *com, int nElem)
 
int set_open_loop (int open_loop_status, bool rst=true)
 
int clip_commands ()
 
int comp_voltage ()
 
int comp_latency ()
 
int set_delay (float delay)
 
int set_volt_min (float volt_min)
 
int set_volt_max (float volt_max)
 
int set_val_max (float val_max)
 
int set_gain (float gain)
 
int reset_coms ()
 
int command_delay ()
 
int add_perturb ()
 
int comp_polc (CarmaObj< Tcomp > &sk, CarmaObj< Tcomp > &iMat, CarmaObj< Tcomp > &ol_meas)
 Compute the open loop measurements and effective commands. More...
 

Public Attributes

CarmaObj< Tcomp > * d_matE
 
CarmaObj< Tcomp > * d_cmat
 
CarmaObj< Tcomp > * d_cmatPadded
 
CarmaObj< Tcomp > * d_gain
 
CarmaObj< Tcomp > * d_decayFactor
 
CarmaObj< Tcomp > * d_compbuff
 
CarmaObj< Tcomp > * d_compbuff2
 
CarmaObj< Tcomp > * d_olmeas
 
CarmaObj< Tcomp > * d_imat
 
std::vector< CarmaObj< Tcomp > * > d_err_ngpu
 
std::vector< CarmaObj< Tcomp > * > d_centroids_ngpu
 
std::vector< CarmaObj< Tcomp > * > d_cmat_ngpu
 
std::vector< int > P2Pdevices
 
std::vector< cudaEvent_t > events
 
cudaEvent_t start_mvm_event
 
std::vector< cudaStream_t > streams
 
bool polc
 
int nstates
 
Tcomp leaky_factor
 
string command_law
 
- Public Attributes inherited from SutraController< Tcomp, Tout >
CarmaContextcurrent_context
 
int device
 
int open_loop
 
Tcomp delay
 
Tcomp gain
 
float volt_min
 
float volt_max
 
int nactus
 
int nslopes
 
Tout val_max
 
Tcomp a
 
Tcomp b
 
Tcomp c
 
vector< SutraDm * > d_dmseen
 
CarmaObj< Tcomp > * d_centroids
 
CarmaObj< Tcomp > * d_centroids_padded
 
CarmaObj< Tcomp > * d_com
 
CarmaObj< Tcomp > * d_com_padded
 
CarmaObj< Tcomp > * d_com_clipped
 
CarmaObj< Tout > * d_voltage
 
CarmaObj< Tcomp > * d_com1
 
vector< int > centro_idx
 
std::deque< CarmaObj< Tcomp > * > d_circular_coms
 
map< string, tuple< CarmaObj< Tcomp > *, int, bool > > d_perturb_map
 
cudaStream_t mainStream
 

Additional Inherited Members

- Protected Attributes inherited from SutraController< Tcomp, Tout >
mutex comp_voltage_mutex
 

Detailed Description

template<typename Tcomp, typename Tout>
class sutra_controller_generic< Tcomp, Tout >

this class provides the controller_generic features to COMPASS

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

Definition at line 24 of file sutra_controller_generic.h.

Constructor & Destructor Documentation

◆ sutra_controller_generic() [1/2]

template<typename Tcomp , typename Tout >
sutra_controller_generic< Tcomp, Tout >::sutra_controller_generic ( CarmaContext context,
long  nslope,
long  nactu,
float  delay,
SutraDms dms,
int *  idx_dms,
int  ndm,
int *  idx_centro,
int  ncentro,
int  nstates 
)

◆ sutra_controller_generic() [2/2]

template<typename Tcomp , typename Tout >
sutra_controller_generic< Tcomp, Tout >::sutra_controller_generic ( const sutra_controller_generic< Tcomp, Tout > &  controller)

◆ ~sutra_controller_generic()

template<typename Tcomp , typename Tout >
sutra_controller_generic< Tcomp, Tout >::~sutra_controller_generic ( )

Member Function Documentation

◆ comp_com()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::comp_com ( )
virtual

!!! YOU MUST set d_centroids before calling it!!!!

Implements SutraController< Tcomp, Tout >.

◆ comp_polc()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::comp_polc ( )

◆ distribute_cmat()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::distribute_cmat ( )

◆ fill_cmatPadded()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::fill_cmatPadded ( )

◆ get_commandlaw()

template<typename Tcomp , typename Tout >
string sutra_controller_generic< Tcomp, Tout >::get_commandlaw ( )

◆ get_type()

template<typename Tcomp , typename Tout >
string sutra_controller_generic< Tcomp, Tout >::get_type ( )
virtual

◆ set_cmat()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_cmat ( float *  cmat)

◆ set_commandlaw()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_commandlaw ( string  law)

◆ set_decayFactor()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_decayFactor ( float *  decayFactor)

◆ set_imat()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_imat ( float *  imat)

◆ set_leaky_factor()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_leaky_factor ( Tcomp  factor)

◆ set_matE()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_matE ( float *  matE)

◆ set_modal_gains()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_modal_gains ( float *  gain)

◆ set_polc()

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::set_polc ( bool  p)

Member Data Documentation

◆ command_law

template<typename Tcomp , typename Tout >
string sutra_controller_generic< Tcomp, Tout >::command_law

Definition at line 45 of file sutra_controller_generic.h.

◆ d_centroids_ngpu

template<typename Tcomp , typename Tout >
std::vector<CarmaObj<Tcomp> *> sutra_controller_generic< Tcomp, Tout >::d_centroids_ngpu

Definition at line 36 of file sutra_controller_generic.h.

◆ d_cmat

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_cmat

Definition at line 27 of file sutra_controller_generic.h.

◆ d_cmat_ngpu

template<typename Tcomp , typename Tout >
std::vector<CarmaObj<Tcomp> *> sutra_controller_generic< Tcomp, Tout >::d_cmat_ngpu

Definition at line 37 of file sutra_controller_generic.h.

◆ d_cmatPadded

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_cmatPadded

Definition at line 28 of file sutra_controller_generic.h.

◆ d_compbuff

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_compbuff

Definition at line 31 of file sutra_controller_generic.h.

◆ d_compbuff2

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_compbuff2

Definition at line 32 of file sutra_controller_generic.h.

◆ d_decayFactor

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_decayFactor

Definition at line 30 of file sutra_controller_generic.h.

◆ d_err_ngpu

template<typename Tcomp , typename Tout >
std::vector<CarmaObj<Tcomp> *> sutra_controller_generic< Tcomp, Tout >::d_err_ngpu

Definition at line 35 of file sutra_controller_generic.h.

◆ d_gain

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_gain

Definition at line 29 of file sutra_controller_generic.h.

◆ d_imat

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_imat

Definition at line 34 of file sutra_controller_generic.h.

◆ d_matE

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_matE

Definition at line 26 of file sutra_controller_generic.h.

◆ d_olmeas

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* sutra_controller_generic< Tcomp, Tout >::d_olmeas

Definition at line 33 of file sutra_controller_generic.h.

◆ events

template<typename Tcomp , typename Tout >
std::vector<cudaEvent_t> sutra_controller_generic< Tcomp, Tout >::events

Definition at line 39 of file sutra_controller_generic.h.

◆ leaky_factor

template<typename Tcomp , typename Tout >
Tcomp sutra_controller_generic< Tcomp, Tout >::leaky_factor

Definition at line 44 of file sutra_controller_generic.h.

◆ nstates

template<typename Tcomp , typename Tout >
int sutra_controller_generic< Tcomp, Tout >::nstates

Definition at line 43 of file sutra_controller_generic.h.

◆ P2Pdevices

template<typename Tcomp , typename Tout >
std::vector<int> sutra_controller_generic< Tcomp, Tout >::P2Pdevices

Definition at line 38 of file sutra_controller_generic.h.

◆ polc

template<typename Tcomp , typename Tout >
bool sutra_controller_generic< Tcomp, Tout >::polc

Definition at line 42 of file sutra_controller_generic.h.

◆ start_mvm_event

template<typename Tcomp , typename Tout >
cudaEvent_t sutra_controller_generic< Tcomp, Tout >::start_mvm_event

Definition at line 40 of file sutra_controller_generic.h.

◆ streams

template<typename Tcomp , typename Tout >
std::vector<cudaStream_t> sutra_controller_generic< Tcomp, Tout >::streams

Definition at line 41 of file sutra_controller_generic.h.


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