00001 00008 // child t4 number = [refType(0-2)][whichFace(0-4)][whichT4?] 00009 /*static const int offspringAtFace[3][4][4]= { 00010 {{0,1,2,4}, 00011 {0,1,3,5}, 00012 {0,2,3,6}, 00013 {1,2,3,7}}, 00014 00015 {{0,1,2,4}, 00016 {0,1,3,7}, 00017 {0,2,3,5}, 00018 {1,2,3,6}}, 00019 00020 {{0,1,2,4}, 00021 {0,1,3,5}, 00022 {0,2,3,7}, 00023 {1,2,3,6}}, 00024 }; 00025 */ 00026 // sons-faces vertices indexes in array V[10] 00027 // [son number(1-4)][ref kind(0-2)(eRef_67,49,58)][face vertex(0-2)] 00028 // sons 1-4 are immune to ref kind 00029 static const unsigned int faceVrtsIdx[9][3][3] = { 00030 {{UNKNOWN,UNKNOWN,UNKNOWN}, 00031 {UNKNOWN,UNKNOWN,UNKNOWN}, 00032 {UNKNOWN,UNKNOWN,UNKNOWN}},// son 0 is edge! 00033 {{4,5,7},{4,5,7},{4,5,7}}, // face son 1 00034 {{4,6,8},{4,6,8},{4,6,8}}, // face son 2 00035 {{5,6,9},{5,6,9},{5,6,9}}, // face son 3 00036 {{7,8,9},{7,8,9},{7,8,9}}, // face son 4 00037 {{4,6,7},{4,5,9},{4,5,8}}, // face son 5 00038 {{5,6,7},{4,6,9},{5,6,8}}, // face son 6 00039 {{6,7,8},{4,7,9},{5,7,8}}, // face son 7 00040 {{6,7,9},{4,8,9},{5,8,9}} // face son 8 00041 }; 00042 00043 // sons-elems vertices indexes in array v[10] 00044 // [son number(0-7)][ref kind(0-2)][elem vertex(0-3)] 00045 // elems 1-4 are immune to ref kind(ref type) 00046 static const int elemVrtsIdx[8][3][4] = { 00047 {{0,4,5,7},{0,4,5,7},{0,4,5,7}}, // elem son 0, type as parent 00048 {{4,1,6,8},{4,1,6,8},{4,1,6,8}}, // elem son 1, type as parent 00049 {{5,6,2,9},{5,6,2,9},{5,6,2,9}}, // elem son 2, type as parent 00050 {{7,8,9,3},{7,8,9,3},{7,8,9,3}}, // elem son 3, type as parent 00051 {{4,6,5,7},{4,6,5,9},{4,6,5,8}}, // elem son 4, type II 00052 {{4,6,7,8},{4,5,7,9},{4,5,7,8}}, // elem son 5, type I 00053 {{5,7,6,9},{4,8,6,9},{5,8,6,9}}, // elem son 6, type II 00054 {{6,7,8,9},{4,7,8,9},{5,7,8,9}} // elem son 7, 00055 }; 00056 00057 // numbers (0-7) of element-sons neighbouring with internal face 00058 // [face son nr(1-8)][ref type(0-2)][neig (0-1)] 00059 // as you can see faces 5-9 are immune to ref type 00060 static const unsigned int innerFaceNeigs[9][3][2] = { 00061 {{UNKNOWN,UNKNOWN},{UNKNOWN,UNKNOWN},{UNKNOWN,UNKNOWN}}, // son 0 is edge!! 00062 {{0,4},{0,5},{0,5}}, // face 1 00063 {{1,5},{1,6},{1,4}}, // face 2 00064 {{2,6},{2,4},{2,6}}, // face 3 00065 {{3,7},{3,7},{3,7}}, // face 4 00066 {{4,5},{4,5},{4,5}}, // face 5 00067 {{4,6},{4,6},{4,6}}, // face 6 00068 {{5,7},{5,7},{5,7}}, // face 7 00069 {{6,7},{6,7},{6,7}}, // face 8 00070 }; 00071 00072 00073 // child elements faces orientations (auto-generated: see below) 00074 // [subRefKind][parent type][child no] 00075 //static const BYTE t4ChildType[3][EL_T4_ALLIN][8]; 00076 // Auto-generating t4childType. 00077 /* 00078 for(int kind(0);kind<3;++kind) { 00079 for(int parTyp(0); parTyp < EL_T4_ALLIN; ++parTyp) { 00080 for(int childNo(0); childNo<8;++childNo){ 00081 t4childtype[kind][parTyp][childNo]=-1; 00082 } 00083 } 00084 } 00085 */