COMPASS
5.0.0
End-to-end AO simulation tool using GPU acceleration
sutra_target.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_TARGET_H_
43
#define _SUTRA_TARGET_H_
44
45
#include <
sutra_source.h
>
46
#include <map>
47
#include <string>
48
#include <vector>
49
50
using
std::vector;
51
52
typedef
std::pair<std::string, int>
type_screen
;
53
54
class
SutraTarget
{
55
public
:
56
int
ntargets
;
57
vector<SutraSource *>
d_targets
;
58
59
public
:
60
SutraTarget
(
CarmaContext
*context,
SutraTelescope
*d_tel,
int
ntargets
,
61
float
*xpos,
float
*ypos,
float
*lambda,
float
*mag,
float
zerop,
62
long
*sizes,
int
Npts,
int
device);
63
~SutraTarget
();
64
65
int
get_phase
(
int
ntarget,
float
*dest);
66
};
67
68
#endif // _SUTRA_TARGET_H_
SutraTarget
this class provides the target features to COMPASS
Definition:
sutra_target.h:54
SutraTarget::get_phase
int get_phase(int ntarget, float *dest)
type_screen
std::pair< std::string, int > type_screen
Definition:
sutra_target.h:52
SutraTarget::~SutraTarget
~SutraTarget()
SutraTarget::d_targets
vector< SutraSource * > d_targets
Definition:
sutra_target.h:57
SutraTarget::ntargets
int ntargets
Definition:
sutra_target.h:56
SutraTarget::SutraTarget
SutraTarget(CarmaContext *context, SutraTelescope *d_tel, int ntargets, float *xpos, float *ypos, float *lambda, float *mag, float zerop, long *sizes, int Npts, int device)
SutraTelescope
this class provides the telescope features to COMPASS
Definition:
sutra_telescope.h:53
CarmaContext
this class provides the context in which CarmaObj are created
Definition:
carma_context.h:104
sutra_source.h
libsutra
include.h
sutra_target.h
Generated by
1.8.18