Hermes2D  3.0
orderizer_quad.cpp
1 
3 static unsigned char num_vert_quad_simple[2] = { 13, 13 };
4 
5 static double3 vert_quad_simple[] =
6 {
7  { 0.0, 0.0, 0.0 },
8  { -1, -1, 4.0 },
9  { 1, -1, 4.0 },
10  { 0.0, 0.0, 4.0 },
11  { 1, -1, 5.0 },
12  { 1, 1, 5.0 },
13  { 0.0, 0.0, 5.0 },
14  { 1, 1, 4.0 },
15  { -1, 1, 4.0 },
16  { 0.0, 0.0, 4.0 },
17  { -1, 1, 5.0 },
18  { -1, -1, 5.0 },
19  { 0.0, 0.0, 5.0 },
20 };
21 
22 static unsigned short num_elem_quad_simple[2] = { 4 , 4};
23 
24 static int3 elem_quad_simple[] =
25 {
26  {0,1,2},
27  {3,4,5},
28  {6,7,8},
29  {9,10,11}
30 };
31 
32 static unsigned short num_edge_quad_simple[2] = {4, 4};
33 
34 static int3 edge_quad_simple[] =
35 {
36  { 0, 1, 0},
37  { 1, 4, 1},
38  { 4, 7, 2},
39  {7, 10, 3}
40 };
41 
42 // triangles
43 static unsigned char num_vert_tri_simple[2] = { 4, 4 };
44 
45 static double3 vert_tri_simple[] =
46 {
47  { -1.0 / 3.0, -1.0 / 3.0, 0.0 },
48  { -1.0, -1.0, 4.0 },
49  { 1.0, -1.0, 4.0 },
50  { -1.0, 1.0, 4.0 },
51 };
52 
53 static unsigned short num_elem_tri_simple[2] = { 1 , 1};
54 
55 static int3 elem_tri_simple[] =
56 {
57  {0,1,2}
58 };
59 
60 static unsigned short num_edge_tri_simple[2] = {3, 3};
61 
62 static int3 edge_tri_simple[] =
63 {
64  { 0, 1, 0 },
65  { 1, 2, 1 },
66  { 2, 0, 2 },
67 };
68 
69 
70 
71 
73 
74 static unsigned char num_vert_quad[2] = { 29, 77 };
75 
76 static double3 vert_quad0[] =
77 {
78  { 0.0, 0.0, 0.0 },
79  { -1.0, -1.0, 0.0 },
80  { 1.0, -1.0, 0.0 },
81  { 0.85, -0.85, 0.0 },
82  { -0.85, -0.85, 0.0 },
83  { 1.0, -1.0, 1.0 },
84  { 1.0, 1.0, 1.0 },
85  { 0.85, 0.85, 1.0 },
86  { 0.85, -0.85, 1.0 },
87  { 1.0, 1.0, 2.0 },
88  { -1.0, 1.0, 2.0 },
89  { -0.85, 0.85, 2.0 },
90  { 0.85, 0.85, 2.0 },
91  { -1.0, 1.0, 3.0 },
92  { -1.0, -1.0, 3.0 },
93  { -0.85, -0.85, 3.0 },
94  { -0.85, 0.85, 3.0 },
95  { -0.85, -0.85, 4.0 },
96  { 0.85, -0.85, 4.0 },
97  { 0.0, 0.0, 4.0 },
98  { 0.85, -0.85, 5.0 },
99  { 0.85, 0.85, 5.0 },
100  { 0.0, 0.0, 5.0 },
101  { 0.85, 0.85, 4.0 },
102  { -0.85, 0.85, 4.0 },
103  { 0.0, 0.0, 4.0 },
104  { -0.85, 0.85, 5.0 },
105  { -0.85, -0.85, 5.0 },
106  { 0.0, 0.0, 5.0 },
107 };
108 
109 static double3 vert_quad1[] =
110 {
111  { 0.0, 0.0, 0.0 },
112 
113  { -1.0, -1.0, 0.0},
114  { -0.5, -1.0, 0.0},
115  { 0.0, -1.0, 0.0},
116  { 0.5, -1.0, 0.0},
117  { 1.0, -1.0, 0.0},
118 
119  { -0.85, -0.85, 0.0},
120  { -0.25, -0.85, 0.0},
121  { 0.25, -0.85, 0.0},
122  { 0.85, -0.85, 0.0},
123 
124  { -0.85, -0.85, 4.0},
125  { -0.25, -0.85, 4.0},
126  { 0.25, -0.85, 4.0},
127  { 0.85, -0.85, 4.0},
128 
129  { -0.5, -0.5, 4.0},
130  { 0.0, -0.5, 4.0},
131  { 0.5, -0.5, 4.0},
132  { -0.25, -0.25, 4.0},
133  { 0.25, -0.25, 4.0},
134  { 0.0, 0.0, 4.0},
135 
136  { 1, -1, 1.0},
137  { 1, -0.5, 1.0},
138  { 1, 0, 1.0},
139  { 1, 0.5, 1.0},
140  { 1, 1, 1.0},
141  { 0.85, -0.85, 1.0},
142  { 0.85, -0.25, 1.0},
143  { 0.85, 0.25, 1.0},
144  { 0.85, 0.85, 1.0},
145 
146  { 0.85, -0.85, 5.0},
147  { 0.85, -0.25, 5.0},
148  { 0.85, 0.25, 5.0},
149  { 0.85, 0.85, 5.0},
150 
151  { 0.5, -0.5, 5.0},
152  { 0.5, 0, 5.0},
153  { 0.5, 0.5, 5.0},
154  { 0.25, -0.25, 5.0},
155  { 0.25, 0.25, 5.0},
156  { 0, 0, 5.0},
157 
158  { 1, 1, 2},
159  { 0.5, 1, 2},
160  { 0, 1, 2},
161  { -0.5, 1, 2},
162  { -1, 1, 2},
163  { 0.85, 0.85, 2},
164  { 0.25, 0.85, 2},
165  { -0.25, 0.85, 2},
166  { -0.85, 0.85, 2},
167 
168  { 0.85, 0.85, 4},
169  { 0.25, 0.85, 4},
170  { -0.25, 0.85, 4},
171  { -0.85, 0.85, 4},
172 
173  { 0.5, 0.5, 4},
174  { 0, 0.5, 4},
175  { -0.5, 0.5, 4},
176  { 0.25, 0.25, 4},
177  { -0.25, 0.25, 4},
178  { 0, 0, 4}
179  ,
180  { -1, 1, 3},
181  { -1, 0.5, 3},
182  { -1, 0, 3},
183  { -1, -0.5, 3},
184  { -1, -1, 3},
185  { -0.85, 0.85, 3},
186  { -0.85, 0.25, 3},
187  { -0.85, -0.25, 3},
188  { -0.85, -0.85, 3},
189 
190  { -0.85, 0.85, 5},
191  { -0.85, 0.25, 5},
192  { -0.85, -0.25, 5},
193  { -0.85, -0.85, 5},
194 
195  { -0.5, 0.5, 5},
196  { -0.5, 0, 5},
197  { -0.5, -0.5, 5},
198  { -0.25, 0.25, 5},
199  { -0.25, -0.25, 5},
200  { 0, 0, 5},
201 
202 
203 };
204 
205 
206 static unsigned short num_elem_quad[2] = { 12 , 64};
207 
208 static int3 elem_quad0[] =
209 {
210  {0,1,2},
211  {0,2,3},
212  {4,5,6},
213  {4,6,7},
214  {8,9,10},
215  {8,10,11},
216  {12,13,14},
217  {12,14,15},
218  {16,17,18},
219  {19,20,21},
220  {22,23,24},
221  {25,26,27}
222 };
223 
224 
225 static int3 elem_quad1[] =
226 {
227 
228  { 0, 1, 5},
229  { 1, 2, 6},
230  { 2, 3, 7},
231  { 3, 4, 8},
232  { 1, 6, 5},
233  { 2, 7, 6},
234  { 3, 8, 7},
235  { 9, 10, 13},
236  { 10, 11, 14},
237  { 11, 12, 15},
238  { 13, 14, 16},
239  { 10, 14, 13},
240  { 14, 15, 17},
241  { 11, 15, 14},
242  { 16, 17, 18},
243  { 14, 17, 16},
244 
245  { 19, 20, 24},
246  { 20, 21, 25},
247  { 21, 22, 26},
248  { 22, 23, 27},
249  { 20, 25, 24},
250  { 21, 26, 25},
251  { 22, 27, 26},
252  { 28, 29, 32},
253  { 29, 30, 33},
254  { 30, 31, 34},
255  { 32, 33, 35},
256  { 29, 33, 32},
257  { 33, 34, 36},
258  { 30, 34, 33},
259  { 35, 36, 37},
260  { 33, 36, 35},
261 
262  { 38, 39, 43},
263  { 39, 40, 44},
264  { 40, 41, 45},
265  { 41, 42, 46},
266  { 39, 44, 43},
267  { 40, 45, 44},
268  { 41, 46, 45},
269  { 47, 48, 51},
270  { 48, 49, 52},
271  { 49, 50, 53},
272  { 51, 52, 54},
273  { 48, 52, 51},
274  { 52, 53, 55},
275  { 49, 53, 52},
276  { 54, 55, 56},
277  { 52, 55, 54},
278 
279  { 57, 58, 62},
280  { 58, 59, 63},
281  { 59, 60, 64},
282  { 60, 61, 65},
283  { 58, 63, 62},
284  { 59, 64, 63},
285  { 60, 65, 64},
286  { 66, 67, 70},
287  { 67, 68, 71},
288  { 68, 69, 72},
289  { 70, 71, 73},
290  { 67, 71, 70},
291  { 71, 72, 74},
292  { 68, 72, 71},
293  { 73, 74, 75},
294  { 71, 74, 73}
295 
296 };
297 
298 static unsigned short num_edge_quad[2] = {4, 16};
299 
300 static int3 edge_quad0[] =
301 {
302  { 0, 1, 0},
303  { 4, 5, 1},
304  { 8, 9, 2},
305  {12, 13, 3}
306 };
307 
308 static int3 edge_quad1[] =
309 {
310  { 0, 1, 0 },
311  { 1, 2, 0 },
312  { 2, 3, 0 },
313  { 3, 4, 0 },
314  { 19, 20, 1 },
315  { 20, 21, 1 },
316  { 21, 22, 1 },
317  { 22, 23, 1 },
318  { 38, 39, 2 },
319  { 39, 40, 2 },
320  { 40, 41, 2 },
321  { 41, 42, 2 },
322  { 57, 58, 3 },
323  { 58, 59, 3 },
324  { 59, 60, 3 },
325  { 60, 61, 3 }
326 };
327 
328 // triangles
329 static unsigned char num_vert_tri[2] = { 16, 38 };
330 
331 static double3 vert_tri0[] =
332 {
333  { -1.0/3.0, -1.0/3.0, 0.0 },
334 
335  { -1.0, -1.0, 0.0 },
336  { 1.0, -1.0, 0.0 },
337  { 0.64, -0.85, 0.0 },
338  { -0.85, -0.85, 0.0 },
339 
340  { 1.0, -1.0, 1.0 },
341  { -1.0, 1.0, 1.0 },
342  { -0.85, 0.64, 1.0 },
343  { 0.64, -0.85, 1.0 },
344 
345  { -1.0, 1.0, 2.0 },
346  { -1.0, -1.0, 2.0 },
347  { -0.85, -0.85, 2.0 },
348  { -0.85, 0.64, 2.0 },
349 
350  { -0.85, 0.64, 4.0 },
351  { -0.85, -0.85, 4.0 },
352  { 0.64, -0.85, 4.0 },
353 };
354 
355 static double3 vert_tri1[] =
356 {
357  { -1.0/3.0, -1.0/3.0, 0.0 },
358 
359  { -1.0, -1.0, 0.0 },
360  { -0.5, -1.0, 0.0 },
361  { 0.0, -1.0, 0.0 },
362  { 0.5, -1.0, 0.0 },
363  { 1.0, -1.0, 0.0 },
364  { 0.64, -0.85, 0.0 },
365  { 0.15, -0.85, 0.0 },
366  { -0.35, -0.85, 0.0 },
367  { -0.85, -0.85, 0.0 },
368 
369  { 1.0, -1.0, 1.0 },
370  { 0.5, -0.5, 1.0 },
371  { 0.0, 0.0, 1.0 },
372  { -0.5, 0.5, 1.0 },
373  { -1.0, 1.0, 1.0 },
374  { -0.85, 0.64, 1.0 },
375  { -0.35, 0.15, 1.0 },
376  { 0.15, -0.35, 1.0 },
377  { 0.64, -0.85, 1.0 },
378 
379  { -1.0, 1.0, 2.0 },
380  { -1.0, 0.5, 2.0 },
381  { -1.0, 0.0, 2.0 },
382  { -1.0, -0.5, 2.0 },
383  { -1.0, -1.0, 2.0 },
384  { -0.85, -0.85, 2.0 },
385  { -0.85, -0.35, 2.0 },
386  { -0.85, 0.15, 2.0 },
387  { -0.85, 0.64, 2.0 },
388 
389  { -0.85, 0.64, 4.0 },
390  { -0.85, 0.15, 4.0 },
391  { -0.85, -0.35, 4.0 },
392  { -0.85, -0.85, 4.0 },
393  { -0.35, -0.85, 4.0 },
394  { 0.15, -0.85, 4.0 },
395  { 0.64, -0.85, 4.0 },
396  { 0.15, -0.35, 4.0 },
397  { -0.35, 0.15, 4.0 },
398  { -0.35, -0.35, 4.0 },
399 };
400 
401 
402 static unsigned short num_elem_tri[2] = { 7 , 30};
403 
404 static int3 elem_tri0[] =
405 {
406  {0,1,2},
407  {0,2,3},
408  {4,5,6},
409  {4,6,7},
410  {8,9,10},
411  {8,10,11},
412  {12,13,14},
413 };
414 
415 
416 static int3 elem_tri1[] =
417 {
418  {0,1,8},
419  {1,7,8},
420  {1,2,7},
421  {2,6,7},
422  {2,3,6},
423  {3,5,6},
424  {3,4,5},
425 
426  {9,10,17},
427  {10,16,17},
428  {10,11,16},
429  {11,15,16},
430  {11,12,15},
431  {12,14,15},
432  {12,13,14},
433 
434  {18,19,26},
435  {19,25,26},
436  {19,20,25},
437  {20,24,25},
438  {20,21,24},
439  {21,23,24},
440  {21,22,23},
441 
442  {27,28,36},
443  {28,29,31},
444  {29,30,31},
445  {28,31,36},
446  {27,36,35},
447  {36,31,32},
448  {35,36,32},
449  {35,32,34},
450  {34,32,33},
451 };
452 
453 static unsigned short num_edge_tri[2] = {3, 12};
454 
455 static int3 edge_tri0[] =
456 {
457  { 0, 1, 0 },
458  { 4, 5, 1 },
459  { 8, 9, 2 },
460 };
461 
462 static int3 edge_tri1[] =
463 {
464  { 0, 1, 0 },
465  { 1, 2, 0 },
466  { 2, 3, 0 },
467  { 3, 4, 0 },
468 
469  { 9, 10, 1 },
470  { 10, 11, 1 },
471  { 11, 12, 1 },
472  { 12, 13, 1 },
473 
474  { 18, 19, 2 },
475  { 19, 20, 2 },
476  { 20, 21, 2 },
477  { 21, 22, 2 },
478 };