COMPASS
5.0.0
End-to-end AO simulation tool using GPU acceleration
sutra_template.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_AOTEMPLATE_H_
43
#define _SUTRA_AOTEMPLATE_H_
44
45
#include <
sutra_wfs.h
>
46
47
class
SutraTemplate
{
48
public
:
49
int
device
;
// # device
50
std::string
type
;
// a name for your data
51
long
dim
;
// # of elements
52
53
CarmaObj<float>
*
d_data
;
// the data
54
CarmaObj<float>
*
d_res
;
// the result
55
56
CarmaContext
*
current_context
;
// the context in which it has been created
57
58
public
:
59
SutraTemplate
(
CarmaContext
*context,
const
char
*
type
,
long
dim
,
60
int
device
);
61
SutraTemplate
(
const
SutraTemplate
&aotemplate);
62
~SutraTemplate
();
63
64
int
fill_data
(
float
*idata);
65
int
fill_data
();
66
int
do_compute
();
67
};
68
template
<
class
T>
69
void
comp_aotemplate
(
int
threads,
int
blocks, T *d_idata, T *d_odata,
int
N);
70
71
#endif // _SUTRA_AOTEMPLATE_H_
SutraTemplate::d_res
CarmaObj< float > * d_res
Definition:
sutra_template.h:54
comp_aotemplate
void comp_aotemplate(int threads, int blocks, T *d_idata, T *d_odata, int N)
SutraTemplate::SutraTemplate
SutraTemplate(const SutraTemplate &aotemplate)
SutraTemplate::~SutraTemplate
~SutraTemplate()
SutraTemplate::do_compute
int do_compute()
SutraTemplate::fill_data
int fill_data()
SutraTemplate::SutraTemplate
SutraTemplate(CarmaContext *context, const char *type, long dim, int device)
sutra_wfs.h
SutraTemplate::device
int device
Definition:
sutra_template.h:49
SutraTemplate
this class provides a class template to COMPASS
Definition:
sutra_template.h:47
SutraTemplate::type
std::string type
Definition:
sutra_template.h:50
SutraTemplate::dim
long dim
Definition:
sutra_template.h:51
CarmaObj< float >
CarmaContext
this class provides the context in which CarmaObj are created
Definition:
carma_context.h:104
SutraTemplate::d_data
CarmaObj< float > * d_data
Definition:
sutra_template.h:53
SutraTemplate::fill_data
int fill_data(float *idata)
SutraTemplate::current_context
CarmaContext * current_context
Definition:
sutra_template.h:56
libsutra
include.h
sutra_template.h
Generated by
1.8.18