COMPASS  5.0.0
End-to-end AO simulation tool using GPU acceleration
SutraController< Tcomp, Tout > Class Template Referenceabstract

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

#include <sutra_controller.h>

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

Public Member Functions

 SutraController (CarmaContext *context, int nvalid, int nslope, int nactu, float delay, SutraDms *dms, int *idx_dms, int ndm, int *idx_centro, int ncentro)
 
virtual ~SutraController ()
 
virtual string get_type ()=0
 
virtual int comp_com ()=0
 !!! YOU MUST set d_centroids before calling it!!!! More...
 
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 ()
 

Public Attributes

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
 
CarmaStreamsstreams
 

Protected Attributes

mutex comp_voltage_mutex
 

Detailed Description

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

this class provides the controller features to COMPASS

Author
COMPASS Team https://github.com/ANR-COMPASS
Version
5.0.0
Date
2011/01/28

Definition at line 73 of file sutra_controller.h.

Constructor & Destructor Documentation

◆ SutraController()

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

◆ ~SutraController()

template<typename Tcomp , typename Tout >
virtual SutraController< Tcomp, Tout >::~SutraController ( )
virtual

Member Function Documentation

◆ add_perturb()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::add_perturb ( )

◆ add_perturb_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::add_perturb_voltage ( string  name,
float *  perturb,
int  N 
)

◆ clip_commands()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::clip_commands ( )

◆ command_delay()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::command_delay ( )

◆ comp_com()

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

◆ comp_latency()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::comp_latency ( )

◆ comp_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::comp_voltage ( )

◆ cublas_handle()

template<typename Tcomp , typename Tout >
cublasHandle_t SutraController< Tcomp, Tout >::cublas_handle ( )

Definition at line 126 of file sutra_controller.h.

126 { return current_context->get_cublas_handle(); }

◆ disable_perturb_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::disable_perturb_voltage ( string  name)

◆ enable_perturb_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::enable_perturb_voltage ( string  name)

◆ get_type()

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

◆ init_voltage()

template<typename Tcomp , typename Tout >
void SutraController< Tcomp, Tout >::init_voltage ( )

Definition at line 128 of file sutra_controller.h.

128  {
129  init_voltage_impl<Tcomp, Tout>(this->d_voltage, this->d_com_clipped);
130  };

◆ nactu()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::nactu ( )

Definition at line 123 of file sutra_controller.h.

123 { return this->nactus; }

◆ nslope()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::nslope ( )

Definition at line 124 of file sutra_controller.h.

124 { return this->nslopes; }

◆ remove_perturb_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::remove_perturb_voltage ( string  name)

◆ reset_coms()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::reset_coms ( )

◆ reset_perturb_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::reset_perturb_voltage ( )

◆ set_centroids_ref()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_centroids_ref ( Tcomp *  centroids_ref)

◆ set_com()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_com ( float *  com,
int  nElem 
)

◆ set_delay()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_delay ( float  delay)

◆ set_gain()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_gain ( float  gain)

◆ set_open_loop()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_open_loop ( int  open_loop_status,
bool  rst = true 
)

◆ set_perturb_voltage()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_perturb_voltage ( string  name,
float *  perturb,
int  N 
)

◆ set_val_max()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_val_max ( float  val_max)

◆ set_volt_max()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_volt_max ( float  volt_max)

◆ set_volt_min()

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::set_volt_min ( float  volt_min)

Member Data Documentation

◆ a

template<typename Tcomp , typename Tout >
Tcomp SutraController< Tcomp, Tout >::a

Definition at line 86 of file sutra_controller.h.

◆ b

template<typename Tcomp , typename Tout >
Tcomp SutraController< Tcomp, Tout >::b

Definition at line 88 of file sutra_controller.h.

◆ c

template<typename Tcomp , typename Tout >
Tcomp SutraController< Tcomp, Tout >::c

Definition at line 90 of file sutra_controller.h.

◆ centro_idx

template<typename Tcomp , typename Tout >
vector<int> SutraController< Tcomp, Tout >::centro_idx

Definition at line 100 of file sutra_controller.h.

◆ comp_voltage_mutex

template<typename Tcomp , typename Tout >
mutex SutraController< Tcomp, Tout >::comp_voltage_mutex
protected

Definition at line 158 of file sutra_controller.h.

◆ current_context

template<typename Tcomp , typename Tout >
CarmaContext* SutraController< Tcomp, Tout >::current_context

Definition at line 75 of file sutra_controller.h.

◆ d_centroids

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* SutraController< Tcomp, Tout >::d_centroids

Definition at line 93 of file sutra_controller.h.

◆ d_centroids_padded

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* SutraController< Tcomp, Tout >::d_centroids_padded

Definition at line 94 of file sutra_controller.h.

◆ d_circular_coms

template<typename Tcomp , typename Tout >
std::deque<CarmaObj<Tcomp> *> SutraController< Tcomp, Tout >::d_circular_coms

Definition at line 101 of file sutra_controller.h.

◆ d_com

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* SutraController< Tcomp, Tout >::d_com

Definition at line 95 of file sutra_controller.h.

◆ d_com1

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* SutraController< Tcomp, Tout >::d_com1

Definition at line 99 of file sutra_controller.h.

◆ d_com_clipped

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* SutraController< Tcomp, Tout >::d_com_clipped

Definition at line 97 of file sutra_controller.h.

◆ d_com_padded

template<typename Tcomp , typename Tout >
CarmaObj<Tcomp>* SutraController< Tcomp, Tout >::d_com_padded

Definition at line 96 of file sutra_controller.h.

◆ d_dmseen

template<typename Tcomp , typename Tout >
vector<SutraDm *> SutraController< Tcomp, Tout >::d_dmseen

Definition at line 92 of file sutra_controller.h.

◆ d_perturb_map

template<typename Tcomp , typename Tout >
map<string, tuple<CarmaObj<Tcomp> *, int, bool> > SutraController< Tcomp, Tout >::d_perturb_map

Definition at line 104 of file sutra_controller.h.

◆ d_voltage

template<typename Tcomp , typename Tout >
CarmaObj<Tout>* SutraController< Tcomp, Tout >::d_voltage

Definition at line 98 of file sutra_controller.h.

◆ delay

template<typename Tcomp , typename Tout >
Tcomp SutraController< Tcomp, Tout >::delay

Definition at line 79 of file sutra_controller.h.

◆ device

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::device

Definition at line 76 of file sutra_controller.h.

◆ gain

template<typename Tcomp , typename Tout >
Tcomp SutraController< Tcomp, Tout >::gain

Definition at line 80 of file sutra_controller.h.

◆ nactus

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::nactus

Definition at line 83 of file sutra_controller.h.

◆ nslopes

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::nslopes

Definition at line 84 of file sutra_controller.h.

◆ open_loop

template<typename Tcomp , typename Tout >
int SutraController< Tcomp, Tout >::open_loop

Definition at line 78 of file sutra_controller.h.

◆ streams

template<typename Tcomp , typename Tout >
CarmaStreams* SutraController< Tcomp, Tout >::streams

Definition at line 107 of file sutra_controller.h.

◆ val_max

template<typename Tcomp , typename Tout >
Tout SutraController< Tcomp, Tout >::val_max

Definition at line 85 of file sutra_controller.h.

◆ volt_max

template<typename Tcomp , typename Tout >
float SutraController< Tcomp, Tout >::volt_max

Definition at line 82 of file sutra_controller.h.

◆ volt_min

template<typename Tcomp , typename Tout >
float SutraController< Tcomp, Tout >::volt_min

Definition at line 81 of file sutra_controller.h.


The documentation for this class was generated from the following file:
SutraController::d_voltage
CarmaObj< Tout > * d_voltage
Definition: sutra_controller.h:98
SutraController::d_com_clipped
CarmaObj< Tcomp > * d_com_clipped
Definition: sutra_controller.h:97
CarmaContext::get_cublas_handle
cublasHandle_t get_cublas_handle()
Definition: carma_context.h:168
SutraController::nslopes
int nslopes
Definition: sutra_controller.h:84
SutraController::nactus
int nactus
Definition: sutra_controller.h:83
SutraController::current_context
CarmaContext * current_context
Definition: sutra_controller.h:75