COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
sutra_phase.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_PHASE_H_
18 #define _SUTRA_PHASE_H_
19 
20 // this is the generic class for a phase
21 // contains a yoga obj for the phase screen itself
22 // the screen size (assumed square)
23 // the following is only initialized on demand :
24 // an array of zernike coeffs on which the phase can be decomposed
25 // an array of zernike polynomials (carma_object)
26 // a matrix to decompose the phase on zernike coeffs
27 
28 #include <carma.h>
29 #include <carma_obj.h>
30 
31 class SutraPhase {
32  public:
34  int device;
35 
38  float *zer_coeff;
41 
42  public:
44  SutraPhase(const SutraPhase &phase);
46 };
47 
48 #endif // _SUTRA_PHASE_H_
this class provides the context in which CarmaObj are created
Definition: carma_context.h:79
this class provides the phase features to COMPASS
Definition: sutra_phase.h:31
SutraPhase(const SutraPhase &phase)
CarmaObj< float > * mat
Definition: sutra_phase.h:40
long screen_size
Definition: sutra_phase.h:37
CarmaObj< float > * zernikes
Definition: sutra_phase.h:39
SutraPhase(CarmaContext *current_context, long size)
float * zer_coeff
Definition: sutra_phase.h:38
CarmaContext * current_context
Definition: sutra_phase.h:33
CarmaObj< float > * d_screen
Definition: sutra_phase.h:36