3 #ifndef __ENUMERATIONS__
4 #define __ENUMERATIONS__
15 #define N_MultiIndices1D 3
16 enum MultiIndex1D { D0, D1, D2 };
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 };
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 };
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};
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 };
36 #define N_RefTrans1D 1
37 enum RefTrans1D { LineAffin };
39 #define MaxN_QuadPoints_1D 16
40 #define N_QuadFormulas_1D 18
42 Gauss1Line, Gauss2Line, Gauss3Line,
43 Gauss4Line, Gauss5Line, Gauss6Line,
44 Gauss7Line, Gauss8Line, Gauss9Line,
45 Gauss10Line, Gauss11Line, Gauss12Line,
46 Gauss2W1Line, Gauss4W1Line, Gauss6W1Line,
55 #define N_MultiIndices2D 6
56 enum MultiIndex2D { D00,
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,
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,
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,
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,
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,
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,
86 N_P2_2D_T_A, N_P3_2D_T_A, N_P4_2D_T_A, N_P5_2D_T_A,
88 D_P3_2D_T_A, D_P4_2D_T_A,
92 B_IB2_2D_Q_A, B_IB2_2D_Q_M,
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,
99 D_D2_2D_Q_A, D_D2_2D_Q_M,
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,
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,
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,
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,
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,
121 C_EL1_2D_Q_A, C_EL1_2D_Q_M,
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,
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
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,
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,
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,
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,
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,
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,
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,
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,
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,
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
174 #define MaxN_BaseFunctions2D 100
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,
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,
181 BF_D_Q_P1_2D, BF_D_Q_P2_2D, BF_D_Q_P3_2D,
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,
189 BF_N_Q_Q2_2D, BF_N_Q_Q3_2D, BF_N_Q_Q4_2D, BF_N_Q_Q5_2D,
191 BF_D_Q_P4_2D, BF_D_Q_P5_2D, BF_D_Q_P6_2D, BF_D_Q_P7_2D,
195 BF_N_T_P2_2D, BF_N_T_P3_2D, BF_N_T_P4_2D, BF_N_T_P5_2D,
197 BF_D_T_P3_2D, BF_D_T_P4_2D,
203 BF_D_Q_Q1_2D, BF_D_Q_Q2_2D, BF_D_Q_Q3_2D, BF_D_Q_Q4_2D,
209 BF_C_Q_UL1_2D, BF_C_Q_UL2_2D, BF_C_Q_UL3_2D, BF_C_Q_UL4_2D,
212 BF_C_T_UL1_2D, BF_C_T_UL2_2D, BF_C_T_UL3_2D, BF_C_T_UL4_2D,
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,
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,
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,
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,
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
233 enum BF2DRefElements { BFUnitTriangle, BFUnitSquare };
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,
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,
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,
250 NF_N_Q_Q2_2D, NF_N_Q_Q3_2D, NF_N_Q_Q4_2D, NF_N_Q_Q5_2D,
252 NF_D_Q_P4_2D, NF_D_Q_P5_2D, NF_D_Q_P6_2D, NF_D_Q_P7_2D,
256 NF_N_T_P2_2D, NF_N_T_P3_2D, NF_N_T_P4_2D, NF_N_T_P5_2D,
258 NF_D_T_P3_2D, NF_D_T_P4_2D,
266 NF_D_Q_Q1_2D, NF_D_Q_Q2_2D, NF_D_Q_Q3_2D, NF_D_Q_Q4_2D,
272 NF_C_Q_UL1_2D, NF_C_Q_UL2_2D, NF_C_Q_UL3_2D, NF_C_Q_UL4_2D,
275 NF_C_T_UL1_2D, NF_C_T_UL2_2D, NF_C_T_UL3_2D, NF_C_T_UL4_2D,
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,
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,
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,
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,
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
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,
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,
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,
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,
324 HN_N_P2_3D_0, HN_N_P2_3D_1, HN_N_P2_3D_2
327 #define N_RefTrans2D 5
328 enum RefTrans2D { TriaAffin, QuadAffin, QuadBilinear,
329 TriaIsoparametric, QuadIsoparametric };
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,
340 CompGauss3Tria, CompGauss4Tria,
343 enum SpaceType { DiscP_USpace, DiscP_PSpace, ContP_USpace, ContP_PSpace,
350 #define N_MultiIndices3D 10
351 enum MultiIndex3D { D000,
353 D200, D110, D101, D020, D011, D002 };
355 #define MaxN_QuadPoints_3D 729
356 #define N_QuadFormulas_3D 19
357 enum QuadFormula3D { BaryCenterTetra, VertexTetra, P2Tetra, P4Tetra,
359 VertexHexa, Gauss2Hexa, Gauss3Hexa, Gauss4Hexa,
360 Gauss5Hexa, Gauss6Hexa, Gauss7Hexa, Gauss8Hexa,
361 Gauss9Hexa, VerticesAndOrigin, VerticesAndOrigin15,
362 VerticesAndOrigin57, Degree7_Points38};
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,
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,
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,
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,
376 D_Q1_3D_H_A, D_Q1_3D_H_M, D_Q2_3D_H_A, D_Q2_3D_H_M,
378 B_IB2_3D_H_A, B_IB2_3D_H_M,
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,
384 C_B2_3D_T_A, D_P1_3D_T_A, D_P2_3D_T_A, D_P3_3D_T_A,
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,
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
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,
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,
402 FE_D_H_P1_3D, FE_D_H_P2_3D, FE_D_H_P3_3D,
404 FE_D_H_Q1_3D, FE_D_H_Q2_3D,
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,
411 FE_C_T_B2_3D, FE_D_T_P1_3D, FE_D_T_P2_3D, FE_D_T_P3_3D,
413 FE_C_H_UL1_3D, FE_C_H_UL2_3D, FE_C_H_UL3_3D, FE_C_H_UL4_3D,
415 FE_C_T_UL1_3D, FE_C_T_UL2_3D, FE_C_T_UL3_3D, FE_C_T_UL4_3D,
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
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,
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,
431 BF_D_H_P1_3D, BF_D_H_P2_3D, BF_D_H_P3_3D,
433 BF_D_H_Q1_3D, BF_D_H_Q2_3D,
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,
440 BF_C_T_B2_3D, BF_D_T_P1_3D, BF_D_T_P2_3D, BF_D_T_P3_3D,
442 BF_C_H_UL1_3D, BF_C_H_UL2_3D, BF_C_H_UL3_3D, BF_C_H_UL4_3D,
444 BF_C_T_UL1_3D, BF_C_T_UL2_3D, BF_C_T_UL3_3D, BF_C_T_UL4_3D,
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
453 enum BF3DRefElements { BFUnitTetrahedron, BFUnitHexahedron };
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,
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,
463 NF_D_H_P1_3D, NF_D_H_P2_3D, NF_D_H_P3_3D,
465 NF_D_H_Q1_3D, NF_D_H_Q2_3D,
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,
474 NF_C_T_B2_3D, NF_D_T_P1_3D, NF_D_T_P2_3D, NF_D_T_P3_3D,
476 NF_C_H_UL1_3D, NF_C_H_UL2_3D, NF_C_H_UL3_3D, NF_C_H_UL4_3D,
478 NF_C_T_UL1_3D, NF_C_T_UL2_3D, NF_C_T_UL3_3D, NF_C_T_UL4_3D,
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
487 #define N_RefTrans3D 5
488 enum RefTrans3D { TetraAffin, TetraIsoparametric,
489 HexaAffin, HexaTrilinear, HexaIsoparametric };