Version that works with CUDA
[charm.git] / src / libs / ck-libs / ParFUM-Tops / ParFUM_TOPS_Types.h
1
2 #ifndef __PARFUM_TOPS_TYPES___H
3 #define __PARFUM_TOPS_TYPES___H
4
5
6 #ifdef FP_TYPE_FLOAT
7 #warning "Using floats for various things"
8 typedef float FP_TYPE;
9 typedef float FP_TYPE_HIGH;
10 typedef float FP_TYPE_LOW;
11 typedef float FP_TYPE_SYNC;
12 #else
13 #warning "Using doubles for various things"
14 typedef double FP_TYPE;
15 typedef double FP_TYPE_HIGH;
16 typedef double FP_TYPE_LOW;
17 typedef double FP_TYPE_SYNC;
18 #endif
19
20
21 /** Tops uses some bit patterns for these, but we just use TopNode as a signed value to represent the corresponding ParFUM node. A non-negative value is a local node, while a negative value is a ghost. */
22 typedef long TopNode;
23 /** See notes for ::TopNode */
24 typedef long TopElement;
25
26
27 enum {
28   TOP_ELEMENT_T3 =0,
29   TOP_ELEMENT_T6,
30   TOP_ELEMENT_Q4,
31   TOP_ELEMENT_Q8,
32   TOP_ELEMENT_TET4,
33   TOP_ELEMENT_TET10,
34   TOP_ELEMENT_HEX8,
35   TOP_ELEMENT_HEX8_RESERVOIR,
36   TOP_ELEMENT_HEX20,
37   TOP_ELEMENT_WEDGE15,
38   TOP_ELEMENT_COH2E2,
39   TOP_ELEMENT_COH2E3,
40   TOP_ELEMENT_COH3T3,
41   TOP_ELEMENT_COH3T6,
42   TOP_ELEMENT_COH3Q4,
43   TOP_ELEMENT_COH3Q8,
44   TOP_ELEMENT_WEDGE6,
45   TOP_ELEMENT_MAX
46 };
47
48 /** used as iterators on CUDA system. See usage!*/
49 typedef bool TopNodeItr_D;
50 typedef bool TopElemItr_D;
51
52
53 /** an opaque id for top entities */
54 typedef int TopID;
55
56 /** an enumeration of supported element types */
57 typedef int TopElemType;
58
59
60
61 #endif