COMPASS
5.0.0
End-to-end AO simulation tool using GPU acceleration
sutra_wfs_geom.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-2019 COMPASS Team <https://github.com/ANR-COMPASS>
5
// All rights reserved.
6
// Distributed under GNU - LGPL
7
//
8
// COMPASS is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser
9
// General Public License as published by the Free Software Foundation, either version 3 of the License,
10
// or any later version.
11
//
12
// COMPASS: End-to-end AO simulation tool using GPU acceleration
13
// The COMPASS platform was designed to meet the need of high-performance for the simulation of AO systems.
14
//
15
// The final product includes a software package for simulating all the critical subcomponents of AO,
16
// particularly in the context of the ELT and a real-time core based on several control approaches,
17
// with performances consistent with its integration into an instrument. Taking advantage of the specific
18
// hardware architecture of the GPU, the COMPASS tool allows to achieve adequate execution speeds to
19
// conduct large simulation campaigns called to the ELT.
20
//
21
// The COMPASS platform can be used to carry a wide variety of simulations to both testspecific components
22
// of AO of the E-ELT (such as wavefront analysis device with a pyramid or elongated Laser star), and
23
// various systems configurations such as multi-conjugate AO.
24
//
25
// COMPASS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
26
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
27
// See the GNU Lesser General Public License for more details.
28
//
29
// You should have received a copy of the GNU Lesser General Public License along with COMPASS.
30
// If not, see <https://www.gnu.org/licenses/lgpl-3.0.txt>.
31
// -----------------------------------------------------------------------------
32
41
42
#ifndef _SUTRA_WFS_GEOM_H_
43
#define _SUTRA_WFS_GEOM_H_
44
45
#include <
sutra_lgs.h
>
46
#include <
sutra_phase.h
>
47
#include <
sutra_target.h
>
48
#include <
sutra_telemetry.h
>
49
#include <
sutra_telescope.h
>
50
#include <
sutra_wfs.h
>
51
#include <map>
52
#include <vector>
53
54
using
std::string;
55
class
SutraWfsGeom
:
public
SutraWfs
{
56
public
:
57
public
:
58
SutraWfsGeom
(
CarmaContext
*context,
SutraTelescope
*d_tel,
long
nxsub
,
59
long
nvalid
,
long
nphase
,
long
npup
,
float
pdiam,
int
device
);
60
SutraWfsGeom
(
const
SutraWfsGeom
&wfs);
61
~SutraWfsGeom
();
62
63
int
wfs_initarrays
(
int
*phasemap,
float
*offsets,
float
*fluxPerSub,
64
int
*validsubsx,
int
*validsubsy);
65
int
slopes_geom
(
int
type
,
float
*slopes);
66
int
slopes_geom
(
int
type
);
67
68
int
define_mpi_rank
(
int
rank
,
int
size) {
return
EXIT_SUCCESS; }
69
int
allocate_buffers
(map<vector<int>, cufftHandle *> campli_plans,
70
map<vector<int>, cufftHandle *> fttotim_plans) {
71
return
EXIT_SUCCESS;
72
}
73
74
int
fill_binimage
(
int
async) {
return
0; }
75
int
comp_image
() {
return
0; }
76
77
private
:
78
int
comp_generic() {
return
0; }
79
};
80
81
#endif // _SUTRA_WFS_GEOM_H_
SutraWfsGeom::slopes_geom
int slopes_geom(int type)
SutraWfsGeom::~SutraWfsGeom
~SutraWfsGeom()
SutraWfsGeom
this class provides the wfs_geom features to COMPASS
Definition:
sutra_wfs_geom.h:55
sutra_target.h
SutraWfs::nphase
long nphase
Definition:
sutra_wfs.h:71
sutra_telescope.h
SutraWfs::nxsub
long nxsub
Definition:
sutra_wfs.h:64
SutraWfsGeom::define_mpi_rank
int define_mpi_rank(int rank, int size)
Definition:
sutra_wfs_geom.h:68
SutraWfs
this class provides the wfs features to COMPASS
Definition:
sutra_wfs.h:60
SutraWfsGeom::wfs_initarrays
int wfs_initarrays(int *phasemap, float *offsets, float *fluxPerSub, int *validsubsx, int *validsubsy)
sutra_wfs.h
sutra_lgs.h
SutraWfsGeom::slopes_geom
int slopes_geom(int type, float *slopes)
SutraWfsGeom::allocate_buffers
int allocate_buffers(map< vector< int >, cufftHandle * > campli_plans, map< vector< int >, cufftHandle * > fttotim_plans)
Definition:
sutra_wfs_geom.h:69
SutraTelescope
this class provides the telescope features to COMPASS
Definition:
sutra_telescope.h:53
SutraWfsGeom::comp_image
int comp_image()
Definition:
sutra_wfs_geom.h:75
CarmaContext
this class provides the context in which CarmaObj are created
Definition:
carma_context.h:104
SutraWfsGeom::fill_binimage
int fill_binimage(int async)
Definition:
sutra_wfs_geom.h:74
SutraWfsGeom::SutraWfsGeom
SutraWfsGeom(CarmaContext *context, SutraTelescope *d_tel, long nxsub, long nvalid, long nphase, long npup, float pdiam, int device)
sutra_telemetry.h
SutraWfs::npup
long npup
Definition:
sutra_wfs.h:70
SutraWfs::rank
int rank
Definition:
sutra_wfs.h:126
SutraWfs::device
int device
Definition:
sutra_wfs.h:62
SutraWfs::nvalid
long nvalid
Definition:
sutra_wfs.h:65
sutra_phase.h
SutraWfsGeom::SutraWfsGeom
SutraWfsGeom(const SutraWfsGeom &wfs)
SutraWfs::type
string type
Definition:
sutra_wfs.h:63
libsutra
include.h
sutra_wfs_geom.h
Generated by
1.8.18