ParMooN
 All Classes Functions Variables Friends Pages
Enumerations.h
1 // this file contains a lot of enumerations used by object classes
2 
3 #ifndef __ENUMERATIONS__
4 #define __ENUMERATIONS__
5 
6 // ======================================================================
7 // general definitions
8 // ======================================================================
9 #define MAXDEGREE 24
10 
11 // ======================================================================
12 // definitions for 1D objects
13 // ======================================================================
14 
15 #define N_MultiIndices1D 3
16 enum MultiIndex1D { D0, D1, D2 };
17 
18 #define N_FEs1D 7
19 enum FE1D { C_P0_1D_L_A, C_P1_1D_L_A, C_P2_1D_L_A, C_P3_1D_L_A,
20  N_P0_1D_L_A, D_P1_1D_L_A, D_P2_1D_L_A };
21 
22 #define N_FEDescs1D 7
23 enum FEDesc1D { FE_C_L_P0_1D, FE_C_L_P1_1D, FE_C_L_P2_1D, FE_C_L_P3_1D,
24  FE_N_L_P0_1D, FE_D_L_P1_1D, FE_D_L_P2_1D };
25 
26 #define MaxN_BaseFunctions1D 4
27 #define N_BaseFuncts1D 6
28 enum BaseFunct1D { BF_C_L_P0_1D, BF_C_L_P1_1D, BF_C_L_P2_1D, BF_C_L_P3_1D,
29  BF_D_L_P1_1D, BF_D_L_P2_1D};
30 
31 #define MaxN_PointsForNodal1D 4
32 #define N_NodalFunctionals1D 6
33 enum NodalFunctional1D { NF_C_L_P0_1D, NF_C_L_P1_1D, NF_C_L_P2_1D,
34  NF_C_L_P3_1D, NF_D_L_P1_1D, NF_D_L_P2_1D };
35 
36 #define N_RefTrans1D 1
37 enum RefTrans1D { LineAffin };
38 
39 #define MaxN_QuadPoints_1D 16
40 #define N_QuadFormulas_1D 18
41 enum QuadFormula1D {
42  Gauss1Line, Gauss2Line, Gauss3Line,
43  Gauss4Line, Gauss5Line, Gauss6Line,
44  Gauss7Line, Gauss8Line, Gauss9Line,
45  Gauss10Line, Gauss11Line, Gauss12Line,
46  Gauss2W1Line, Gauss4W1Line, Gauss6W1Line,
47  Gauss8W1Line,
48  Gauss16W2Line, Dummy
49  };
50 
51 // ======================================================================
52 // definitions for 2D objects
53 // ======================================================================
54 
55 #define N_MultiIndices2D 6
56 enum MultiIndex2D { D00,
57  D10, D01,
58  D20, D11, D02 };
59 
60 #define N_FEs2D 171
61 enum FE2D { C_P00_2D_T_A, C_P0_2D_T_A, C_P1_2D_T_A, C_P2_2D_T_A, C_P3_2D_T_A,
62  C_P4_2D_T_A, C_P5_2D_T_A, C_P6_2D_T_A, C_P7_2D_T_A,
63  C_P8_2D_T_A, C_P9_2D_T_A,
64  N_P1_2D_T_A, // 12
65  C_Q00_2D_Q_A, C_Q0_2D_Q_A, C_Q1_2D_Q_A, C_Q2_2D_Q_A, C_Q3_2D_Q_A,
66  C_Q4_2D_Q_A, C_Q5_2D_Q_A, C_Q6_2D_Q_A, C_Q7_2D_Q_A,
67  C_Q8_2D_Q_A, C_Q9_2D_Q_A,
68  N_Q1_2D_Q_A, // 24
69  C_Q00_2D_Q_M, C_Q0_2D_Q_M, C_Q1_2D_Q_M, C_Q2_2D_Q_M, C_Q3_2D_Q_M,
70  C_Q4_2D_Q_M, C_Q5_2D_Q_M, C_Q6_2D_Q_M, C_Q7_2D_Q_M,
71  C_Q8_2D_Q_M, C_Q9_2D_Q_M,
72  N_Q1_2D_Q_M, // 36
73  D_P1_2D_Q_A, D_P2_2D_Q_A, D_P3_2D_Q_A,
74  D_P1_2D_Q_M, D_P2_2D_Q_M, D_P3_2D_Q_M,
75  C_B2_2D_T_A, C_B3_2D_T_A, C_SV2_2D_T_A,
76  D_P1_2D_T_A, D_P2_2D_T_A, D_SV1_2D_T_A, // 48
77 
78  N_Q2_2D_Q_A, N_Q3_2D_Q_A, N_Q4_2D_Q_A, N_Q5_2D_Q_A,
79  N_Q2_2D_Q_M, N_Q3_2D_Q_M, N_Q4_2D_Q_M, N_Q5_2D_Q_M,
80 
81  D_P4_2D_Q_A, D_P5_2D_Q_A, D_P6_2D_Q_A, D_P7_2D_Q_A,
82  D_P4_2D_Q_M, D_P5_2D_Q_M, D_P6_2D_Q_M, D_P7_2D_Q_M, // 64
83 
84  N_P1MOD_2D_T_A,
85 
86  N_P2_2D_T_A, N_P3_2D_T_A, N_P4_2D_T_A, N_P5_2D_T_A,
87 
88  D_P3_2D_T_A, D_P4_2D_T_A,
89 
90  C_P1MINI_2D_T_A,
91 
92  B_IB2_2D_Q_A, B_IB2_2D_Q_M, // 74
93 
94  D_Q1_2D_Q_A, D_Q2_2D_Q_A, D_Q3_2D_Q_A, D_Q4_2D_Q_A,
95  D_Q1_2D_Q_M, D_Q2_2D_Q_M, D_Q3_2D_Q_M, D_Q4_2D_Q_M,
96 
97  C_B4_2D_T_A,
98 
99  D_D2_2D_Q_A, D_D2_2D_Q_M, // 85
100 
101  C_UL1_2D_Q_A, C_UL2_2D_Q_A, C_UL3_2D_Q_A, C_UL4_2D_Q_A, C_UL5_2D_Q_A,
102  C_UL1_2D_Q_M, C_UL2_2D_Q_M, C_UL3_2D_Q_M, C_UL4_2D_Q_M, C_UL5_2D_Q_M,
103 
104  C_UL1_2D_T_A, C_UL2_2D_T_A, C_UL3_2D_T_A, C_UL4_2D_T_A, C_UL5_2D_T_A, // 100
105 
106  C_UL2S_2D_Q_A, C_UL3S_2D_Q_A, C_UL4S_2D_Q_A, C_UL5S_2D_Q_A,
107  C_UL6S_2D_Q_A, C_UL7S_2D_Q_A, C_UL8S_2D_Q_A, C_UL9S_2D_Q_A,
108  C_UL2S_2D_Q_M, C_UL3S_2D_Q_M, C_UL4S_2D_Q_M, C_UL5S_2D_Q_M,
109  C_UL6S_2D_Q_M, C_UL7S_2D_Q_M, C_UL8S_2D_Q_M, C_UL9S_2D_Q_M, // 116
110 
111  C_UL2SE_2D_Q_A, C_UL3SE_2D_Q_A, C_UL4SE_2D_Q_A, C_UL5SE_2D_Q_A,
112  C_UL6SE_2D_Q_A, C_UL7SE_2D_Q_A, C_UL8SE_2D_Q_A, C_UL9SE_2D_Q_A,
113  C_UL2SE_2D_Q_M, C_UL3SE_2D_Q_M, C_UL4SE_2D_Q_M, C_UL5SE_2D_Q_M,
114  C_UL6SE_2D_Q_M, C_UL7SE_2D_Q_M, C_UL8SE_2D_Q_M, C_UL9SE_2D_Q_M, // 132
115 
116  C_M2_2D_Q_A, C_M3_2D_Q_A, C_M4_2D_Q_A, C_M5_2D_Q_A,
117  C_M6_2D_Q_A, C_M7_2D_Q_A, C_M8_2D_Q_A, C_M9_2D_Q_A,
118  C_M2_2D_Q_M, C_M3_2D_Q_M, C_M4_2D_Q_M, C_M5_2D_Q_M,
119  C_M6_2D_Q_M, C_M7_2D_Q_M, C_M8_2D_Q_M, C_M9_2D_Q_M,
120 
121  C_EL1_2D_Q_A, C_EL1_2D_Q_M, // 150
122 
123  N_RT0_2D_Q_A, N_RT0_2D_Q_M, N_RT1_2D_Q_A, N_RT1_2D_Q_M,
124  N_RT2_2D_Q_A, N_RT2_2D_Q_M, N_RT3_2D_Q_A, N_RT3_2D_Q_M,
125  N_RT0_2D_T_A, N_RT1_2D_T_A, N_RT2_2D_T_A, N_RT3_2D_T_A, // 162
126 
127  N_BDM1_2D_Q_A, N_BDM2_2D_Q_A, N_BDM3_2D_Q_A,
128  N_BDM1_2D_Q_M, N_BDM2_2D_Q_M, N_BDM3_2D_Q_M,
129  N_BDM1_2D_T_A, N_BDM2_2D_T_A, N_BDM3_2D_T_A // 171
130  };
131 
132 #define N_FEDescs2D 105
133 enum FEDesc2D { FE_C_T_P00_2D, FE_C_T_P0_2D, FE_C_T_P1_2D, FE_C_T_P2_2D,
134  FE_C_T_P3_2D, FE_C_T_P4_2D, FE_C_T_P5_2D, FE_C_T_P6_2D,
135  FE_C_T_P7_2D, FE_C_T_P8_2D, FE_C_T_P9_2D, FE_N_T_P1_2D,
136  FE_C_Q_Q00_2D, FE_C_Q_Q0_2D, FE_C_Q_Q1_2D, FE_C_Q_Q2_2D,
137  FE_C_Q_Q3_2D, FE_C_Q_Q4_2D, FE_C_Q_Q5_2D, FE_C_Q_Q6_2D,
138  FE_C_Q_Q7_2D, FE_C_Q_Q8_2D, FE_C_Q_Q9_2D, FE_N_Q_Q1_2D, // 24
139  FE_D_Q_P1_2D, FE_D_Q_P2_2D, FE_D_Q_P3_2D,
140  FE_C_T_B2_2D, FE_C_T_B3_2D, FE_C_T_SV2_2D,
141  FE_D_T_P1_2D, FE_D_T_P2_2D, FE_D_T_SV1_2D, // 33
142 
143  FE_N_Q_Q2_2D, FE_N_Q_Q3_2D, FE_N_Q_Q4_2D, FE_N_Q_Q5_2D,
144  FE_D_Q_P4_2D, FE_D_Q_P5_2D, FE_D_Q_P6_2D, FE_D_Q_P7_2D,
145 
146  FE_N_T_P1MOD_2D, FE_N_T_P2_2D, FE_N_T_P3_2D, FE_N_T_P4_2D,
147  FE_N_T_P5_2D, FE_D_T_P3_2D, FE_D_T_P4_2D, FE_C_T_P1MINI_2D, //49
148 
149  FE_B_Q_IB2_2D,
150  FE_D_Q_Q1_2D, FE_D_Q_Q2_2D, FE_D_Q_Q3_2D, FE_D_Q_Q4_2D,
151  FE_C_T_B4_2D, FE_D_Q_D2_2D, // 56
152 
153  FE_C_T_UL1_2D, FE_C_T_UL2_2D, FE_C_T_UL3_2D, FE_C_T_UL4_2D,
154  FE_C_T_UL5_2D, FE_C_Q_UL1_2D, FE_C_Q_UL2_2D, FE_C_Q_UL3_2D,
155  FE_C_Q_UL4_2D, FE_C_Q_UL5_2D, // 66
156 
157  FE_C_Q_UL2S_2D, FE_C_Q_UL3S_2D, FE_C_Q_UL4S_2D, FE_C_Q_UL5S_2D,
158  FE_C_Q_UL6S_2D, FE_C_Q_UL7S_2D, FE_C_Q_UL8S_2D, FE_C_Q_UL9S_2D,
159 
160  FE_C_Q_UL2SE_2D, FE_C_Q_UL3SE_2D, FE_C_Q_UL4SE_2D, FE_C_Q_UL5SE_2D,
161  FE_C_Q_UL6SE_2D, FE_C_Q_UL7SE_2D, FE_C_Q_UL8SE_2D, FE_C_Q_UL9SE_2D, // 82
162 
163  FE_C_Q_M2_2D, FE_C_Q_M3_2D, FE_C_Q_M4_2D, FE_C_Q_M5_2D,
164  FE_C_Q_M6_2D, FE_C_Q_M7_2D, FE_C_Q_M8_2D, FE_C_Q_M9_2D,
165 
166  FE_C_Q_EL1_2D, // 91
167 
168  FE_N_Q_RT0_2D, FE_N_Q_RT1_2D, FE_N_Q_RT2_2D, FE_N_Q_RT3_2D,
169  FE_N_T_RT0_2D, FE_N_T_RT1_2D, FE_N_T_RT2_2D, FE_N_T_RT3_2D,
170  FE_N_Q_BDM1_2D, FE_N_Q_BDM2_2D, FE_N_Q_BDM3_2D,
171  FE_N_T_BDM1_2D, FE_N_T_BDM2_2D, FE_N_T_BDM3_2D //105
172  };
173 
174 #define MaxN_BaseFunctions2D 100
175 
176 #define N_BaseFuncts2D 105
177 enum BaseFunct2D { BF_C_T_P00_2D, BF_C_T_P0_2D, BF_C_T_P1_2D, BF_C_T_P2_2D, BF_C_T_P3_2D,
178  BF_N_T_P1_2D,
179  BF_C_Q_Q00_2D, BF_C_Q_Q0_2D, BF_C_Q_Q1_2D, BF_C_Q_Q2_2D, BF_C_Q_Q3_2D,
180  BF_N_Q_Q1_2D,
181  BF_D_Q_P1_2D, BF_D_Q_P2_2D, BF_D_Q_P3_2D, // 15
182  BF_C_T_P4_2D, BF_C_T_P5_2D, BF_C_T_P6_2D, BF_C_T_P7_2D,
183  BF_C_T_P8_2D, BF_C_T_P9_2D,
184  BF_C_Q_Q4_2D, BF_C_Q_Q5_2D, BF_C_Q_Q6_2D, BF_C_Q_Q7_2D,
185  BF_C_Q_Q8_2D, BF_C_Q_Q9_2D,
186  BF_C_T_B2_2D, BF_C_T_B3_2D, BF_C_T_SV2_2D,
187  BF_D_T_P1_2D, BF_D_T_P2_2D, BF_D_T_SV1_2D, // 33
188 
189  BF_N_Q_Q2_2D, BF_N_Q_Q3_2D, BF_N_Q_Q4_2D, BF_N_Q_Q5_2D,
190 
191  BF_D_Q_P4_2D, BF_D_Q_P5_2D, BF_D_Q_P6_2D, BF_D_Q_P7_2D,
192 
193  BF_N_T_P1MOD_2D, // 42
194 
195  BF_N_T_P2_2D, BF_N_T_P3_2D, BF_N_T_P4_2D, BF_N_T_P5_2D,
196 
197  BF_D_T_P3_2D, BF_D_T_P4_2D,
198 
199  BF_C_T_P1MINI_2D,
200 
201  BF_B_Q_IB2_2D,
202 
203  BF_D_Q_Q1_2D, BF_D_Q_Q2_2D, BF_D_Q_Q3_2D, BF_D_Q_Q4_2D,
204 
205  BF_C_T_B4_2D,
206 
207  BF_D_Q_D2_2D, // 56
208 
209  BF_C_Q_UL1_2D, BF_C_Q_UL2_2D, BF_C_Q_UL3_2D, BF_C_Q_UL4_2D,
210  BF_C_Q_UL5_2D,
211 
212  BF_C_T_UL1_2D, BF_C_T_UL2_2D, BF_C_T_UL3_2D, BF_C_T_UL4_2D,
213  BF_C_T_UL5_2D, // 66
214 
215  BF_C_Q_UL2S_2D, BF_C_Q_UL3S_2D, BF_C_Q_UL4S_2D, BF_C_Q_UL5S_2D,
216  BF_C_Q_UL6S_2D, BF_C_Q_UL7S_2D, BF_C_Q_UL8S_2D, BF_C_Q_UL9S_2D,
217 
218  BF_C_Q_UL2SE_2D, BF_C_Q_UL3SE_2D, BF_C_Q_UL4SE_2D, BF_C_Q_UL5SE_2D,
219  BF_C_Q_UL6SE_2D, BF_C_Q_UL7SE_2D, BF_C_Q_UL8SE_2D, BF_C_Q_UL9SE_2D,
220 
221  BF_C_Q_M2_2D, BF_C_Q_M3_2D, BF_C_Q_M4_2D, BF_C_Q_M5_2D,
222  BF_C_Q_M6_2D, BF_C_Q_M7_2D, BF_C_Q_M8_2D, BF_C_Q_M9_2D, // 90
223 
224  BF_C_Q_EL1_2D,
225 
226  BF_N_Q_RT0_2D, BF_N_Q_RT1_2D, BF_N_Q_RT2_2D, BF_N_Q_RT3_2D,
227  BF_N_T_RT0_2D, BF_N_T_RT1_2D, BF_N_T_RT2_2D, BF_N_T_RT3_2D,
228 
229  BF_N_Q_BDM1_2D, BF_N_Q_BDM2_2D, BF_N_Q_BDM3_2D,
230  BF_N_T_BDM1_2D, BF_N_T_BDM2_2D, BF_N_T_BDM3_2D //105
231  };
232 
233 enum BF2DRefElements { BFUnitTriangle, BFUnitSquare };
234 
235 #define MaxN_PointsForNodal2D 100
236 #define N_NodalFunctionals2D 106
237 enum NodalFunctional2D {
238  NF_C_T_P00_2D, NF_C_T_P0_2D, NF_C_T_P1_2D, NF_C_T_P2_2D, NF_C_T_P3_2D,
239  NF_C_T_P4_2D, NF_C_T_P5_2D, NF_C_T_P6_2D, NF_C_T_P7_2D,
240  NF_C_T_P8_2D, NF_C_T_P9_2D,
241  NF_N_T_P1_2D, // 12
242  NF_C_Q_Q00_2D, NF_C_Q_Q0_2D, NF_C_Q_Q1_2D, NF_C_Q_Q2_2D, NF_C_Q_Q3_2D,
243  NF_C_Q_Q4_2D, NF_C_Q_Q5_2D, NF_C_Q_Q6_2D, NF_C_Q_Q7_2D,
244  NF_C_Q_Q8_2D, NF_C_Q_Q9_2D,
245  NF_N_Q_Q1_2D, // 24
246  NF_D_Q_P1_2D, NF_D_Q_P2_2D, NF_D_Q_P3_2D,
247  NF_C_T_B2_2D, NF_C_T_B3_2D, NF_C_T_SV2_2D,
248  NF_D_T_P1_2D, NF_D_T_P2_2D, NF_D_T_SV1_2D, // 33
249 
250  NF_N_Q_Q2_2D, NF_N_Q_Q3_2D, NF_N_Q_Q4_2D, NF_N_Q_Q5_2D,
251 
252  NF_D_Q_P4_2D, NF_D_Q_P5_2D, NF_D_Q_P6_2D, NF_D_Q_P7_2D,
253 
254  NF_N_T_P1MOD_2D, // 42
255 
256  NF_N_T_P2_2D, NF_N_T_P3_2D, NF_N_T_P4_2D, NF_N_T_P5_2D,
257 
258  NF_D_T_P3_2D, NF_D_T_P4_2D,
259 
260  NF_C_T_P1MINI_2D,
261 
262  NF_B_Q_IB2_2D,
263 
264  NF_S_Q_Q2_2D,
265 
266  NF_D_Q_Q1_2D, NF_D_Q_Q2_2D, NF_D_Q_Q3_2D, NF_D_Q_Q4_2D,
267 
268  NF_C_T_B4_2D,
269 
270  NF_D_Q_D2_2D, // 57
271 
272  NF_C_Q_UL1_2D, NF_C_Q_UL2_2D, NF_C_Q_UL3_2D, NF_C_Q_UL4_2D,
273  NF_C_Q_UL5_2D,
274 
275  NF_C_T_UL1_2D, NF_C_T_UL2_2D, NF_C_T_UL3_2D, NF_C_T_UL4_2D,
276  NF_C_T_UL5_2D, // 67
277 
278  NF_C_Q_UL2S_2D, NF_C_Q_UL3S_2D, NF_C_Q_UL4S_2D, NF_C_Q_UL5S_2D,
279  NF_C_Q_UL6S_2D, NF_C_Q_UL7S_2D, NF_C_Q_UL8S_2D, NF_C_Q_UL9S_2D,
280 
281  NF_C_Q_UL2SE_2D, NF_C_Q_UL3SE_2D, NF_C_Q_UL4SE_2D, NF_C_Q_UL5SE_2D,
282  NF_C_Q_UL6SE_2D, NF_C_Q_UL7SE_2D, NF_C_Q_UL8SE_2D, NF_C_Q_UL9SE_2D,
283 
284  NF_C_Q_M2_2D, NF_C_Q_M3_2D, NF_C_Q_M4_2D, NF_C_Q_M5_2D,
285  NF_C_Q_M6_2D, NF_C_Q_M7_2D, NF_C_Q_M8_2D, NF_C_Q_M9_2D, // 91
286 
287  NF_C_Q_EL1_2D,
288 
289  NF_N_Q_RT0_2D, NF_N_Q_RT1_2D, NF_N_Q_RT2_2D, NF_N_Q_RT3_2D,
290  NF_N_T_RT0_2D, NF_N_T_RT1_2D, NF_N_T_RT2_2D, NF_N_T_RT3_2D,
291 
292  NF_N_Q_BDM1_2D, NF_N_Q_BDM2_2D, NF_N_Q_BDM3_2D,
293  NF_N_T_BDM1_2D, NF_N_T_BDM2_2D, NF_N_T_BDM3_2D // 106
294  };
295 
296 #define N_HNDescs 70
297 enum HNDesc { HN_C_P1_2D_0,
298  HN_C_P2_2D_0, HN_C_P2_2D_1,
299  HN_C_P3_2D_0, HN_C_P3_2D_1, HN_C_P3_2D_2,
300  HN_C_P4_2D_0, HN_C_P4_2D_1, HN_C_P4_2D_2, HN_C_P4_2D_3,
301  HN_C_P5_2D_0, HN_C_P5_2D_1, HN_C_P5_2D_2, HN_C_P5_2D_3,
302  HN_C_P5_2D_4,
303  HN_C_P6_2D_0, HN_C_P6_2D_1, HN_C_P6_2D_2, HN_C_P6_2D_3,
304  HN_C_P6_2D_4, HN_C_P6_2D_5,
305  HN_C_P7_2D_0, HN_C_P7_2D_1, HN_C_P7_2D_2, HN_C_P7_2D_3,
306  HN_C_P7_2D_4, HN_C_P7_2D_5, HN_C_P7_2D_6,
307  HN_C_P8_2D_0, HN_C_P8_2D_1, HN_C_P8_2D_2, HN_C_P8_2D_3,
308  HN_C_P8_2D_4, HN_C_P8_2D_5, HN_C_P8_2D_6, HN_C_P8_2D_7,
309  HN_C_P9_2D_0, HN_C_P9_2D_1, HN_C_P9_2D_2, HN_C_P9_2D_3,
310  HN_C_P9_2D_4, HN_C_P9_2D_5, HN_C_P9_2D_6, HN_C_P9_2D_7,
311  HN_C_P9_2D_8,
312  HN_N_P1_2D_0,
313  HN_N_P2_2D_0, HN_N_P3_2D_0,
314  HN_N_P4_2D_0, HN_N_P5_2D_0,
315  HN_C_Q1_3D_E, HN_C_Q1_3D_F,
316  HN_C_Q2_3D_E, HN_C_Q2_3D_F,
317  HN_C_Q3_3D_1, HN_C_Q3_3D_2, HN_C_Q3_3D_3, HN_C_Q3_3D_4,
318  HN_C_Q3_3D_5,
319  HN_C_P1_3D_E,
320  HN_C_P2_3D_E, HN_C_P2_3D_F,
321  HN_C_P3_3D_E, HN_C_P3_3D_M,
322  HN_C_P3_3D_F, HN_C_P3_3D_G,
323  HN_N_P1_3D_E,
324  HN_N_P2_3D_0, HN_N_P2_3D_1, HN_N_P2_3D_2
325  };
326 
327 #define N_RefTrans2D 5
328 enum RefTrans2D { TriaAffin, QuadAffin, QuadBilinear,
329  TriaIsoparametric, QuadIsoparametric };
330 
331 #define MaxN_QuadPoints_2D 81
332 #define N_QuadFormulas_2D 22
333 enum QuadFormula2D { BaryCenterTria, MidPointTria, SevenPointTria,
334  Gauss3Tria, VertexTria, Degree8Tria, Degree9Tria,
335  Degree11Tria, Degree19Tria,
336  Gauss2Quad, Gauss3Quad, Gauss4Quad,
337  Gauss5Quad, Gauss6Quad, Gauss7Quad,
338  Gauss8Quad, Gauss9Quad, VertexQuad,
339  SimpsonQuad,
340  CompGauss3Tria, CompGauss4Tria,
341  Gauss_Degree8Tria};
342 
343 enum SpaceType { DiscP_USpace, DiscP_PSpace, ContP_USpace, ContP_PSpace,
344  Non_USpace };
345 
346 // ======================================================================
347 // definitions for 3D objects
348 // ======================================================================
349 
350 #define N_MultiIndices3D 10
351 enum MultiIndex3D { D000,
352  D100, D010, D001,
353  D200, D110, D101, D020, D011, D002 };
354 
355 #define MaxN_QuadPoints_3D 729
356 #define N_QuadFormulas_3D 19
357 enum QuadFormula3D { BaryCenterTetra, VertexTetra, P2Tetra, P4Tetra,
358  P5Tetra, P8Tetra,
359  VertexHexa, Gauss2Hexa, Gauss3Hexa, Gauss4Hexa,
360  Gauss5Hexa, Gauss6Hexa, Gauss7Hexa, Gauss8Hexa,
361  Gauss9Hexa, VerticesAndOrigin, VerticesAndOrigin15,
362  VerticesAndOrigin57, Degree7_Points38};
363 
364 #define N_FEs3D 76
365 enum FE3D { C_P00_3D_T_A, C_P0_3D_T_A, C_P1_3D_T_A, C_P2_3D_T_A, C_P3_3D_T_A,
366  N_P1_3D_T_A,
367  C_Q00_3D_H_A, C_Q0_3D_H_A, C_Q1_3D_H_A, C_Q2_3D_H_A, C_Q3_3D_H_A,
368  C_Q4_3D_H_A,
369  C_Q00_3D_H_M, C_Q0_3D_H_M, C_Q1_3D_H_M, C_Q2_3D_H_M, C_Q3_3D_H_M,
370  C_Q4_3D_H_M, // 18
371  N_Q1_3D_H_A,
372  N_Q1_3D_H_M,
373  D_P1_3D_H_A, D_P2_3D_H_A, D_P3_3D_H_A,
374  D_P1_3D_H_M, D_P2_3D_H_M, D_P3_3D_H_M,
375 
376  D_Q1_3D_H_A, D_Q1_3D_H_M, D_Q2_3D_H_A, D_Q2_3D_H_M,
377 
378  B_IB2_3D_H_A, B_IB2_3D_H_M, // 32
379 
380  N_P2_3D_T_A, N_P3_3D_T_A, N_P4_3D_T_A, N_P5_3D_T_A,
381  N_Q2_3D_H_A, N_Q3_3D_H_A, N_Q4_3D_H_A, N_Q5_3D_H_A,
382  N_Q2_3D_H_M, N_Q3_3D_H_M, N_Q4_3D_H_M, N_Q5_3D_H_M,
383 
384  C_B2_3D_T_A, D_P1_3D_T_A, D_P2_3D_T_A, D_P3_3D_T_A, // 48
385 
386  C_UL1_3D_H_A, C_UL2_3D_H_A, C_UL3_3D_H_A, C_UL4_3D_H_A, C_UL5_3D_H_A,
387  C_UL1_3D_H_M, C_UL2_3D_H_M, C_UL3_3D_H_M, C_UL4_3D_H_M, C_UL5_3D_H_M,
388  C_UL1_3D_T_A, C_UL2_3D_T_A, C_UL3_3D_T_A, C_UL4_3D_T_A, C_UL5_3D_T_A, // 63
389 
390  N_RT0_3D_T_A, N_RT1_3D_T_A, N_RT2_3D_T_A, N_RT3_3D_T_A,
391  N_RT0_3D_H_A, N_RT1_3D_H_A, N_RT2_3D_H_A,
392  N_BDDF1_3D_T_A, N_BDDF2_3D_T_A, N_BDDF3_3D_T_A,
393  N_BDDF1_3D_H_A, N_BDDF2_3D_H_A, N_BDDF3_3D_H_A // 76
394  };
395 
396 #define N_FEDescs3D 54
397 enum FEDesc3D { FE_C_T_P00_3D, FE_C_T_P0_3D, FE_C_T_P1_3D, FE_C_T_P2_3D, FE_C_T_P3_3D,
398  FE_N_T_P1_3D,
399  FE_C_H_Q00_3D, FE_C_H_Q0_3D, FE_C_H_Q1_3D, FE_C_H_Q2_3D, FE_C_H_Q3_3D,
400  FE_C_H_Q4_3D,
401  FE_N_H_Q1_3D,
402  FE_D_H_P1_3D, FE_D_H_P2_3D, FE_D_H_P3_3D, // 16
403 
404  FE_D_H_Q1_3D, FE_D_H_Q2_3D,
405 
406  FE_B_H_IB2_3D,
407 
408  FE_N_T_P2_3D, FE_N_T_P3_3D, FE_N_T_P4_3D, FE_N_T_P5_3D,
409  FE_N_H_Q2_3D, FE_N_H_Q3_3D, FE_N_H_Q4_3D, FE_N_H_Q5_3D,
410 
411  FE_C_T_B2_3D, FE_D_T_P1_3D, FE_D_T_P2_3D, FE_D_T_P3_3D, // 31
412 
413  FE_C_H_UL1_3D, FE_C_H_UL2_3D, FE_C_H_UL3_3D, FE_C_H_UL4_3D,
414  FE_C_H_UL5_3D,
415  FE_C_T_UL1_3D, FE_C_T_UL2_3D, FE_C_T_UL3_3D, FE_C_T_UL4_3D,
416  FE_C_T_UL5_3D, // 41
417 
418  FE_N_T_RT0_3D, FE_N_T_RT1_3D, FE_N_T_RT2_3D, FE_N_T_RT3_3D,
419  FE_N_H_RT0_3D, FE_N_H_RT1_3D, FE_N_H_RT2_3D,
420  FE_N_T_BDDF1_3D, FE_N_T_BDDF2_3D, FE_N_T_BDDF3_3D,
421  FE_N_H_BDDF1_3D, FE_N_H_BDDF2_3D, FE_N_H_BDDF3_3D // 54
422  };
423 
424 #define MaxN_BaseFunctions3D 125
425 #define N_BaseFuncts3D 54
426 enum BaseFunct3D { BF_C_T_P00_3D, BF_C_T_P0_3D, BF_C_T_P1_3D, BF_C_T_P2_3D, BF_C_T_P3_3D,
427  BF_N_T_P1_3D,
428  BF_C_H_Q00_3D, BF_C_H_Q0_3D, BF_C_H_Q1_3D, BF_C_H_Q2_3D, BF_C_H_Q3_3D,
429  BF_C_H_Q4_3D,
430  BF_N_H_Q1_3D,
431  BF_D_H_P1_3D, BF_D_H_P2_3D, BF_D_H_P3_3D, // 16
432 
433  BF_D_H_Q1_3D, BF_D_H_Q2_3D,
434 
435  BF_B_H_IB2_3D,
436 
437  BF_N_T_P2_3D, BF_N_T_P3_3D, BF_N_T_P4_3D, BF_N_T_P5_3D,
438  BF_N_H_Q2_3D, BF_N_H_Q3_3D, BF_N_H_Q4_3D, BF_N_H_Q5_3D,
439 
440  BF_C_T_B2_3D, BF_D_T_P1_3D, BF_D_T_P2_3D, BF_D_T_P3_3D, // 31
441 
442  BF_C_H_UL1_3D, BF_C_H_UL2_3D, BF_C_H_UL3_3D, BF_C_H_UL4_3D,
443  BF_C_H_UL5_3D,
444  BF_C_T_UL1_3D, BF_C_T_UL2_3D, BF_C_T_UL3_3D, BF_C_T_UL4_3D,
445  BF_C_T_UL5_3D, // 41
446 
447  BF_N_T_RT0_3D, BF_N_T_RT1_3D, BF_N_T_RT2_3D, BF_N_T_RT3_3D,
448  BF_N_H_RT0_3D, BF_N_H_RT1_3D, BF_N_H_RT2_3D,
449  BF_N_T_BDDF1_3D, BF_N_T_BDDF2_3D, BF_N_T_BDDF3_3D,
450  BF_N_H_BDDF1_3D, BF_N_H_BDDF2_3D, BF_N_H_BDDF3_3D // 54
451  };
452 
453 enum BF3DRefElements { BFUnitTetrahedron, BFUnitHexahedron };
454 
455 #define MaxN_PointsForNodal3D 275
456 #define N_NodalFunctionals3D 55
457 enum NodalFunctional3D {
458  NF_C_T_P00_3D, NF_C_T_P0_3D, NF_C_T_P1_3D, NF_C_T_P2_3D, NF_C_T_P3_3D,
459  NF_N_T_P1_3D,
460  NF_C_H_Q00_3D, NF_C_H_Q0_3D, NF_C_H_Q1_3D, NF_C_H_Q2_3D, NF_C_H_Q3_3D,
461  NF_C_H_Q4_3D,
462  NF_N_H_Q1_3D,
463  NF_D_H_P1_3D, NF_D_H_P2_3D, NF_D_H_P3_3D, // 16
464 
465  NF_D_H_Q1_3D, NF_D_H_Q2_3D,
466 
467  NF_B_H_IB2_3D,
468 
469  NF_S_H_Q2_3D,
470 
471  NF_N_T_P2_3D, NF_N_T_P3_3D, NF_N_T_P4_3D, NF_N_T_P5_3D,
472  NF_N_H_Q2_3D, NF_N_H_Q3_3D, NF_N_H_Q4_3D, NF_N_H_Q5_3D,
473 
474  NF_C_T_B2_3D, NF_D_T_P1_3D, NF_D_T_P2_3D, NF_D_T_P3_3D, // 32
475 
476  NF_C_H_UL1_3D, NF_C_H_UL2_3D, NF_C_H_UL3_3D, NF_C_H_UL4_3D,
477  NF_C_H_UL5_3D,
478  NF_C_T_UL1_3D, NF_C_T_UL2_3D, NF_C_T_UL3_3D, NF_C_T_UL4_3D,
479  NF_C_T_UL5_3D, // 42
480 
481  NF_N_T_RT0_3D, NF_N_T_RT1_3D, NF_N_T_RT2_3D, NF_N_T_RT3_3D,
482  NF_N_H_RT0_3D, NF_N_H_RT1_3D, NF_N_H_RT2_3D,
483  NF_N_T_BDDF1_3D, NF_N_T_BDDF2_3D, NF_N_T_BDDF3_3D,
484  NF_N_H_BDDF1_3D, NF_N_H_BDDF2_3D, NF_N_H_BDDF3_3D // 55
485  };
486 
487 #define N_RefTrans3D 5
488 enum RefTrans3D { TetraAffin, TetraIsoparametric,
489  HexaAffin, HexaTrilinear, HexaIsoparametric };
490 
491 #endif