00001
00002 #ifndef __PARFUM_TOPS_TYPES___H
00003 #define __PARFUM_TOPS_TYPES___H
00004
00005 #include <ParFUM_Types.h>
00006
00007 #ifdef FP_TYPE_FLOAT
00008 #warning "Using floats for various things"
00009 typedef float FP_TYPE;
00010 typedef float FP_TYPE_HIGH;
00011 typedef float FP_TYPE_LOW;
00012 typedef float FP_TYPE_SYNC;
00013 #else
00014 #warning "Using doubles for various things"
00015 typedef double FP_TYPE;
00016 typedef double FP_TYPE_HIGH;
00017 typedef double FP_TYPE_LOW;
00018 typedef double FP_TYPE_SYNC;
00019 #endif
00020
00022 enum TopDevice {
00023 DeviceNone,
00024 DeviceCPU,
00025 DeviceGPU
00026 };
00027
00029 typedef long TopNode;
00030
00032 typedef TopNode TopVertex;
00033
00035 typedef ElemID TopElement;
00036
00038 class TopFacet{
00039 public:
00040 TopNode node[6];
00041 TopElement elem[2];
00042
00043 bool operator==( const TopFacet& other){
00044 return
00045 this->node[0] == other.node[0] &&
00046 this->node[1] == other.node[1] &&
00047 this->node[2] == other.node[2] &&
00048 this->node[3] == other.node[3] &&
00049 this->node[4] == other.node[4] &&
00050 this->node[5] == other.node[5] &&
00051 this->elem[0] == other.elem[0] &&
00052 this->elem[1] == other.elem[1] ;
00053 }
00054
00055 };
00056
00057
00063 enum TopElementType {
00064 TOP_ELEMENT_T3 =0,
00065 TOP_ELEMENT_T6,
00066 TOP_ELEMENT_Q4,
00067 TOP_ELEMENT_Q8,
00068 TOP_ELEMENT_TET4,
00069 TOP_ELEMENT_TET10,
00070 TOP_ELEMENT_HEX8,
00071 TOP_ELEMENT_HEX8_RESERVOIR,
00072 TOP_ELEMENT_HEX20,
00073 TOP_ELEMENT_WEDGE15,
00074 TOP_ELEMENT_WEDGE6,
00075 TOP_ELEMENT_MIN_COHESIVE,
00076 TOP_ELEMENT_COH2E2,
00077 TOP_ELEMENT_COH2E3,
00078 TOP_ELEMENT_COH3T3,
00079 TOP_ELEMENT_COH3T6,
00080 TOP_ELEMENT_COH3Q4,
00081 TOP_ELEMENT_COH3Q8,
00082 TOP_ELEMENT_MAX
00083 };
00084
00086 typedef bool TopNodeItr_D;
00087 typedef bool TopElemItr_D;
00088
00089
00091 typedef int TopID;
00092
00094 typedef int TopElemType;
00095
00096
00097
00098 #endif