ASL  0.1.7
Advanced Simulation Library
aslGenerators.h
Go to the documentation of this file.
1 /*
2  * Advanced Simulation Library <http://asl.org.il>
3  *
4  * Copyright 2015 Avtech Scientific <http://avtechscientific.com>
5  *
6  *
7  * This file is part of Advanced Simulation Library (ASL).
8  *
9  * ASL is free software: you can redistribute it and/or modify it
10  * under the terms of the GNU Affero General Public License as
11  * published by the Free Software Foundation, version 3 of the License.
12  *
13  * ASL is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Affero General Public License for more details.
17  *
18  * You should have received a copy of the GNU Affero General Public License
19  * along with ASL. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 
24 #ifndef ASLGENERATORS_H
25 #define ASLGENERATORS_H
26 
27 #include <memory>
28 //#include <acl/aclHardware.h>
29 #include "acl/aclTypes.h"
30 
31 namespace cl
32 {
33  class CommandQueue;
34 }
35 
36 namespace acl
37 {
38  class VectorOfElementsData;
39  class VectorOfElements;
40  typedef std::shared_ptr<cl::CommandQueue> CommandQueue;
41 }
42 
43 namespace asl
44 {
45  template <typename V> class DataWithGhostNodes;
47  typedef std::shared_ptr<DataWithGhostNodesACLData> SPDataWithGhostNodesACLData;
49  typedef std::shared_ptr<DataWithGhostNodesACL> SPDataWithGhostNodesACL;
51  typedef std::shared_ptr<AbstractDataWithGhostNodes> SPAbstractDataWithGhostNodes;
52  template <typename V> class DataWrapper;
54  typedef std::shared_ptr<DataWrapperACLData> SPDataWrapperACLData;
56  typedef std::shared_ptr<DataWrapperACL> SPDataWrapperACL;
57  class Block;
58 
59 
61 
64  template <typename T> SPDataWrapperACLData generateDataContainerACL_SP(const Block &b,
65  unsigned int n = 1);
66 
68 
71  template <typename T> SPDataWithGhostNodesACLData generateDataContainerACL_SP(const Block &b,
72  unsigned int n,
73  unsigned int gN);
74 
76 
79  template <typename T> SPDataWithGhostNodesACLData generateDataContainerACL_SP(const Block &b,
80  unsigned int n,
81  unsigned int gN,
82  acl::CommandQueue queue);
83 
85 
89  acl::TypeID t,
90  unsigned int n,
91  unsigned int gN,
92  acl::CommandQueue queue);
93 
95 
99  acl::TypeID t,
100  unsigned int n,
101  unsigned int gN);
102 
105 
107 
111  const acl::VectorOfElements & a,
112  unsigned int gN);
113 
114 
116  template <typename T> SPDataWithGhostNodesACL generateDataContainerConst_SP(const Block &b, T a, unsigned int gN);
117 
120 
123 
124 
125 
126 
127 } //namespace acl
128 
129 #endif // ASLGenerator_H
SPAbstractDataWithGhostNodes generateDCFullSafe(SPAbstractDataWithGhostNodes d)
generates data container without ghost nodes and safe outOfboundary element acces
Advanced Simulation Library.
Definition: aslDataInc.h:30
Advanced Computational Language.
Definition: acl.h:40
The OpenCL C++ bindings are defined within this namespace.
Definition: acl.h:33
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
SPDataWrapperACL generateDataContainer_SP(const Block &b, const acl::VectorOfElements &a)
std::shared_ptr< cl::CommandQueue > CommandQueue
Definition: acl.h:51
DataWithGhostNodes< acl::VectorOfElementsData > DataWithGhostNodesACLData
Definition: aslGenerators.h:45
SPDataWithGhostNodesACL generateDataContainerConst_SP(const Block &b, T a, unsigned int gN)
std::shared_ptr< DataWrapperACLData > SPDataWrapperACLData
Definition: aslGenerators.h:54
The class represents several Element.
Class defines a folding rule into a 1D/2D/3D bulk.
Definition: aslGenerators.h:52
TypeID
Definition: aclTypes.h:38
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
SPDataWrapperACLData generateDataContainerACL_SP(const Block &b, unsigned int n=1)
generates pointer to ACL Data field with n components
DataWrapper< acl::VectorOfElementsData > DataWrapperACLData
Definition: aslGenerators.h:52
DataWithGhostNodes< acl::VectorOfElements > DataWithGhostNodesACL
Definition: aslGenerators.h:48
std::shared_ptr< DataWithGhostNodesACL > SPDataWithGhostNodesACL
Definition: aslGenerators.h:49
DataWrapper< acl::VectorOfElements > DataWrapperACL
Definition: aslGenerators.h:55
std::shared_ptr< DataWrapperACL > SPDataWrapperACL
Definition: aslGenerators.h:56