00001
00002 #ifndef PARFUM_ITERATORS_TYPES_H
00003 #define PARFUM_ITERATORS_TYPES_H
00004
00005 #include <ParFUM_Types.h>
00006
00007
00008 #ifdef FP_TYPE_FLOAT
00009
00010 typedef float FP_TYPE;
00011 typedef float FP_TYPE_HIGH;
00012 typedef float FP_TYPE_LOW;
00013 typedef float FP_TYPE_SYNC;
00014 #else
00015
00016 typedef double FP_TYPE;
00017 typedef double FP_TYPE_HIGH;
00018 typedef double FP_TYPE_LOW;
00019 typedef double FP_TYPE_SYNC;
00020 #endif
00021
00024 enum MeshDevice {
00025 DeviceNone,
00026 DeviceCPU,
00027 DeviceGPU
00028 };
00029
00032 typedef long MeshNode;
00033
00036 typedef MeshNode MeshVertex;
00037
00039 typedef ElemID MeshElement;
00040
00042 class MeshFacet {
00043 public:
00044 MeshNode node[6];
00045 MeshElement elem[2];
00046
00047 bool operator==( const MeshFacet& other){
00048 return
00049 this->node[0] == other.node[0] &&
00050 this->node[1] == other.node[1] &&
00051 this->node[2] == other.node[2] &&
00052 this->node[3] == other.node[3] &&
00053 this->node[4] == other.node[4] &&
00054 this->node[5] == other.node[5] &&
00055 this->elem[0] == other.elem[0] &&
00056 this->elem[1] == other.elem[1] ;
00057 }
00058
00059 };
00060
00061
00067 enum MeshElementType {
00068 MESH_ELEMENT_T3 =0,
00069 MESH_ELEMENT_T6,
00070 MESH_ELEMENT_Q4,
00071 MESH_ELEMENT_Q8,
00072 MESH_ELEMENT_TET4,
00073 MESH_ELEMENT_TET10,
00074 MESH_ELEMENT_HEX8,
00075 MESH_ELEMENT_HEX8_RESERVOIR,
00076 MESH_ELEMENT_HEX20,
00077 MESH_ELEMENT_WEDGE15,
00078 MESH_ELEMENT_WEDGE6,
00079 MESH_ELEMENT_MIN_COHESIVE,
00080 MESH_ELEMENT_COH2E2,
00081 MESH_ELEMENT_COH2E3,
00082 MESH_ELEMENT_COH3T3,
00083 MESH_ELEMENT_COH3T6,
00084 MESH_ELEMENT_COH3Q4,
00085 MESH_ELEMENT_COH3Q8,
00086 MESH_ELEMENT_MAX
00087 };
00088
00090 typedef int EntityID;
00091
00092 #endif