Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/meshing/hpref_tet.hpp
3206 views
1
2
3
4
// HP_TET
5
int reftet_splitedges[][3] =
6
{
7
{ 0, 0, 0 }
8
};
9
HPREF_ELEMENT_TYPE reftet_newelstypes[] =
10
{
11
HP_TET,
12
HP_NONE,
13
};
14
int reftet_newels[][8] =
15
{
16
{ 1, 2, 3, 4 },
17
};
18
HPRef_Struct reftet =
19
{
20
HP_TET,
21
reftet_splitedges,
22
0, 0,
23
reftet_newelstypes,
24
reftet_newels
25
};
26
27
28
29
/* *********** Tet - Refinement - 0 edges *************** */
30
31
// HP_TET_0E_1V
32
int reftet_0e_1v_splitedges[][3] =
33
{
34
{ 1, 2, 5 },
35
{ 1, 3, 6 },
36
{ 1, 4, 7 },
37
{ 0, 0, 0 }
38
};
39
HPREF_ELEMENT_TYPE reftet_0e_1v_newelstypes[] =
40
{
41
HP_TET_0E_1V,
42
HP_PRISM,
43
HP_NONE,
44
};
45
int reftet_0e_1v_newels[][8] =
46
{
47
{ 1, 5, 6, 7 },
48
{ 5, 6, 7, 2, 3, 4 }
49
};
50
HPRef_Struct reftet_0e_1v =
51
{
52
HP_TET,
53
reftet_0e_1v_splitedges,
54
0, 0,
55
reftet_0e_1v_newelstypes,
56
reftet_0e_1v_newels
57
};
58
59
60
61
// HP_TET_0E_2V
62
int reftet_0e_2v_splitedges[][3] =
63
{
64
{ 1, 2, 5 },
65
{ 1, 3, 6 },
66
{ 1, 4, 7 },
67
{ 2, 1, 8 },
68
{ 2, 3, 9 },
69
{ 2, 4, 10 },
70
{ 0, 0, 0 }
71
};
72
HPREF_ELEMENT_TYPE reftet_0e_2v_newelstypes[] =
73
{
74
HP_TET_0E_1V,
75
HP_TET_0E_1V,
76
HP_PRISM,
77
HP_PRISM,
78
HP_NONE,
79
};
80
int reftet_0e_2v_newels[][8] =
81
{
82
{ 1, 5, 6, 7 },
83
{ 2, 10, 9, 8 },
84
{ 5, 6, 7, 8, 9, 10 },
85
{ 4, 10, 7, 3, 9, 6 },
86
};
87
HPRef_Struct reftet_0e_2v =
88
{
89
HP_TET,
90
reftet_0e_2v_splitedges,
91
0, 0,
92
reftet_0e_2v_newelstypes,
93
reftet_0e_2v_newels
94
};
95
96
97
98
99
100
// HP_TET_0E_3V
101
int reftet_0e_3v_splitedges[][3] =
102
{
103
{ 1, 2, 5 },
104
{ 1, 3, 6 },
105
{ 1, 4, 7 },
106
{ 2, 1, 8 },
107
{ 2, 3, 9 },
108
{ 2, 4, 10 },
109
{ 3, 1, 11 },
110
{ 3, 2, 12 },
111
{ 3, 4, 13 },
112
{ 0, 0, 0 }
113
};
114
int reftet_0e_3v_splitfaces[][4] =
115
{
116
{ 1, 2, 3, 14 },
117
{ 2, 3, 1, 15 },
118
{ 3, 1, 2, 16 },
119
{ 0, 0, 0, 0 },
120
};
121
HPREF_ELEMENT_TYPE reftet_0e_3v_newelstypes[] =
122
{
123
HP_PYRAMID_0E_1V,
124
HP_PYRAMID_0E_1V,
125
HP_PYRAMID_0E_1V,
126
HP_PRISM,
127
HP_PRISM,
128
HP_PRISM,
129
HP_PRISM,
130
HP_TET,
131
HP_NONE,
132
};
133
int reftet_0e_3v_newels[][8] =
134
{
135
{ 1, 5, 14, 6, 7 },
136
{ 2, 9, 15, 8, 10 },
137
{ 3, 11, 16, 12, 13 },
138
{ 5, 14, 7, 8, 15, 10 },
139
{ 9, 15, 10, 12, 16, 13 },
140
{ 6, 7, 14, 11, 13, 16 },
141
{ 14, 15, 16, 7, 10, 13 },
142
{ 7, 10, 13, 4 }
143
};
144
HPRef_Struct reftet_0e_3v =
145
{
146
HP_TET,
147
reftet_0e_3v_splitedges,
148
reftet_0e_3v_splitfaces,
149
0,
150
reftet_0e_3v_newelstypes,
151
reftet_0e_3v_newels
152
};
153
154
155
156
157
158
// HP_TET_0E_4V
159
int reftet_0e_4v_splitedges[][3] =
160
{
161
{ 1, 2, 5 },
162
{ 1, 3, 6 },
163
{ 1, 4, 7 },
164
{ 2, 1, 8 },
165
{ 2, 3, 9 },
166
{ 2, 4, 10 },
167
{ 3, 1, 11 },
168
{ 3, 2, 12 },
169
{ 3, 4, 13 },
170
{ 4, 1, 14 },
171
{ 4, 2, 15 },
172
{ 4, 3, 16 },
173
{ 0, 0, 0 }
174
};
175
int reftet_0e_4v_splitfaces[][4] =
176
{
177
{ 1, 2, 3, 17 },
178
{ 1, 2, 4, 18 },
179
{ 1, 3, 4, 19 },
180
181
{ 2, 1, 3, 20 },
182
{ 2, 1, 4, 21 },
183
{ 2, 3, 4, 22 },
184
185
{ 3, 1, 2, 23 },
186
{ 3, 1, 4, 24 },
187
{ 3, 2, 4, 25 },
188
189
{ 4, 1, 2, 26 },
190
{ 4, 1, 3, 27 },
191
{ 4, 2, 3, 28 },
192
{ 0, 0, 0, 0 },
193
};
194
int reftet_0e_4v_splitelements[][5] =
195
{
196
{ 1, 2, 3, 4, 29 },
197
{ 2, 3, 4, 1, 30 },
198
{ 3, 4, 1, 2, 31 },
199
{ 4, 1, 2, 3, 32 },
200
{ 0 },
201
};
202
HPREF_ELEMENT_TYPE reftet_0e_4v_newelstypes[] =
203
{
204
HP_HEX_0E_1V,
205
HP_HEX_0E_1V,
206
HP_HEX_0E_1V,
207
HP_HEX_0E_1V,
208
HP_PRISM, HP_PRISM,
209
HP_PRISM, HP_PRISM,
210
HP_PRISM, HP_PRISM,
211
HP_PRISM, HP_PRISM,
212
HP_PRISM, HP_PRISM,
213
HP_PRISM, HP_PRISM,
214
HP_PRISM,
215
HP_PRISM,
216
HP_PRISM,
217
HP_PRISM,
218
HP_TET,
219
HP_NONE,
220
};
221
int reftet_0e_4v_newels[][8] =
222
{
223
{ 1, 5, 17, 6, 7, 18, 29, 19 },
224
{ 2, 9, 20, 8, 10, 22, 30, 21 },
225
{ 3, 11, 23, 12, 13, 24, 31, 25 },
226
{ 4, 15, 26, 14, 16, 28, 32, 27 },
227
{ 5, 17, 18, 8, 20, 21 },
228
{ 18, 17, 29, 21, 20, 30 },
229
{ 6, 19, 17, 11, 24, 23 },
230
{ 17, 19, 29, 23, 24, 31 },
231
{ 7, 18, 19, 14, 26, 27 },
232
{ 19, 18, 29, 27, 26, 32 },
233
{ 9, 20, 22, 12, 23, 25 },
234
{ 22, 20, 30, 25, 23, 31 },
235
{ 10, 22, 21, 15, 28, 26 },
236
{ 21, 22, 30, 26, 28, 32 },
237
{ 13, 24, 25, 16, 27, 28 },
238
{ 25, 24, 31, 28, 27, 32 },
239
{ 17, 20, 23, 29, 30, 31 },
240
{ 18, 26, 21, 29, 32, 30 },
241
{ 19, 24, 27, 29, 31, 32 },
242
{ 22, 28, 25, 30, 32, 31 },
243
{ 29, 30, 31, 32 },
244
};
245
HPRef_Struct reftet_0e_4v =
246
{
247
HP_TET,
248
reftet_0e_4v_splitedges,
249
reftet_0e_4v_splitfaces,
250
reftet_0e_4v_splitelements,
251
reftet_0e_4v_newelstypes,
252
reftet_0e_4v_newels
253
};
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
/* *********** Tet - Refinement - 1 edge *************** */
272
273
274
275
// HP_TET_1E_0V
276
int reftet_1e_0v_splitedges[][3] =
277
{
278
{ 1, 3, 5 },
279
{ 1, 4, 6 },
280
{ 2, 3, 7 },
281
{ 2, 4, 8 },
282
{ 0, 0, 0 }
283
};
284
HPREF_ELEMENT_TYPE reftet_1e_0v_newelstypes[] =
285
{
286
HP_PRISM_SINGEDGE,
287
HP_PRISM,
288
HP_NONE,
289
};
290
int reftet_1e_0v_newels[][8] =
291
{
292
{ 1, 5, 6, 2, 7, 8 },
293
{ 7, 3, 5, 8, 4, 6 }
294
};
295
HPRef_Struct reftet_1e_0v =
296
{
297
HP_TET,
298
reftet_1e_0v_splitedges,
299
0, 0,
300
reftet_1e_0v_newelstypes,
301
reftet_1e_0v_newels
302
};
303
304
305
306
307
308
// HP_TET_1E_1VA
309
int reftet_1e_1va_splitedges[][3] =
310
{
311
{ 1, 3, 5 },
312
{ 1, 4, 6 },
313
{ 2, 3, 7 },
314
{ 2, 4, 8 },
315
{ 1, 2, 9 },
316
{ 0, 0, 0 }
317
};
318
HPREF_ELEMENT_TYPE reftet_1e_1va_newelstypes[] =
319
{
320
HP_TET_1E_1VA,
321
HP_PRISM_SINGEDGE,
322
HP_PRISM,
323
HP_NONE,
324
};
325
int reftet_1e_1va_newels[][8] =
326
{
327
{ 1, 9, 5, 6 },
328
{ 9, 5, 6, 2, 7, 8 },
329
{ 7, 3, 5, 8, 4, 6 }
330
};
331
HPRef_Struct reftet_1e_1va =
332
{
333
HP_TET,
334
reftet_1e_1va_splitedges,
335
0, 0,
336
reftet_1e_1va_newelstypes,
337
reftet_1e_1va_newels
338
};
339
340
341
342
343
344
345
// HP_TET_1E_1VB
346
int reftet_1e_1vb_splitedges[][3] =
347
{
348
{ 1, 3, 5 },
349
{ 1, 4, 6 },
350
{ 2, 3, 7 },
351
{ 2, 4, 8 },
352
{ 4, 1, 9 },
353
{ 4, 2, 10 },
354
{ 4, 3, 11 },
355
{ 0, 0, 0 }
356
};
357
int reftet_1e_1vb_splitelements[][5] =
358
{
359
{ 4, 1, 2, 3, 12 },
360
{ 0 }
361
};
362
363
HPREF_ELEMENT_TYPE reftet_1e_1vb_newelstypes[] =
364
{
365
HP_PRISM_SINGEDGE,
366
HP_TET_0E_1V,
367
HP_PYRAMID,
368
HP_TET,
369
HP_PYRAMID,
370
HP_TET,
371
HP_PYRAMID,
372
HP_TET,
373
HP_PYRAMID,
374
HP_TET,
375
HP_NONE,
376
};
377
int reftet_1e_1vb_newels[][8] =
378
{
379
{ 1, 5, 6, 2, 7, 8 },
380
{ 4, 11, 10, 9 },
381
{ 7, 8, 10, 11, 12 },
382
{ 3, 7, 11, 12 },
383
{ 5, 11, 9, 6, 12 },
384
{ 5, 3, 11, 12 },
385
{ 6, 9, 10, 8, 12 },
386
{ 5, 7, 3, 12 },
387
{ 5, 6, 8, 7, 12 },
388
{ 9, 11, 10, 12 }
389
};
390
HPRef_Struct reftet_1e_1vb =
391
{
392
HP_TET,
393
reftet_1e_1vb_splitedges,
394
0,
395
reftet_1e_1vb_splitelements,
396
reftet_1e_1vb_newelstypes,
397
reftet_1e_1vb_newels
398
};
399
400
401
402
403
404
405
406
407
// HP_TET_1E_2VA
408
int reftet_1e_2va_splitedges[][3] =
409
{
410
{ 1, 2, 5 },
411
{ 1, 3, 6 },
412
{ 1, 4, 7 },
413
{ 2, 1, 8 },
414
{ 2, 3, 9 },
415
{ 2, 4, 10 },
416
{ 0, 0, 0 }
417
};
418
HPREF_ELEMENT_TYPE reftet_1e_2va_newelstypes[] =
419
{
420
HP_TET_1E_1VA,
421
HP_TET_1E_1VA,
422
HP_PRISM_SINGEDGE,
423
HP_PRISM,
424
HP_NONE,
425
};
426
int reftet_1e_2va_newels[][8] =
427
{
428
{ 1, 5, 6, 7 },
429
{ 2, 8, 10, 9 },
430
{ 5, 6, 7, 8, 9, 10 },
431
{ 4, 10, 7, 3, 9, 6 },
432
};
433
HPRef_Struct reftet_1e_2va =
434
{
435
HP_TET,
436
reftet_1e_2va_splitedges,
437
0, 0,
438
reftet_1e_2va_newelstypes,
439
reftet_1e_2va_newels
440
};
441
442
443
444
445
446
447
448
// HP_TET_1E_2VB
449
int reftet_1e_2vb_splitedges[][3] =
450
{
451
{ 1, 2, 5 },
452
{ 1, 3, 6 },
453
{ 1, 4, 7 },
454
{ 2, 3, 8 },
455
{ 2, 4, 9 },
456
{ 3, 1, 10 },
457
{ 3, 2, 11 },
458
{ 3, 4, 12 },
459
{ 0, 0, 0 }
460
};
461
int reftet_1e_2vb_splitelements[][5] =
462
{
463
{ 3, 4, 1, 2, 13 },
464
{ 0 }
465
};
466
467
HPREF_ELEMENT_TYPE reftet_1e_2vb_newelstypes[] =
468
{
469
HP_TET_1E_1VA,
470
HP_PRISM_SINGEDGE,
471
HP_TET_0E_1V,
472
HP_PYRAMID,
473
HP_TET,
474
HP_PYRAMID,
475
HP_TET,
476
HP_PYRAMID,
477
HP_TET,
478
HP_PYRAMID,
479
HP_TET,
480
HP_NONE,
481
};
482
int reftet_1e_2vb_newels[][8] =
483
{
484
{ 1, 5, 6, 7 },
485
{ 5, 6, 7, 2, 8, 9 },
486
{ 3, 10, 11, 12 },
487
488
{ 8, 9, 12, 11, 13 },
489
{ 4, 12, 9, 13 },
490
{ 6, 10, 12, 7, 13 },
491
{ 4, 7, 12, 13 },
492
{ 6, 8, 11, 10, 13 },
493
{ 4, 9, 7, 13 },
494
{ 6, 7, 9, 8, 13 },
495
{ 10, 11, 12, 13 },
496
};
497
HPRef_Struct reftet_1e_2vb =
498
{
499
HP_TET,
500
reftet_1e_2vb_splitedges,
501
0,
502
reftet_1e_2vb_splitelements,
503
reftet_1e_2vb_newelstypes,
504
reftet_1e_2vb_newels
505
};
506
507
508
509
510
511
512
// HP_TET_1E_2VC
513
int reftet_1e_2vc_splitedges[][3] =
514
{
515
{ 1, 2, 5 },
516
{ 1, 3, 6 },
517
{ 1, 4, 7 },
518
{ 2, 3, 8 },
519
{ 2, 4, 9 },
520
{ 4, 1, 10 },
521
{ 4, 2, 11 },
522
{ 4, 3, 12 },
523
{ 0, 0, 0 }
524
};
525
int reftet_1e_2vc_splitelements[][5] =
526
{
527
{ 4, 1, 2, 3, 13 },
528
{ 0 }
529
};
530
531
HPREF_ELEMENT_TYPE reftet_1e_2vc_newelstypes[] =
532
{
533
HP_TET_1E_1VA,
534
HP_PRISM_SINGEDGE,
535
HP_TET_0E_1V,
536
HP_PYRAMID,
537
HP_TET,
538
HP_PYRAMID,
539
HP_TET,
540
HP_PYRAMID,
541
HP_TET,
542
HP_PYRAMID,
543
HP_TET,
544
HP_NONE,
545
};
546
int reftet_1e_2vc_newels[][8] =
547
{
548
{ 1, 5, 6, 7 },
549
{ 5, 6, 7, 2, 8, 9 },
550
{ 4, 11, 10, 12 },
551
{ 8, 9, 11, 12, 13 },
552
{ 3, 8, 12, 13 },
553
{ 7, 6, 12, 10, 13 },
554
{ 3, 12, 6, 13 },
555
{ 9, 7, 10, 11, 13 },
556
{ 3, 6, 8, 13 },
557
{ 6, 7, 9, 8, 13 },
558
{ 10, 12, 11, 13 }
559
};
560
HPRef_Struct reftet_1e_2vc =
561
{
562
HP_TET,
563
reftet_1e_2vc_splitedges,
564
0,
565
reftet_1e_2vc_splitelements,
566
reftet_1e_2vc_newelstypes,
567
reftet_1e_2vc_newels
568
};
569
570
571
572
573
574
575
576
577
/*
578
579
// HP_TET_1E_2VD
580
int reftet_1e_2vd_splitedges[][3] =
581
{
582
{ 1, 3, 5 },
583
{ 1, 4, 6 },
584
{ 2, 3, 7 },
585
{ 2, 4, 8 },
586
{ 3, 1, 9 },
587
{ 3, 2, 10 },
588
{ 3, 4, 11 },
589
{ 4, 1, 12 },
590
{ 4, 2, 13 },
591
{ 4, 3, 14 },
592
{ 0, 0, 0 }
593
};
594
HPREF_ELEMENT_TYPE reftet_1e_2vd_newelstypes[] =
595
{
596
HP_PRISM_SINGEDGE,
597
HP_TET_0E_1V,
598
HP_TET_0E_1V,
599
HP_PRISM,
600
HP_HEX,
601
HP_NONE,
602
};
603
int reftet_1e_2vd_newels[][8] =
604
{
605
{ 1, 5, 6, 2, 7, 8 },
606
{ 4, 13, 12, 14 },
607
{ 3, 10, 11, 9 },
608
{ 14, 13, 12, 11, 10, 9 },
609
{ 6, 12, 13, 8, 5, 9, 10, 7 },
610
};
611
HPRef_Struct reftet_1e_2vd =
612
{
613
HP_TET,
614
reftet_1e_2vd_splitedges,
615
0, 0,
616
reftet_1e_2vd_newelstypes,
617
reftet_1e_2vd_newels
618
};
619
620
*/
621
622
623
624
625
// HP_TET_1E_2VD, // 1 v on edge
626
int reftet_1e_2vd_splitedges[][3] =
627
{
628
// { 1, 2, 5 },
629
{ 1, 3, 6 },
630
{ 1, 4, 7 },
631
// { 2, 1, 8 },
632
{ 2, 3, 9 },
633
{ 2, 4, 10 },
634
{ 3, 1, 11 },
635
{ 3, 2, 12 },
636
{ 3, 4, 13 },
637
{ 4, 1, 14 },
638
{ 4, 2, 15 },
639
{ 4, 3, 16 },
640
{ 0, 0, 0 }
641
};
642
int reftet_1e_2vd_splitfaces[][4] =
643
{
644
{ 1, 3, 4, 19 },
645
{ 2, 3, 4, 22 },
646
{ 3, 1, 4, 24 },
647
{ 3, 2, 4, 25 },
648
{ 4, 1, 3, 27 },
649
{ 4, 2, 3, 28 },
650
{ 0, 0, 0, 0 }
651
};
652
HPREF_ELEMENT_TYPE reftet_1e_2vd_newelstypes[] =
653
{
654
HP_PRISM_SINGEDGE,
655
HP_TET_0E_1V,
656
HP_TET_0E_1V,
657
HP_PRISM,
658
HP_HEX,
659
HP_PYRAMID,
660
HP_HEX,
661
HP_PYRAMID,
662
HP_PRISM,
663
HP_PRISM,
664
HP_NONE,
665
};
666
int reftet_1e_2vd_newels[][8] =
667
{
668
{ 1, 6, 7, 2, 9, 10 },
669
{ 3, 11, 12, 13 },
670
{ 4, 16, 15, 14 },
671
{ 7, 6, 19, 10, 9, 22 },
672
{ 7, 19, 27, 14, 10, 22, 28, 15 },
673
{ 14, 15, 28, 27, 16 },
674
{ 9, 6, 19, 22, 12, 11, 24, 25 },
675
{ 12, 11, 24, 25, 13 },
676
{ 19, 24, 27, 22, 25, 28 },
677
{ 16, 28, 27, 13, 25, 24 }
678
};
679
HPRef_Struct reftet_1e_2vd =
680
{
681
HP_TET,
682
reftet_1e_2vd_splitedges,
683
reftet_1e_2vd_splitfaces,
684
0,
685
reftet_1e_2vd_newelstypes,
686
reftet_1e_2vd_newels
687
};
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
// HP_TET_1E_3VA
704
int reftet_1e_3va_splitedges[][3] =
705
{
706
{ 1, 2, 5 },
707
{ 1, 3, 6 },
708
{ 1, 4, 7 },
709
{ 2, 1, 8 },
710
{ 2, 3, 9 },
711
{ 2, 4, 10 },
712
{ 3, 1, 11 },
713
{ 3, 2, 12 },
714
{ 3, 4, 13 },
715
{ 0, 0, 0 }
716
};
717
int reftet_1e_3va_splitelements[][5] =
718
{
719
{ 1, 2, 3, 4, 14 },
720
{ 0 }
721
};
722
723
HPREF_ELEMENT_TYPE reftet_1e_3va_newelstypes[] =
724
{
725
HP_PRISM_SINGEDGE,
726
HP_TET_1E_1VA,
727
HP_TET_1E_1VA,
728
HP_TET_0E_1V,
729
730
HP_PYRAMID,
731
HP_TET,
732
HP_PYRAMID,
733
HP_TET,
734
HP_PYRAMID,
735
HP_TET,
736
HP_PYRAMID,
737
HP_TET,
738
HP_NONE,
739
};
740
int reftet_1e_3va_newels[][8] =
741
{
742
{ 5, 6, 7, 8, 9, 10 },
743
{ 1, 5, 6, 7 },
744
{ 2, 8, 10, 9 },
745
{ 3, 11, 12, 13 },
746
747
{ 6, 7, 10, 9, 14 },
748
{ 4, 10, 7, 14 },
749
{ 9, 10, 13, 12, 14 },
750
{ 4, 13, 10, 14 },
751
{ 6, 11, 13, 7, 14 },
752
{ 4, 7, 13, 14 },
753
{ 6, 11, 12, 9, 14 },
754
{ 11, 13, 12, 14 },
755
};
756
757
HPRef_Struct reftet_1e_3va =
758
{
759
HP_TET,
760
reftet_1e_3va_splitedges,
761
0,
762
reftet_1e_3va_splitelements,
763
reftet_1e_3va_newelstypes,
764
reftet_1e_3va_newels
765
};
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
// HP_TET_1E_3VB, // 1 v on edge
789
int reftet_1e_3vb_splitedges[][3] =
790
{
791
{ 1, 2, 5 },
792
{ 1, 3, 6 },
793
{ 1, 4, 7 },
794
// { 2, 1, 8 },
795
{ 2, 3, 9 },
796
{ 2, 4, 10 },
797
{ 3, 1, 11 },
798
{ 3, 2, 12 },
799
{ 3, 4, 13 },
800
{ 4, 1, 14 },
801
{ 4, 2, 15 },
802
{ 4, 3, 16 },
803
{ 0, 0, 0 }
804
};
805
int reftet_1e_3vb_splitfaces[][4] =
806
{
807
{ 1, 3, 4, 19 },
808
{ 2, 3, 4, 22 },
809
{ 3, 1, 4, 24 },
810
{ 3, 2, 4, 25 },
811
{ 4, 1, 3, 27 },
812
{ 4, 2, 3, 28 },
813
{ 0, 0, 0, 0 }
814
};
815
HPREF_ELEMENT_TYPE reftet_1e_3vb_newelstypes[] =
816
{
817
HP_TET_1E_1VA,
818
HP_PRISM_SINGEDGE,
819
HP_TET_0E_1V,
820
HP_TET_0E_1V,
821
HP_PRISM,
822
HP_HEX,
823
HP_PYRAMID,
824
HP_HEX,
825
HP_PYRAMID,
826
HP_PRISM,
827
HP_PRISM,
828
HP_NONE,
829
};
830
int reftet_1e_3vb_newels[][8] =
831
{
832
{ 1, 5, 6, 7 },
833
{ 5, 6, 7, 2, 9, 10 },
834
{ 3, 11, 12, 13 },
835
{ 4, 16, 15, 14 },
836
{ 7, 6, 19, 10, 9, 22 },
837
{ 7, 19, 27, 14, 10, 22, 28, 15 },
838
{ 14, 15, 28, 27, 16 },
839
{ 9, 6, 19, 22, 12, 11, 24, 25 },
840
{ 12, 11, 24, 25, 13 },
841
{ 19, 24, 27, 22, 25, 28 },
842
{ 16, 28, 27, 13, 25, 24 }
843
};
844
HPRef_Struct reftet_1e_3vb =
845
{
846
HP_TET,
847
reftet_1e_3vb_splitedges,
848
reftet_1e_3vb_splitfaces,
849
0,
850
reftet_1e_3vb_newelstypes,
851
reftet_1e_3vb_newels
852
};
853
854
855
856
857
858
859
/*
860
// HP_TET_1E_4V
861
int reftet_1e_4v_splitedges[][3] =
862
{
863
{ 1, 2, 5 },
864
{ 1, 3, 6 },
865
{ 1, 4, 7 },
866
{ 2, 1, 8 },
867
{ 2, 3, 9 },
868
{ 2, 4, 10 },
869
{ 3, 1, 11 },
870
{ 3, 2, 12 },
871
{ 3, 4, 13 },
872
{ 4, 1, 14 },
873
{ 4, 2, 15 },
874
{ 4, 3, 16 },
875
{ 0, 0, 0 }
876
};
877
int reftet_1e_4v_splitfaces[][4] =
878
{
879
{ 1, 2, 3, 17 },
880
{ 1, 2, 4, 18 },
881
{ 1, 3, 4, 19 },
882
883
{ 2, 1, 3, 20 },
884
{ 2, 1, 4, 21 },
885
{ 2, 3, 4, 22 },
886
887
{ 3, 1, 2, 23 },
888
{ 3, 1, 4, 24 },
889
{ 3, 2, 4, 25 },
890
891
{ 4, 1, 2, 26 },
892
{ 4, 1, 3, 27 },
893
{ 4, 2, 3, 28 },
894
{ 0, 0, 0, 0 },
895
};
896
int reftet_1e_4v_splitelements[][5] =
897
{
898
{ 1, 2, 3, 4, 29 },
899
{ 2, 3, 4, 1, 30 },
900
{ 3, 4, 1, 2, 31 },
901
{ 4, 1, 2, 3, 32 },
902
{ 0 },
903
};
904
HPREF_ELEMENT_TYPE reftet_1e_4v_newelstypes[] =
905
{
906
HP_HEX_1E_1V,
907
HP_HEX_1E_1V,
908
HP_HEX_0E_1V,
909
HP_HEX_0E_1V,
910
HP_PRISM_SINGEDGE, HP_PRISM,
911
HP_PRISM, HP_PRISM,
912
HP_PRISM, HP_PRISM,
913
HP_PRISM, HP_PRISM,
914
HP_PRISM, HP_PRISM,
915
HP_PRISM, HP_PRISM,
916
HP_PRISM,
917
HP_PRISM,
918
HP_PRISM,
919
HP_PRISM,
920
HP_TET,
921
HP_NONE,
922
};
923
int reftet_1e_4v_newels[][8] =
924
{
925
{ 1, 5, 17, 6, 7, 18, 29, 19 },
926
// { 2, 9, 20, 8, 10, 22, 30, 21 },
927
{ 2, 8, 21, 10, 9, 20, 30, 22 },
928
{ 3, 11, 23, 12, 13, 24, 31, 25 },
929
{ 4, 15, 26, 14, 16, 28, 32, 27 },
930
{ 5, 17, 18, 8, 20, 21 },
931
{ 18, 17, 29, 21, 20, 30 },
932
{ 6, 19, 17, 11, 24, 23 },
933
{ 17, 19, 29, 23, 24, 31 },
934
{ 7, 18, 19, 14, 26, 27 },
935
{ 19, 18, 29, 27, 26, 32 },
936
{ 9, 20, 22, 12, 23, 25 },
937
{ 22, 20, 30, 25, 23, 31 },
938
{ 10, 22, 21, 15, 28, 26 },
939
{ 21, 22, 30, 26, 28, 32 },
940
{ 13, 24, 25, 16, 27, 28 },
941
{ 25, 24, 31, 28, 27, 32 },
942
{ 17, 20, 23, 29, 30, 31 },
943
{ 18, 26, 21, 29, 32, 30 },
944
{ 19, 24, 27, 29, 31, 32 },
945
{ 22, 28, 25, 30, 32, 31 },
946
947
{ 29, 30, 31, 32 },
948
};
949
HPRef_Struct reftet_1e_4v =
950
{
951
HP_TET,
952
reftet_1e_4v_splitedges,
953
reftet_1e_4v_splitfaces,
954
reftet_1e_4v_splitelements,
955
reftet_1e_4v_newelstypes,
956
reftet_1e_4v_newels
957
};
958
*/
959
960
961
962
963
// HP_TET_1E_4V
964
int reftet_1e_4v_splitedges[][3] =
965
{
966
{ 1, 2, 5 },
967
{ 1, 3, 6 },
968
{ 1, 4, 7 },
969
{ 2, 1, 8 },
970
{ 2, 3, 9 },
971
{ 2, 4, 10 },
972
{ 3, 1, 11 },
973
{ 3, 2, 12 },
974
{ 3, 4, 13 },
975
{ 4, 1, 14 },
976
{ 4, 2, 15 },
977
{ 4, 3, 16 },
978
{ 0, 0, 0 }
979
};
980
int reftet_1e_4v_splitfaces[][4] =
981
{
982
{ 1, 3, 4, 17 },
983
{ 2, 3, 4, 18 },
984
985
{ 3, 1, 4, 19 },
986
{ 3, 2, 4, 20 },
987
988
{ 4, 1, 3, 21 },
989
{ 4, 2, 3, 22 },
990
{ 0, 0, 0, 0 },
991
};
992
993
HPREF_ELEMENT_TYPE reftet_1e_4v_newelstypes[] =
994
{
995
HP_TET_1E_1VA,
996
HP_TET_1E_1VA,
997
// HP_TET_1E_1VA,
998
// HP_TET_1E_1VA,
999
HP_PRISM_SINGEDGE,
1000
HP_PRISM,
1001
HP_HEX,
1002
HP_HEX,
1003
HP_PRISM,
1004
HP_PRISM,
1005
1006
HP_PYRAMID,
1007
HP_TET_0E_1V,
1008
1009
HP_PYRAMID,
1010
HP_TET_0E_1V,
1011
1012
HP_NONE,
1013
};
1014
1015
int reftet_1e_4v_newels[][8] =
1016
{
1017
{ 1, 5, 6, 7 },
1018
{ 2, 8, 10, 9 },
1019
1020
{ 5, 6, 7, 8, 9, 10 },
1021
{ 7, 6, 17, 10, 9, 18 },
1022
1023
{ 7, 10, 18, 17, 14, 15, 22, 21 },
1024
{ 9, 6, 17, 18, 12, 11, 19, 20 },
1025
1026
{ 17, 19, 21, 18, 20, 22 },
1027
{ 16, 22, 21, 13, 20, 19 },
1028
1029
{ 14, 15, 22, 21, 16 },
1030
{ 4, 14, 16, 15 },
1031
{ 12, 11, 19, 20, 13 },
1032
{ 3, 11, 12, 13 },
1033
1034
1035
1036
{ 1, 5, 17, 6, 7, 18, 29, 19 },
1037
// { 2, 9, 20, 8, 10, 22, 30, 21 },
1038
{ 2, 8, 21, 10, 9, 20, 30, 22 },
1039
{ 3, 11, 23, 12, 13, 24, 31, 25 },
1040
{ 4, 15, 26, 14, 16, 28, 32, 27 },
1041
{ 5, 17, 18, 8, 20, 21 },
1042
{ 18, 17, 29, 21, 20, 30 },
1043
{ 6, 19, 17, 11, 24, 23 },
1044
{ 17, 19, 29, 23, 24, 31 },
1045
{ 7, 18, 19, 14, 26, 27 },
1046
{ 19, 18, 29, 27, 26, 32 },
1047
{ 9, 20, 22, 12, 23, 25 },
1048
{ 22, 20, 30, 25, 23, 31 },
1049
{ 10, 22, 21, 15, 28, 26 },
1050
{ 21, 22, 30, 26, 28, 32 },
1051
{ 13, 24, 25, 16, 27, 28 },
1052
{ 25, 24, 31, 28, 27, 32 },
1053
{ 17, 20, 23, 29, 30, 31 },
1054
{ 18, 26, 21, 29, 32, 30 },
1055
{ 19, 24, 27, 29, 31, 32 },
1056
{ 22, 28, 25, 30, 32, 31 },
1057
1058
{ 29, 30, 31, 32 },
1059
};
1060
HPRef_Struct reftet_1e_4v =
1061
{
1062
HP_TET,
1063
reftet_1e_4v_splitedges,
1064
reftet_1e_4v_splitfaces,
1065
0,
1066
reftet_1e_4v_newelstypes,
1067
reftet_1e_4v_newels
1068
};
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
// HP_TET_2EA_0V, // 2 edges connected
1083
int reftet_2ea_0v_splitedges[][3] =
1084
{
1085
{ 1, 2, 5 },
1086
{ 1, 3, 6 },
1087
{ 1, 4, 7 },
1088
{ 2, 3, 9 },
1089
{ 2, 4, 10 },
1090
{ 3, 2, 12 },
1091
{ 3, 4, 13 },
1092
{ 0, 0, 0 }
1093
};
1094
int reftet_2ea_0v_splitfaces[][4] =
1095
{
1096
{ 1, 2, 3, 17 },
1097
{ 0, 0, 0, 0 }
1098
};
1099
HPREF_ELEMENT_TYPE reftet_2ea_0v_newelstypes[] =
1100
{
1101
HP_PYRAMID_EDGES,
1102
HP_PRISM_SINGEDGE,
1103
HP_PRISM_SINGEDGE,
1104
HP_PRISM,
1105
HP_TET,
1106
HP_NONE,
1107
};
1108
int reftet_2ea_0v_newels[][8] =
1109
{
1110
{ 1, 5, 17, 6, 7 },
1111
{ 5, 17, 7, 2, 9, 10 },
1112
{ 6, 7, 17, 3, 13, 12 },
1113
{ 17, 9, 12, 7, 10, 13 },
1114
{ 7, 10, 13, 4 },
1115
};
1116
HPRef_Struct reftet_2ea_0v =
1117
{
1118
HP_TET,
1119
reftet_2ea_0v_splitedges,
1120
reftet_2ea_0v_splitfaces,
1121
0,
1122
reftet_2ea_0v_newelstypes,
1123
reftet_2ea_0v_newels
1124
};
1125
1126
1127
1128
1129
1130
1131
// HP_TET_2EA_1VA, // 2 edges connected
1132
int reftet_2ea_1va_splitedges[][3] =
1133
{
1134
{ 1, 2, 5 },
1135
{ 1, 3, 6 },
1136
{ 1, 4, 7 },
1137
{ 2, 1, 8 },
1138
{ 2, 3, 9 },
1139
{ 2, 4, 10 },
1140
{ 3, 2, 12 },
1141
{ 3, 4, 13 },
1142
{ 0, 0, 0 }
1143
};
1144
int reftet_2ea_1va_splitfaces[][4] =
1145
{
1146
{ 1, 2, 3, 17 },
1147
{ 0, 0, 0, 0 }
1148
};
1149
HPREF_ELEMENT_TYPE reftet_2ea_1va_newelstypes[] =
1150
{
1151
HP_PYRAMID_EDGES,
1152
HP_PRISM_SINGEDGE,
1153
HP_TET_1E_1VA,
1154
HP_PRISM_SINGEDGE,
1155
HP_PRISM,
1156
HP_TET,
1157
HP_NONE,
1158
};
1159
int reftet_2ea_1va_newels[][8] =
1160
{
1161
{ 1, 5, 17, 6, 7 },
1162
{ 5, 17, 7, 8, 9, 10 },
1163
{ 2, 8, 10, 9 },
1164
{ 6, 7, 17, 3, 13, 12 },
1165
{ 17, 9, 12, 7, 10, 13 },
1166
{ 7, 10, 13, 4 },
1167
};
1168
HPRef_Struct reftet_2ea_1va =
1169
{
1170
HP_TET,
1171
reftet_2ea_1va_splitedges,
1172
reftet_2ea_1va_splitfaces,
1173
0,
1174
reftet_2ea_1va_newelstypes,
1175
reftet_2ea_1va_newels
1176
};
1177
1178
1179
1180
1181
1182
1183
1184
1185
// HP_TET_2EA_1VB,
1186
int reftet_2ea_1vb_splitedges[][3] =
1187
{
1188
{ 1, 2, 5 },
1189
{ 1, 3, 6 },
1190
{ 1, 4, 7 },
1191
{ 2, 3, 9 },
1192
{ 2, 4, 10 },
1193
{ 3, 1, 11 },
1194
{ 3, 2, 12 },
1195
{ 3, 4, 13 },
1196
{ 0, 0, 0 }
1197
};
1198
int reftet_2ea_1vb_splitfaces[][4] =
1199
{
1200
{ 1, 2, 3, 17 },
1201
{ 0, 0, 0, 0 }
1202
};
1203
HPREF_ELEMENT_TYPE reftet_2ea_1vb_newelstypes[] =
1204
{
1205
HP_PYRAMID_EDGES,
1206
HP_TET_1E_1VA,
1207
HP_PRISM_SINGEDGE,
1208
HP_PRISM_SINGEDGE,
1209
HP_PRISM,
1210
HP_TET,
1211
HP_NONE,
1212
};
1213
int reftet_2ea_1vb_newels[][8] =
1214
{
1215
{ 1, 5, 17, 6, 7 },
1216
{ 3, 11, 12, 13 },
1217
{ 5, 17, 7, 2, 9, 10 },
1218
{ 6, 7, 17, 11, 13, 12 },
1219
{ 17, 9, 12, 7, 10, 13 },
1220
{ 7, 10, 13, 4 },
1221
};
1222
HPRef_Struct reftet_2ea_1vb =
1223
{
1224
HP_TET,
1225
reftet_2ea_1vb_splitedges,
1226
reftet_2ea_1vb_splitfaces,
1227
0,
1228
reftet_2ea_1vb_newelstypes,
1229
reftet_2ea_1vb_newels
1230
};
1231
1232
1233
1234
1235
1236
1237
// HP_TET_2EA_1VC, // 2 edges connected
1238
int reftet_2ea_1vc_splitedges[][3] =
1239
{
1240
{ 1, 2, 5 },
1241
{ 1, 3, 6 },
1242
{ 1, 4, 7 },
1243
// { 2, 1, 8 },
1244
{ 2, 3, 9 },
1245
{ 2, 4, 10 },
1246
{ 3, 1, 11 },
1247
{ 3, 2, 12 },
1248
{ 3, 4, 13 },
1249
{ 4, 1, 14 },
1250
{ 4, 2, 15 },
1251
{ 4, 3, 16 },
1252
{ 0, 0, 0 }
1253
};
1254
int reftet_2ea_1vc_splitfaces[][4] =
1255
{
1256
{ 1, 2, 3, 17 },
1257
{ 2, 3, 4, 18 },
1258
{ 3, 4, 2, 19 },
1259
{ 4, 2, 3, 20 },
1260
{ 0, 0, 0, 0 }
1261
};
1262
int reftet_2ea_1vc_splitelements[][5] =
1263
{
1264
{ 1, 2, 3, 4, 21 },
1265
{ 0, 0, 0, 0 }
1266
};
1267
HPREF_ELEMENT_TYPE reftet_2ea_1vc_newelstypes[] =
1268
{
1269
HP_PYRAMID_EDGES,
1270
// HP_TET_1E_1VA,
1271
HP_TET_0E_1V,
1272
HP_PRISM_SINGEDGE,
1273
HP_PRISM_SINGEDGE,
1274
1275
HP_TET, HP_TET, HP_TET, HP_TET,
1276
HP_PYRAMID, HP_PYRAMID, HP_PYRAMID,
1277
HP_PYRAMID, HP_PYRAMID, HP_TET,
1278
HP_PYRAMID, HP_PYRAMID, HP_TET,
1279
// HP_PRISM,
1280
// HP_PRISM,
1281
HP_NONE,
1282
};
1283
int reftet_2ea_1vc_newels[][8] =
1284
{
1285
{ 1, 5, 17, 6, 7 },
1286
// { 3, 11, 12, 13 },
1287
{ 4, 15, 14, 16 },
1288
{ 5, 17, 7, 2, 9, 10 },
1289
{ 6, 7, 17, 3, 13, 12 },
1290
1291
{ 9, 10, 18, 21 },
1292
{ 13, 12, 19, 21 },
1293
{ 15, 16, 20, 21 },
1294
{ 18, 20, 19, 21 },
1295
{ 10, 15, 20, 18, 21 },
1296
{ 13, 19, 20, 16, 21 },
1297
{ 9, 18, 19, 12, 21 },
1298
1299
{ 7, 13, 16, 14, 21 },
1300
{ 7, 14, 15, 10, 21 },
1301
{ 9, 12, 17, 21 },
1302
{ 7, 10, 9, 17, 21 },
1303
{ 7, 17, 12, 13, 21 },
1304
{ 14, 16, 15, 21 },
1305
// { 17, 9, 12, 7, 10, 13 },
1306
// { 7, 10, 13, 14, 15, 16 },
1307
};
1308
HPRef_Struct reftet_2ea_1vc =
1309
{
1310
HP_TET,
1311
reftet_2ea_1vc_splitedges,
1312
reftet_2ea_1vc_splitfaces,
1313
reftet_2ea_1vc_splitelements,
1314
reftet_2ea_1vc_newelstypes,
1315
reftet_2ea_1vc_newels
1316
};
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
// HP_TET_2EA_2VA,
1330
int reftet_2ea_2va_splitedges[][3] =
1331
{
1332
{ 1, 2, 5 },
1333
{ 1, 3, 6 },
1334
{ 1, 4, 7 },
1335
{ 2, 1, 8 },
1336
{ 2, 3, 9 },
1337
{ 2, 4, 10 },
1338
{ 3, 1, 11 },
1339
{ 3, 2, 12 },
1340
{ 3, 4, 13 },
1341
{ 0, 0, 0 }
1342
};
1343
int reftet_2ea_2va_splitfaces[][4] =
1344
{
1345
{ 1, 2, 3, 17 },
1346
{ 0, 0, 0, 0 }
1347
};
1348
HPREF_ELEMENT_TYPE reftet_2ea_2va_newelstypes[] =
1349
{
1350
HP_PYRAMID_EDGES,
1351
HP_TET_1E_1VA,
1352
HP_TET_1E_1VA,
1353
HP_PRISM_SINGEDGE,
1354
HP_PRISM_SINGEDGE,
1355
HP_PRISM,
1356
HP_TET,
1357
HP_NONE,
1358
};
1359
int reftet_2ea_2va_newels[][8] =
1360
{
1361
{ 1, 5, 17, 6, 7 },
1362
{ 3, 11, 12, 13 },
1363
{ 2, 8, 10, 9 },
1364
{ 5, 17, 7, 8, 9, 10 },
1365
{ 6, 7, 17, 11, 13, 12 },
1366
{ 17, 9, 12, 7, 10, 13 },
1367
{ 7, 10, 13, 4 },
1368
};
1369
HPRef_Struct reftet_2ea_2va =
1370
{
1371
HP_TET,
1372
reftet_2ea_2va_splitedges,
1373
reftet_2ea_2va_splitfaces,
1374
0,
1375
reftet_2ea_2va_newelstypes,
1376
reftet_2ea_2va_newels
1377
};
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
// HP_TET_2EA_2VB, // 2 edges connected
1390
int reftet_2ea_2vb_splitedges[][3] =
1391
{
1392
{ 1, 2, 5 },
1393
{ 1, 3, 6 },
1394
{ 1, 4, 7 },
1395
{ 2, 1, 8 },
1396
{ 2, 3, 9 },
1397
{ 2, 4, 10 },
1398
// { 3, 1, 11 },
1399
{ 3, 2, 12 },
1400
{ 3, 4, 13 },
1401
{ 4, 1, 14 },
1402
{ 4, 2, 15 },
1403
{ 4, 3, 16 },
1404
{ 0, 0, 0 }
1405
};
1406
int reftet_2ea_2vb_splitfaces[][4] =
1407
{
1408
{ 1, 2, 3, 17 },
1409
{ 2, 3, 4, 18 },
1410
{ 3, 4, 2, 19 },
1411
{ 4, 2, 3, 20 },
1412
{ 0, 0, 0, 0 }
1413
};
1414
int reftet_2ea_2vb_splitelements[][5] =
1415
{
1416
{ 1, 2, 3, 4, 21 },
1417
{ 0, 0, 0, 0 }
1418
};
1419
HPREF_ELEMENT_TYPE reftet_2ea_2vb_newelstypes[] =
1420
{
1421
HP_PYRAMID_EDGES,
1422
HP_TET_1E_1VA,
1423
// HP_TET_1E_1VA,
1424
HP_TET_0E_1V,
1425
HP_PRISM_SINGEDGE,
1426
HP_PRISM_SINGEDGE,
1427
1428
HP_TET, HP_TET, HP_TET, HP_TET,
1429
HP_PYRAMID, HP_PYRAMID, HP_PYRAMID,
1430
HP_PYRAMID, HP_PYRAMID, HP_TET,
1431
HP_PYRAMID, HP_PYRAMID, HP_TET,
1432
// HP_PRISM,
1433
// HP_PRISM,
1434
HP_NONE,
1435
};
1436
int reftet_2ea_2vb_newels[][8] =
1437
{
1438
{ 1, 5, 17, 6, 7 },
1439
{ 2, 8, 10, 9 },
1440
// { 3, 11, 12, 13 },
1441
{ 4, 15, 14, 16 },
1442
{ 5, 17, 7, 8, 9, 10 },
1443
{ 6, 7, 17, 3, 13, 12 },
1444
1445
{ 9, 10, 18, 21 },
1446
{ 13, 12, 19, 21 },
1447
{ 15, 16, 20, 21 },
1448
{ 18, 20, 19, 21 },
1449
{ 10, 15, 20, 18, 21 },
1450
{ 13, 19, 20, 16, 21 },
1451
{ 9, 18, 19, 12, 21 },
1452
1453
{ 7, 13, 16, 14, 21 },
1454
{ 7, 14, 15, 10, 21 },
1455
{ 9, 12, 17, 21 },
1456
{ 7, 10, 9, 17, 21 },
1457
{ 7, 17, 12, 13, 21 },
1458
{ 14, 16, 15, 21 },
1459
// { 17, 9, 12, 7, 10, 13 },
1460
// { 7, 10, 13, 14, 15, 16 },
1461
};
1462
HPRef_Struct reftet_2ea_2vb =
1463
{
1464
HP_TET,
1465
reftet_2ea_2vb_splitedges,
1466
reftet_2ea_2vb_splitfaces,
1467
reftet_2ea_2vb_splitelements,
1468
reftet_2ea_2vb_newelstypes,
1469
reftet_2ea_2vb_newels
1470
};
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
// HP_TET_2EA_2VC, // 2 edges connected
1482
int reftet_2ea_2vc_splitedges[][3] =
1483
{
1484
{ 1, 2, 5 },
1485
{ 1, 3, 6 },
1486
{ 1, 4, 7 },
1487
// { 2, 1, 8 },
1488
{ 2, 3, 9 },
1489
{ 2, 4, 10 },
1490
{ 3, 1, 11 },
1491
{ 3, 2, 12 },
1492
{ 3, 4, 13 },
1493
{ 4, 1, 14 },
1494
{ 4, 2, 15 },
1495
{ 4, 3, 16 },
1496
{ 0, 0, 0 }
1497
};
1498
int reftet_2ea_2vc_splitfaces[][4] =
1499
{
1500
{ 1, 2, 3, 17 },
1501
{ 2, 3, 4, 18 },
1502
{ 3, 4, 2, 19 },
1503
{ 4, 2, 3, 20 },
1504
{ 0, 0, 0, 0 }
1505
};
1506
int reftet_2ea_2vc_splitelements[][5] =
1507
{
1508
{ 1, 2, 3, 4, 21 },
1509
{ 0, 0, 0, 0 }
1510
};
1511
HPREF_ELEMENT_TYPE reftet_2ea_2vc_newelstypes[] =
1512
{
1513
HP_PYRAMID_EDGES,
1514
HP_TET_1E_1VA,
1515
// HP_TET_1E_1VA,
1516
HP_TET_0E_1V,
1517
HP_PRISM_SINGEDGE,
1518
HP_PRISM_SINGEDGE,
1519
1520
HP_TET, HP_TET, HP_TET, HP_TET,
1521
HP_PYRAMID, HP_PYRAMID, HP_PYRAMID,
1522
HP_PYRAMID, HP_PYRAMID, HP_TET,
1523
HP_PYRAMID, HP_PYRAMID, HP_TET,
1524
// HP_PRISM,
1525
// HP_PRISM,
1526
HP_NONE,
1527
};
1528
int reftet_2ea_2vc_newels[][8] =
1529
{
1530
{ 1, 5, 17, 6, 7 },
1531
// { 2, 8, 10, 9 },
1532
{ 3, 11, 12, 13 },
1533
{ 4, 15, 14, 16 },
1534
{ 5, 17, 7, 2, 9, 10 },
1535
{ 6, 7, 17, 11, 13, 12 },
1536
1537
{ 9, 10, 18, 21 },
1538
{ 13, 12, 19, 21 },
1539
{ 15, 16, 20, 21 },
1540
{ 18, 20, 19, 21 },
1541
{ 10, 15, 20, 18, 21 },
1542
{ 13, 19, 20, 16, 21 },
1543
{ 9, 18, 19, 12, 21 },
1544
1545
{ 7, 13, 16, 14, 21 },
1546
{ 7, 14, 15, 10, 21 },
1547
{ 9, 12, 17, 21 },
1548
{ 7, 10, 9, 17, 21 },
1549
{ 7, 17, 12, 13, 21 },
1550
{ 14, 16, 15, 21 },
1551
// { 17, 9, 12, 7, 10, 13 },
1552
// { 7, 10, 13, 14, 15, 16 },
1553
};
1554
HPRef_Struct reftet_2ea_2vc =
1555
{
1556
HP_TET,
1557
reftet_2ea_2vc_splitedges,
1558
reftet_2ea_2vc_splitfaces,
1559
reftet_2ea_2vc_splitelements,
1560
reftet_2ea_2vc_newelstypes,
1561
reftet_2ea_2vc_newels
1562
};
1563
1564
1565
1566
1567
1568
1569
1570
1571
// HP_TET_2EA_3V, // 2 edges connected
1572
int reftet_2ea_3v_splitedges[][3] =
1573
{
1574
{ 1, 2, 5 },
1575
{ 1, 3, 6 },
1576
{ 1, 4, 7 },
1577
{ 2, 1, 8 },
1578
{ 2, 3, 9 },
1579
{ 2, 4, 10 },
1580
{ 3, 1, 11 },
1581
{ 3, 2, 12 },
1582
{ 3, 4, 13 },
1583
{ 4, 1, 14 },
1584
{ 4, 2, 15 },
1585
{ 4, 3, 16 },
1586
{ 0, 0, 0 }
1587
};
1588
int reftet_2ea_3v_splitfaces[][4] =
1589
{
1590
{ 1, 2, 3, 17 },
1591
{ 2, 3, 4, 18 },
1592
{ 3, 4, 2, 19 },
1593
{ 4, 2, 3, 20 },
1594
{ 0, 0, 0, 0 }
1595
};
1596
int reftet_2ea_3v_splitelements[][5] =
1597
{
1598
{ 1, 2, 3, 4, 21 },
1599
{ 0, 0, 0, 0 }
1600
};
1601
HPREF_ELEMENT_TYPE reftet_2ea_3v_newelstypes[] =
1602
{
1603
HP_PYRAMID_EDGES,
1604
HP_TET_1E_1VA,
1605
HP_TET_1E_1VA,
1606
HP_TET_0E_1V,
1607
HP_PRISM_SINGEDGE,
1608
HP_PRISM_SINGEDGE,
1609
1610
HP_TET, HP_TET, HP_TET, HP_TET,
1611
HP_PYRAMID, HP_PYRAMID, HP_PYRAMID,
1612
HP_PYRAMID, HP_PYRAMID, HP_TET,
1613
HP_PYRAMID, HP_PYRAMID, HP_TET,
1614
// HP_PRISM,
1615
// HP_PRISM,
1616
HP_NONE,
1617
};
1618
int reftet_2ea_3v_newels[][8] =
1619
{
1620
{ 1, 5, 17, 6, 7 },
1621
{ 2, 8, 10, 9 },
1622
{ 3, 11, 12, 13 },
1623
{ 4, 15, 14, 16 },
1624
{ 5, 17, 7, 8, 9, 10 },
1625
{ 6, 7, 17, 11, 13, 12 },
1626
1627
{ 9, 10, 18, 21 },
1628
{ 13, 12, 19, 21 },
1629
{ 15, 16, 20, 21 },
1630
{ 18, 20, 19, 21 },
1631
{ 10, 15, 20, 18, 21 },
1632
{ 13, 19, 20, 16, 21 },
1633
{ 9, 18, 19, 12, 21 },
1634
1635
{ 7, 13, 16, 14, 21 },
1636
{ 7, 14, 15, 10, 21 },
1637
{ 9, 12, 17, 21 },
1638
{ 7, 10, 9, 17, 21 },
1639
{ 7, 17, 12, 13, 21 },
1640
{ 14, 16, 15, 21 },
1641
// { 17, 9, 12, 7, 10, 13 },
1642
// { 7, 10, 13, 14, 15, 16 },
1643
};
1644
HPRef_Struct reftet_2ea_3v =
1645
{
1646
HP_TET,
1647
reftet_2ea_3v_splitedges,
1648
reftet_2ea_3v_splitfaces,
1649
reftet_2ea_3v_splitelements,
1650
reftet_2ea_3v_newelstypes,
1651
reftet_2ea_3v_newels
1652
};
1653
1654
1655
1656
1657
1658
1659
1660
// HP_TET_2EB_0V, // 2 opposite edges
1661
int reftet_2eb_0v_splitedges[][3] =
1662
{
1663
{ 1, 3, 5 },
1664
{ 1, 4, 6 },
1665
{ 2, 3, 7 },
1666
{ 2, 4, 8 },
1667
{ 3, 1, 9 },
1668
{ 3, 2, 10 },
1669
{ 4, 1, 11 },
1670
{ 4, 2, 12 },
1671
{ 0, 0, 0 }
1672
};
1673
1674
HPREF_ELEMENT_TYPE reftet_2eb_0v_newelstypes[] =
1675
{
1676
HP_PRISM_SINGEDGE,
1677
HP_PRISM_SINGEDGE,
1678
HP_HEX,
1679
HP_NONE,
1680
};
1681
int reftet_2eb_0v_newels[][8] =
1682
{
1683
{ 1, 5, 6, 2, 7, 8 },
1684
{ 3, 9, 10, 4, 11, 12 },
1685
{ 6, 11, 12, 8, 5, 9, 10, 7 },
1686
};
1687
HPRef_Struct reftet_2eb_0v =
1688
{
1689
HP_TET,
1690
reftet_2eb_0v_splitedges,
1691
0, 0,
1692
reftet_2eb_0v_newelstypes,
1693
reftet_2eb_0v_newels
1694
};
1695
1696
1697
// HP_TET_2EB_1V, // V1
1698
1699
1700
// HP_TET_2EB_1V, // 2 opposite edges, V1
1701
int reftet_2eb_1v_splitedges[][3] =
1702
{
1703
{ 1, 2, 5 },
1704
{ 1, 3, 6 },
1705
{ 1, 4, 7 },
1706
{ 2, 1, 8 },
1707
{ 2, 3, 9 },
1708
{ 2, 4, 10 },
1709
{ 3, 1, 11 },
1710
{ 3, 2, 12 },
1711
{ 3, 4, 13 },
1712
{ 4, 1, 14 },
1713
{ 4, 2, 15 },
1714
{ 4, 3, 16 },
1715
{ 0, 0, 0 }
1716
};
1717
1718
HPREF_ELEMENT_TYPE reftet_2eb_1v_newelstypes[] =
1719
{
1720
HP_PRISM_SINGEDGE,
1721
HP_PRISM_SINGEDGE,
1722
HP_TET_1E_1VA,
1723
// HP_TET_1E_1VA,
1724
// HP_TET_1E_1VA,
1725
// HP_TET_1E_1VA,
1726
HP_HEX,
1727
HP_NONE,
1728
};
1729
int reftet_2eb_1v_newels[][8] =
1730
{
1731
{ 5, 6, 7, 2, 9, 10 },
1732
{ 4, 15, 14, 3, 12, 11 },
1733
{ 1, 5, 6, 7 },
1734
// { 2, 8, 10, 9 },
1735
// { 3, 13, 11, 12 },
1736
// { 4, 16, 15, 14 },
1737
{ 7, 14, 15, 10, 6, 11, 12, 9 }
1738
};
1739
HPRef_Struct reftet_2eb_1v =
1740
{
1741
HP_TET,
1742
reftet_2eb_1v_splitedges,
1743
0, 0,
1744
reftet_2eb_1v_newelstypes,
1745
reftet_2eb_1v_newels
1746
};
1747
1748
1749
1750
// HP_TET_2EB_2VA, // 2 opposite edges, V1,2
1751
int reftet_2eb_2va_splitedges[][3] =
1752
{
1753
{ 1, 2, 5 },
1754
{ 1, 3, 6 },
1755
{ 1, 4, 7 },
1756
{ 2, 1, 8 },
1757
{ 2, 3, 9 },
1758
{ 2, 4, 10 },
1759
{ 3, 1, 11 },
1760
{ 3, 2, 12 },
1761
{ 3, 4, 13 },
1762
{ 4, 1, 14 },
1763
{ 4, 2, 15 },
1764
{ 4, 3, 16 },
1765
{ 0, 0, 0 }
1766
};
1767
1768
HPREF_ELEMENT_TYPE reftet_2eb_2va_newelstypes[] =
1769
{
1770
HP_PRISM_SINGEDGE,
1771
HP_PRISM_SINGEDGE,
1772
HP_TET_1E_1VA,
1773
HP_TET_1E_1VA,
1774
// HP_TET_1E_1VA,
1775
// HP_TET_1E_1VA,
1776
HP_HEX,
1777
HP_NONE,
1778
};
1779
int reftet_2eb_2va_newels[][8] =
1780
{
1781
{ 5, 6, 7, 8, 9, 10 },
1782
{ 4, 15, 14, 3, 12, 11 },
1783
{ 1, 5, 6, 7 },
1784
{ 2, 8, 10, 9 },
1785
// { 3, 13, 11, 12 },
1786
// { 4, 16, 15, 14 },
1787
{ 7, 14, 15, 10, 6, 11, 12, 9 }
1788
};
1789
HPRef_Struct reftet_2eb_2va =
1790
{
1791
HP_TET,
1792
reftet_2eb_2va_splitedges,
1793
0, 0,
1794
reftet_2eb_2va_newelstypes,
1795
reftet_2eb_2va_newels
1796
};
1797
1798
1799
// HP_TET_2EB_2VB, // V1,3
1800
int reftet_2eb_2vb_splitedges[][3] =
1801
{
1802
{ 1, 2, 5 },
1803
{ 1, 3, 6 },
1804
{ 1, 4, 7 },
1805
{ 2, 1, 8 },
1806
{ 2, 3, 9 },
1807
{ 2, 4, 10 },
1808
{ 3, 1, 11 },
1809
{ 3, 2, 12 },
1810
{ 3, 4, 13 },
1811
{ 4, 1, 14 },
1812
{ 4, 2, 15 },
1813
{ 4, 3, 16 },
1814
{ 0, 0, 0 }
1815
};
1816
1817
HPREF_ELEMENT_TYPE reftet_2eb_2vb_newelstypes[] =
1818
{
1819
HP_PRISM_SINGEDGE,
1820
HP_PRISM_SINGEDGE,
1821
HP_TET_1E_1VA,
1822
// HP_TET_1E_1VA,
1823
HP_TET_1E_1VA,
1824
// HP_TET_1E_1VA,
1825
HP_HEX,
1826
HP_NONE,
1827
};
1828
int reftet_2eb_2vb_newels[][8] =
1829
{
1830
{ 5, 6, 7, 2, 9, 10 },
1831
{ 4, 15, 14, 13, 12, 11 },
1832
{ 1, 5, 6, 7 },
1833
// { 2, 8, 10, 9 },
1834
{ 3, 13, 11, 12 },
1835
// { 4, 16, 15, 14 },
1836
{ 7, 14, 15, 10, 6, 11, 12, 9 }
1837
};
1838
HPRef_Struct reftet_2eb_2vb =
1839
{
1840
HP_TET,
1841
reftet_2eb_2vb_splitedges,
1842
0, 0,
1843
reftet_2eb_2vb_newelstypes,
1844
reftet_2eb_2vb_newels
1845
};
1846
1847
1848
1849
1850
// HP_TET_2EB_2VC, // V1,4
1851
int reftet_2eb_2vc_splitedges[][3] =
1852
{
1853
{ 1, 2, 5 },
1854
{ 1, 3, 6 },
1855
{ 1, 4, 7 },
1856
{ 2, 1, 8 },
1857
{ 2, 3, 9 },
1858
{ 2, 4, 10 },
1859
{ 3, 1, 11 },
1860
{ 3, 2, 12 },
1861
{ 3, 4, 13 },
1862
{ 4, 1, 14 },
1863
{ 4, 2, 15 },
1864
{ 4, 3, 16 },
1865
{ 0, 0, 0 }
1866
};
1867
1868
HPREF_ELEMENT_TYPE reftet_2eb_2vc_newelstypes[] =
1869
{
1870
HP_PRISM_SINGEDGE,
1871
HP_PRISM_SINGEDGE,
1872
HP_TET_1E_1VA,
1873
// HP_TET_1E_1VA,
1874
// HP_TET_1E_1VA,
1875
HP_TET_1E_1VA,
1876
HP_HEX,
1877
HP_NONE,
1878
};
1879
int reftet_2eb_2vc_newels[][8] =
1880
{
1881
{ 5, 6, 7, 2, 9, 10 },
1882
{ 16, 15, 14, 3, 12, 11 },
1883
{ 1, 5, 6, 7 },
1884
// { 2, 8, 10, 9 },
1885
// { 3, 13, 11, 12 },
1886
{ 4, 16, 15, 14 },
1887
{ 7, 14, 15, 10, 6, 11, 12, 9 }
1888
};
1889
HPRef_Struct reftet_2eb_2vc =
1890
{
1891
HP_TET,
1892
reftet_2eb_2vc_splitedges,
1893
0, 0,
1894
reftet_2eb_2vc_newelstypes,
1895
reftet_2eb_2vc_newels
1896
};
1897
1898
1899
1900
1901
1902
1903
// HP_TET_2EB_3V, // V1,2,3
1904
int reftet_2eb_3v_splitedges[][3] =
1905
{
1906
{ 1, 2, 5 },
1907
{ 1, 3, 6 },
1908
{ 1, 4, 7 },
1909
{ 2, 1, 8 },
1910
{ 2, 3, 9 },
1911
{ 2, 4, 10 },
1912
{ 3, 1, 11 },
1913
{ 3, 2, 12 },
1914
{ 3, 4, 13 },
1915
{ 4, 1, 14 },
1916
{ 4, 2, 15 },
1917
{ 4, 3, 16 },
1918
{ 0, 0, 0 }
1919
};
1920
1921
HPREF_ELEMENT_TYPE reftet_2eb_3v_newelstypes[] =
1922
{
1923
HP_PRISM_SINGEDGE,
1924
HP_PRISM_SINGEDGE,
1925
HP_TET_1E_1VA,
1926
HP_TET_1E_1VA,
1927
HP_TET_1E_1VA,
1928
// HP_TET_1E_1VA,
1929
HP_HEX,
1930
HP_NONE,
1931
};
1932
int reftet_2eb_3v_newels[][8] =
1933
{
1934
{ 5, 6, 7, 8, 9, 10 },
1935
{ 4, 15, 14, 13, 12, 11 },
1936
{ 1, 5, 6, 7 },
1937
{ 2, 8, 10, 9 },
1938
{ 3, 13, 11, 12 },
1939
// { 4, 16, 15, 14 },
1940
{ 7, 14, 15, 10, 6, 11, 12, 9 }
1941
};
1942
HPRef_Struct reftet_2eb_3v =
1943
{
1944
HP_TET,
1945
reftet_2eb_3v_splitedges,
1946
0, 0,
1947
reftet_2eb_3v_newelstypes,
1948
reftet_2eb_3v_newels
1949
};
1950
1951
1952
1953
1954
1955
1956
// HP_TET_2EB_4V, // 2 opposite edges
1957
int reftet_2eb_4v_splitedges[][3] =
1958
{
1959
{ 1, 2, 5 },
1960
{ 1, 3, 6 },
1961
{ 1, 4, 7 },
1962
{ 2, 1, 8 },
1963
{ 2, 3, 9 },
1964
{ 2, 4, 10 },
1965
{ 3, 1, 11 },
1966
{ 3, 2, 12 },
1967
{ 3, 4, 13 },
1968
{ 4, 1, 14 },
1969
{ 4, 2, 15 },
1970
{ 4, 3, 16 },
1971
{ 0, 0, 0 }
1972
};
1973
1974
HPREF_ELEMENT_TYPE reftet_2eb_4v_newelstypes[] =
1975
{
1976
HP_PRISM_SINGEDGE,
1977
HP_PRISM_SINGEDGE,
1978
HP_TET_1E_1VA,
1979
HP_TET_1E_1VA,
1980
HP_TET_1E_1VA,
1981
HP_TET_1E_1VA,
1982
HP_HEX,
1983
HP_NONE,
1984
};
1985
int reftet_2eb_4v_newels[][8] =
1986
{
1987
{ 5, 6, 7, 8, 9, 10 },
1988
{ 16, 15, 14, 13, 12, 11 },
1989
{ 1, 5, 6, 7 },
1990
{ 2, 8, 10, 9 },
1991
{ 3, 13, 11, 12 },
1992
{ 4, 16, 15, 14 },
1993
{ 7, 14, 15, 10, 6, 11, 12, 9 }
1994
};
1995
HPRef_Struct reftet_2eb_4v =
1996
{
1997
HP_TET,
1998
reftet_2eb_4v_splitedges,
1999
0, 0,
2000
reftet_2eb_4v_newelstypes,
2001
reftet_2eb_4v_newels
2002
};
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
// HP_TET_3EA_0V,
2021
int reftet_3ea_0v_splitedges[][3] =
2022
{
2023
{ 1, 2, 5 },
2024
{ 1, 3, 6 },
2025
{ 1, 4, 7 },
2026
{ 2, 3, 8 },
2027
{ 2, 4, 9 },
2028
{ 3, 2, 10 },
2029
{ 3, 4, 11 },
2030
{ 4, 2, 12 },
2031
{ 4, 3, 13 },
2032
{ 0, 0, 0 }
2033
};
2034
int reftet_3ea_0v_splitfaces[][4] =
2035
{
2036
{ 1, 2, 3, 14 },
2037
{ 1, 2, 4, 15 },
2038
{ 1, 3, 4, 16 },
2039
{ 2, 3, 4, 17 },
2040
{ 3, 4, 2, 18 },
2041
{ 4, 2, 3, 19 },
2042
{ 0, 0, 0, 0 }
2043
};
2044
int reftet_3ea_0v_splitelements[][5] =
2045
{
2046
{ 1, 2, 3, 4, 20 },
2047
{ 0 },
2048
};
2049
2050
HPREF_ELEMENT_TYPE reftet_3ea_0v_newelstypes[] =
2051
{
2052
HP_HEX_3E_0V,
2053
HP_HEX_1E_0V,
2054
HP_HEX_1E_0V,
2055
HP_HEX_1E_0V,
2056
HP_PRISM,
2057
HP_PRISM,
2058
HP_PRISM,
2059
HP_TET,
2060
HP_NONE,
2061
};
2062
int reftet_3ea_0v_newels[][8] =
2063
{
2064
{ 1, 5, 14, 6, 7, 15, 20, 16 },
2065
{ 5, 2, 8, 14, 15, 9, 17, 20 },
2066
{ 3, 6, 14, 10, 11, 16, 20, 18 },
2067
{ 7, 4, 12, 15, 16, 13, 19, 20 },
2068
{ 11, 13, 16, 18, 19, 20 },
2069
{ 15, 12, 9, 20, 19, 17 },
2070
{ 8, 10, 14, 17, 18, 20 },
2071
{ 20, 17, 18, 19 },
2072
};
2073
HPRef_Struct reftet_3ea_0v =
2074
{
2075
HP_TET,
2076
reftet_3ea_0v_splitedges,
2077
reftet_3ea_0v_splitfaces,
2078
reftet_3ea_0v_splitelements,
2079
reftet_3ea_0v_newelstypes,
2080
reftet_3ea_0v_newels
2081
};
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
// HP_TET_3EA_1V,
2093
int reftet_3ea_1v_splitedges[][3] =
2094
{
2095
{ 1, 2, 5 },
2096
{ 1, 3, 6 },
2097
{ 1, 4, 7 },
2098
{ 2, 3, 8 },
2099
{ 2, 4, 9 },
2100
{ 3, 2, 10 },
2101
{ 3, 4, 11 },
2102
{ 4, 2, 12 },
2103
{ 4, 3, 13 },
2104
{ 2, 1, 21 },
2105
{ 3, 1, 22 },
2106
{ 4, 1, 23 },
2107
{ 0, 0, 0 }
2108
};
2109
int reftet_3ea_1v_splitfaces[][4] =
2110
{
2111
{ 1, 2, 3, 14 },
2112
{ 1, 2, 4, 15 },
2113
{ 1, 3, 4, 16 },
2114
{ 2, 3, 4, 17 },
2115
{ 3, 4, 2, 18 },
2116
{ 4, 2, 3, 19 },
2117
{ 0, 0, 0, 0 }
2118
};
2119
int reftet_3ea_1v_splitelements[][5] =
2120
{
2121
{ 1, 2, 3, 4, 20 },
2122
{ 0 },
2123
};
2124
2125
HPREF_ELEMENT_TYPE reftet_3ea_1v_newelstypes[] =
2126
{
2127
HP_HEX_3E_0V,
2128
HP_TET_1E_1VA,
2129
HP_PRISM_SINGEDGE,
2130
HP_PRISM,
2131
// HP_TET_1E_1VA,
2132
HP_PRISM_SINGEDGE,
2133
HP_PRISM,
2134
// HP_TET_1E_1VA,
2135
HP_PRISM_SINGEDGE,
2136
HP_PRISM,
2137
2138
HP_PRISM,
2139
HP_PRISM,
2140
HP_PRISM,
2141
HP_TET,
2142
HP_NONE,
2143
};
2144
int reftet_3ea_1v_newels[][8] =
2145
{
2146
{ 1, 5, 14, 6, 7, 15, 20, 16 },
2147
2148
{ 2, 21, 9, 8 },
2149
{ 5, 14, 15, 21, 8, 9 },
2150
{ 15, 14, 20, 9, 8, 17 },
2151
// { 3, 22, 10, 11 },
2152
// { 6, 16, 14, 22, 11, 10 },
2153
{ 6, 16, 14, 3, 11, 10 },
2154
{ 14, 16, 20, 10, 11, 18 },
2155
// { 4, 23, 13, 12 },
2156
// { 7, 15, 16, 23, 12, 13 },
2157
{ 7, 15, 16, 4, 12, 13 },
2158
{ 16, 15, 20, 13, 12, 19 },
2159
2160
{ 11, 13, 16, 18, 19, 20 },
2161
{ 15, 12, 9, 20, 19, 17 },
2162
{ 8, 10, 14, 17, 18, 20 },
2163
{ 20, 17, 18, 19 },
2164
};
2165
HPRef_Struct reftet_3ea_1v =
2166
{
2167
HP_TET,
2168
reftet_3ea_1v_splitedges,
2169
reftet_3ea_1v_splitfaces,
2170
reftet_3ea_1v_splitelements,
2171
reftet_3ea_1v_newelstypes,
2172
reftet_3ea_1v_newels
2173
};
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
// HP_TET_3EA_2V,
2185
int reftet_3ea_2v_splitedges[][3] =
2186
{
2187
{ 1, 2, 5 },
2188
{ 1, 3, 6 },
2189
{ 1, 4, 7 },
2190
{ 2, 3, 8 },
2191
{ 2, 4, 9 },
2192
{ 3, 2, 10 },
2193
{ 3, 4, 11 },
2194
{ 4, 2, 12 },
2195
{ 4, 3, 13 },
2196
{ 2, 1, 21 },
2197
{ 3, 1, 22 },
2198
{ 4, 1, 23 },
2199
{ 0, 0, 0 }
2200
};
2201
int reftet_3ea_2v_splitfaces[][4] =
2202
{
2203
{ 1, 2, 3, 14 },
2204
{ 1, 2, 4, 15 },
2205
{ 1, 3, 4, 16 },
2206
{ 2, 3, 4, 17 },
2207
{ 3, 4, 2, 18 },
2208
{ 4, 2, 3, 19 },
2209
{ 0, 0, 0, 0 }
2210
};
2211
int reftet_3ea_2v_splitelements[][5] =
2212
{
2213
{ 1, 2, 3, 4, 20 },
2214
{ 0 },
2215
};
2216
2217
HPREF_ELEMENT_TYPE reftet_3ea_2v_newelstypes[] =
2218
{
2219
HP_HEX_3E_0V,
2220
HP_TET_1E_1VA,
2221
HP_PRISM_SINGEDGE,
2222
HP_PRISM,
2223
HP_TET_1E_1VA,
2224
HP_PRISM_SINGEDGE,
2225
HP_PRISM,
2226
// HP_TET_1E_1VA,
2227
HP_PRISM_SINGEDGE,
2228
HP_PRISM,
2229
2230
HP_PRISM,
2231
HP_PRISM,
2232
HP_PRISM,
2233
HP_TET,
2234
HP_NONE,
2235
};
2236
int reftet_3ea_2v_newels[][8] =
2237
{
2238
{ 1, 5, 14, 6, 7, 15, 20, 16 },
2239
2240
{ 2, 21, 9, 8 },
2241
{ 5, 14, 15, 21, 8, 9 },
2242
{ 15, 14, 20, 9, 8, 17 },
2243
{ 3, 22, 10, 11 },
2244
{ 6, 16, 14, 22, 11, 10 },
2245
{ 14, 16, 20, 10, 11, 18 },
2246
// { 4, 23, 13, 12 },
2247
{ 7, 15, 16, 4, 12, 13 },
2248
{ 16, 15, 20, 13, 12, 19 },
2249
2250
{ 11, 13, 16, 18, 19, 20 },
2251
{ 15, 12, 9, 20, 19, 17 },
2252
{ 8, 10, 14, 17, 18, 20 },
2253
{ 20, 17, 18, 19 },
2254
};
2255
HPRef_Struct reftet_3ea_2v =
2256
{
2257
HP_TET,
2258
reftet_3ea_2v_splitedges,
2259
reftet_3ea_2v_splitfaces,
2260
reftet_3ea_2v_splitelements,
2261
reftet_3ea_2v_newelstypes,
2262
reftet_3ea_2v_newels
2263
};
2264
2265
2266
2267
2268
2269
2270
2271
2272
// HP_TET_3EA_3V,
2273
int reftet_3ea_3v_splitedges[][3] =
2274
{
2275
{ 1, 2, 5 },
2276
{ 1, 3, 6 },
2277
{ 1, 4, 7 },
2278
{ 2, 3, 8 },
2279
{ 2, 4, 9 },
2280
{ 3, 2, 10 },
2281
{ 3, 4, 11 },
2282
{ 4, 2, 12 },
2283
{ 4, 3, 13 },
2284
{ 2, 1, 21 },
2285
{ 3, 1, 22 },
2286
{ 4, 1, 23 },
2287
{ 0, 0, 0 }
2288
};
2289
int reftet_3ea_3v_splitfaces[][4] =
2290
{
2291
{ 1, 2, 3, 14 },
2292
{ 1, 2, 4, 15 },
2293
{ 1, 3, 4, 16 },
2294
{ 2, 3, 4, 17 },
2295
{ 3, 4, 2, 18 },
2296
{ 4, 2, 3, 19 },
2297
{ 0, 0, 0, 0 }
2298
};
2299
int reftet_3ea_3v_splitelements[][5] =
2300
{
2301
{ 1, 2, 3, 4, 20 },
2302
{ 0 },
2303
};
2304
2305
HPREF_ELEMENT_TYPE reftet_3ea_3v_newelstypes[] =
2306
{
2307
HP_HEX_3E_0V,
2308
HP_TET_1E_1VA,
2309
HP_PRISM_SINGEDGE,
2310
HP_PRISM,
2311
HP_TET_1E_1VA,
2312
HP_PRISM_SINGEDGE,
2313
HP_PRISM,
2314
HP_TET_1E_1VA,
2315
HP_PRISM_SINGEDGE,
2316
HP_PRISM,
2317
2318
HP_PRISM,
2319
HP_PRISM,
2320
HP_PRISM,
2321
HP_TET,
2322
HP_NONE,
2323
};
2324
int reftet_3ea_3v_newels[][8] =
2325
{
2326
{ 1, 5, 14, 6, 7, 15, 20, 16 },
2327
2328
{ 2, 21, 9, 8 },
2329
{ 5, 14, 15, 21, 8, 9 },
2330
{ 15, 14, 20, 9, 8, 17 },
2331
{ 3, 22, 10, 11 },
2332
{ 6, 16, 14, 22, 11, 10 },
2333
{ 14, 16, 20, 10, 11, 18 },
2334
{ 4, 23, 13, 12 },
2335
{ 7, 15, 16, 23, 12, 13 },
2336
{ 16, 15, 20, 13, 12, 19 },
2337
2338
{ 11, 13, 16, 18, 19, 20 },
2339
{ 15, 12, 9, 20, 19, 17 },
2340
{ 8, 10, 14, 17, 18, 20 },
2341
{ 20, 17, 18, 19 },
2342
};
2343
HPRef_Struct reftet_3ea_3v =
2344
{
2345
HP_TET,
2346
reftet_3ea_3v_splitedges,
2347
reftet_3ea_3v_splitfaces,
2348
reftet_3ea_3v_splitelements,
2349
reftet_3ea_3v_newelstypes,
2350
reftet_3ea_3v_newels
2351
};
2352
2353
2354
2355
2356
2357
2358
2359
// HP_TET_3EV_0V,
2360
int reftet_3eb_0v_splitedges[][3] =
2361
{
2362
{ 1, 2, 5 },
2363
{ 1, 3, 6 },
2364
{ 1, 4, 7 },
2365
{ 2, 1, 8 },
2366
{ 2, 3, 9 },
2367
{ 2, 4, 10 },
2368
{ 3, 1, 11 },
2369
// { 3, 2, 12 },
2370
{ 3, 4, 13 },
2371
// { 4, 1, 14 },
2372
{ 4, 2, 15 },
2373
{ 4, 3, 16 },
2374
{ 0, 0, 0 }
2375
};
2376
int reftet_3eb_0v_splitfaces[][4] =
2377
{
2378
{ 1, 2, 4, 17 },
2379
{ 2, 1, 3, 18 },
2380
{ 0, 0, 0, 0 }
2381
};
2382
int reftet_3eb_0v_splitelements[][5] =
2383
{
2384
{ 1, 2, 3, 4, 20 },
2385
{ 0 },
2386
};
2387
2388
HPREF_ELEMENT_TYPE reftet_3eb_0v_newelstypes[] =
2389
{
2390
HP_PYRAMID_EDGES,
2391
HP_PYRAMID_EDGES,
2392
// HP_TET_1E_1VA,
2393
// HP_TET_1E_1VA,
2394
HP_PRISM_SINGEDGE,
2395
HP_PRISM_SINGEDGE,
2396
HP_PRISM_SINGEDGE,
2397
2398
HP_PYRAMID,
2399
HP_PYRAMID,
2400
HP_TET,
2401
HP_TET,
2402
HP_PYRAMID,
2403
HP_PYRAMID,
2404
HP_PYRAMID,
2405
HP_NONE,
2406
};
2407
int reftet_3eb_0v_newels[][8] =
2408
{
2409
{ 1, 7, 17, 5, 6 },
2410
{ 2, 9, 18, 8, 10 },
2411
// { 3, 12, 13, 11 },
2412
// { 4, 14, 16, 15 },
2413
{ 5, 6, 17, 8, 18, 10 },
2414
{ 7, 17, 6, 4, 15, 16 },
2415
{ 9, 18, 10, 3, 11, 13 },
2416
2417
{ 10, 15, 16, 13, 20 },
2418
{ 6, 11, 13, 16, 20 },
2419
{ 10, 17, 15, 20 },
2420
{ 6, 18, 11, 20 },
2421
{ 6, 17, 10, 18, 20 },
2422
{ 6, 16, 15, 17, 20 },
2423
{ 18, 10, 13, 11, 20 },
2424
};
2425
HPRef_Struct reftet_3eb_0v =
2426
{
2427
HP_TET,
2428
reftet_3eb_0v_splitedges,
2429
reftet_3eb_0v_splitfaces,
2430
reftet_3eb_0v_splitelements,
2431
reftet_3eb_0v_newelstypes,
2432
reftet_3eb_0v_newels
2433
};
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
// HP_TET_3EV_1V,
2444
int reftet_3eb_1v_splitedges[][3] =
2445
{
2446
{ 1, 2, 5 },
2447
{ 1, 3, 6 },
2448
{ 1, 4, 7 },
2449
{ 2, 1, 8 },
2450
{ 2, 3, 9 },
2451
{ 2, 4, 10 },
2452
{ 3, 1, 11 },
2453
{ 3, 2, 12 },
2454
{ 3, 4, 13 },
2455
// { 4, 1, 14 },
2456
{ 4, 2, 15 },
2457
{ 4, 3, 16 },
2458
{ 0, 0, 0 }
2459
};
2460
int reftet_3eb_1v_splitfaces[][4] =
2461
{
2462
{ 1, 2, 4, 17 },
2463
{ 2, 1, 3, 18 },
2464
{ 0, 0, 0, 0 }
2465
};
2466
int reftet_3eb_1v_splitelements[][5] =
2467
{
2468
{ 1, 2, 3, 4, 20 },
2469
{ 0 },
2470
};
2471
2472
HPREF_ELEMENT_TYPE reftet_3eb_1v_newelstypes[] =
2473
{
2474
HP_PYRAMID_EDGES,
2475
HP_PYRAMID_EDGES,
2476
HP_TET_1E_1VA,
2477
// HP_TET_1E_1VA,
2478
HP_PRISM_SINGEDGE,
2479
HP_PRISM_SINGEDGE,
2480
HP_PRISM_SINGEDGE,
2481
2482
HP_PYRAMID,
2483
HP_PYRAMID,
2484
HP_TET,
2485
HP_TET,
2486
HP_PYRAMID,
2487
HP_PYRAMID,
2488
HP_PYRAMID,
2489
HP_NONE,
2490
};
2491
int reftet_3eb_1v_newels[][8] =
2492
{
2493
{ 1, 7, 17, 5, 6 },
2494
{ 2, 9, 18, 8, 10 },
2495
{ 3, 12, 13, 11 },
2496
// { 4, 14, 16, 15 },
2497
{ 5, 6, 17, 8, 18, 10 },
2498
{ 7, 17, 6, 4, 15, 16 },
2499
{ 9, 18, 10, 12, 11, 13 },
2500
2501
{ 10, 15, 16, 13, 20 },
2502
{ 6, 11, 13, 16, 20 },
2503
{ 10, 17, 15, 20 },
2504
{ 6, 18, 11, 20 },
2505
{ 6, 17, 10, 18, 20 },
2506
{ 6, 16, 15, 17, 20 },
2507
{ 18, 10, 13, 11, 20 },
2508
};
2509
HPRef_Struct reftet_3eb_1v =
2510
{
2511
HP_TET,
2512
reftet_3eb_1v_splitedges,
2513
reftet_3eb_1v_splitfaces,
2514
reftet_3eb_1v_splitelements,
2515
reftet_3eb_1v_newelstypes,
2516
reftet_3eb_1v_newels
2517
};
2518
2519
2520
2521
2522
2523
2524
2525
2526
// HP_TET_3EV_2V,
2527
int reftet_3eb_2v_splitedges[][3] =
2528
{
2529
{ 1, 2, 5 },
2530
{ 1, 3, 6 },
2531
{ 1, 4, 7 },
2532
{ 2, 1, 8 },
2533
{ 2, 3, 9 },
2534
{ 2, 4, 10 },
2535
{ 3, 1, 11 },
2536
{ 3, 2, 12 },
2537
{ 3, 4, 13 },
2538
{ 4, 1, 14 },
2539
{ 4, 2, 15 },
2540
{ 4, 3, 16 },
2541
{ 0, 0, 0 }
2542
};
2543
int reftet_3eb_2v_splitfaces[][4] =
2544
{
2545
{ 1, 2, 4, 17 },
2546
{ 2, 1, 3, 18 },
2547
{ 0, 0, 0, 0 }
2548
};
2549
int reftet_3eb_2v_splitelements[][5] =
2550
{
2551
{ 1, 2, 3, 4, 20 },
2552
{ 0 },
2553
};
2554
2555
HPREF_ELEMENT_TYPE reftet_3eb_2v_newelstypes[] =
2556
{
2557
HP_PYRAMID_EDGES,
2558
HP_PYRAMID_EDGES,
2559
HP_TET_1E_1VA,
2560
HP_TET_1E_1VA,
2561
HP_PRISM_SINGEDGE,
2562
HP_PRISM_SINGEDGE,
2563
HP_PRISM_SINGEDGE,
2564
2565
HP_PYRAMID,
2566
HP_PYRAMID,
2567
HP_TET,
2568
HP_TET,
2569
HP_PYRAMID,
2570
HP_PYRAMID,
2571
HP_PYRAMID,
2572
HP_NONE,
2573
};
2574
int reftet_3eb_2v_newels[][8] =
2575
{
2576
{ 1, 7, 17, 5, 6 },
2577
{ 2, 9, 18, 8, 10 },
2578
{ 3, 12, 13, 11 },
2579
{ 4, 14, 16, 15 },
2580
{ 5, 6, 17, 8, 18, 10 },
2581
{ 7, 17, 6, 14, 15, 16 },
2582
{ 9, 18, 10, 12, 11, 13 },
2583
2584
{ 10, 15, 16, 13, 20 },
2585
{ 6, 11, 13, 16, 20 },
2586
{ 10, 17, 15, 20 },
2587
{ 6, 18, 11, 20 },
2588
{ 6, 17, 10, 18, 20 },
2589
{ 6, 16, 15, 17, 20 },
2590
{ 18, 10, 13, 11, 20 },
2591
};
2592
HPRef_Struct reftet_3eb_2v =
2593
{
2594
HP_TET,
2595
reftet_3eb_2v_splitedges,
2596
reftet_3eb_2v_splitfaces,
2597
reftet_3eb_2v_splitelements,
2598
reftet_3eb_2v_newelstypes,
2599
reftet_3eb_2v_newels
2600
};
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
// HP_TET_3EC_0V,
2615
int reftet_3ec_0v_splitedges[][3] =
2616
{
2617
{ 1, 2, 5 },
2618
{ 1, 3, 6 },
2619
{ 1, 4, 7 },
2620
{ 2, 1, 8 },
2621
{ 2, 3, 9 },
2622
{ 2, 4, 10 },
2623
// { 3, 1, 11 },
2624
{ 3, 2, 12 },
2625
{ 3, 4, 13 },
2626
{ 4, 1, 14 },
2627
// { 4, 2, 15 },
2628
{ 4, 3, 16 },
2629
{ 0, 0, 0 }
2630
};
2631
int reftet_3ec_0v_splitfaces[][4] =
2632
{
2633
{ 1, 2, 3, 17 },
2634
{ 2, 1, 4, 18 },
2635
{ 0, 0, 0, 0 }
2636
};
2637
int reftet_3ec_0v_splitelements[][5] =
2638
{
2639
{ 1, 2, 3, 4, 20 },
2640
{ 0 },
2641
};
2642
2643
HPREF_ELEMENT_TYPE reftet_3ec_0v_newelstypes[] =
2644
{
2645
HP_PYRAMID_EDGES,
2646
HP_PYRAMID_EDGES,
2647
// HP_TET_1E_1VA,
2648
// HP_TET_1E_1VA,
2649
HP_PRISM_SINGEDGE,
2650
HP_PRISM_SINGEDGE,
2651
HP_PRISM_SINGEDGE,
2652
2653
HP_PYRAMID,
2654
HP_PYRAMID,
2655
HP_TET,
2656
HP_TET,
2657
HP_PYRAMID,
2658
HP_PYRAMID,
2659
HP_PYRAMID,
2660
HP_NONE,
2661
};
2662
int reftet_3ec_0v_newels[][8] =
2663
{
2664
{ 1, 5, 17, 6, 7 },
2665
{ 2, 8, 18, 10, 9 },
2666
// { 3, 11, 12, 13 },
2667
// { 4, 15, 14, 16 },
2668
{ 5, 17, 7, 8, 9, 18 },
2669
{ 6, 7, 17, 3, 13, 12 },
2670
{ 10, 9, 18, 4, 16, 14 },
2671
2672
{ 9, 16, 13, 12, 20 },
2673
{ 7, 13, 16, 14, 20 },
2674
{ 7, 14, 18, 20 },
2675
{ 9, 12, 17, 20 },
2676
{ 17, 7, 18, 9, 20 },
2677
{ 7, 17, 12, 13, 20 },
2678
{ 9, 18, 14, 16, 20 },
2679
};
2680
HPRef_Struct reftet_3ec_0v =
2681
{
2682
HP_TET,
2683
reftet_3ec_0v_splitedges,
2684
reftet_3ec_0v_splitfaces,
2685
reftet_3ec_0v_splitelements,
2686
reftet_3ec_0v_newelstypes,
2687
reftet_3ec_0v_newels
2688
};
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
// HP_TET_3EC_1V,
2699
int reftet_3ec_1v_splitedges[][3] =
2700
{
2701
{ 1, 2, 5 },
2702
{ 1, 3, 6 },
2703
{ 1, 4, 7 },
2704
{ 2, 1, 8 },
2705
{ 2, 3, 9 },
2706
{ 2, 4, 10 },
2707
{ 3, 1, 11 },
2708
{ 3, 2, 12 },
2709
{ 3, 4, 13 },
2710
{ 4, 1, 14 },
2711
// { 4, 2, 15 },
2712
{ 4, 3, 16 },
2713
{ 0, 0, 0 }
2714
};
2715
int reftet_3ec_1v_splitfaces[][4] =
2716
{
2717
{ 1, 2, 3, 17 },
2718
{ 2, 1, 4, 18 },
2719
{ 0, 0, 0, 0 }
2720
};
2721
int reftet_3ec_1v_splitelements[][5] =
2722
{
2723
{ 1, 2, 3, 4, 20 },
2724
{ 0 },
2725
};
2726
2727
HPREF_ELEMENT_TYPE reftet_3ec_1v_newelstypes[] =
2728
{
2729
HP_PYRAMID_EDGES,
2730
HP_PYRAMID_EDGES,
2731
HP_TET_1E_1VA,
2732
// HP_TET_1E_1VA,
2733
HP_PRISM_SINGEDGE,
2734
HP_PRISM_SINGEDGE,
2735
HP_PRISM_SINGEDGE,
2736
2737
HP_PYRAMID,
2738
HP_PYRAMID,
2739
HP_TET,
2740
HP_TET,
2741
HP_PYRAMID,
2742
HP_PYRAMID,
2743
HP_PYRAMID,
2744
HP_NONE,
2745
};
2746
int reftet_3ec_1v_newels[][8] =
2747
{
2748
{ 1, 5, 17, 6, 7 },
2749
{ 2, 8, 18, 10, 9 },
2750
{ 3, 11, 12, 13 },
2751
// { 4, 15, 14, 16 },
2752
{ 5, 17, 7, 8, 9, 18 },
2753
{ 6, 7, 17, 11, 13, 12 },
2754
{ 10, 9, 18, 4, 16, 14 },
2755
2756
{ 9, 16, 13, 12, 20 },
2757
{ 7, 13, 16, 14, 20 },
2758
{ 7, 14, 18, 20 },
2759
{ 9, 12, 17, 20 },
2760
{ 17, 7, 18, 9, 20 },
2761
{ 7, 17, 12, 13, 20 },
2762
{ 9, 18, 14, 16, 20 },
2763
};
2764
HPRef_Struct reftet_3ec_1v =
2765
{
2766
HP_TET,
2767
reftet_3ec_1v_splitedges,
2768
reftet_3ec_1v_splitfaces,
2769
reftet_3ec_1v_splitelements,
2770
reftet_3ec_1v_newelstypes,
2771
reftet_3ec_1v_newels
2772
};
2773
2774
2775
2776
2777
2778
2779
2780
2781
// HP_TET_3EC_2V,
2782
int reftet_3ec_2v_splitedges[][3] =
2783
{
2784
{ 1, 2, 5 },
2785
{ 1, 3, 6 },
2786
{ 1, 4, 7 },
2787
{ 2, 1, 8 },
2788
{ 2, 3, 9 },
2789
{ 2, 4, 10 },
2790
{ 3, 1, 11 },
2791
{ 3, 2, 12 },
2792
{ 3, 4, 13 },
2793
{ 4, 1, 14 },
2794
{ 4, 2, 15 },
2795
{ 4, 3, 16 },
2796
{ 0, 0, 0 }
2797
};
2798
int reftet_3ec_2v_splitfaces[][4] =
2799
{
2800
{ 1, 2, 3, 17 },
2801
{ 2, 1, 4, 18 },
2802
{ 0, 0, 0, 0 }
2803
};
2804
int reftet_3ec_2v_splitelements[][5] =
2805
{
2806
{ 1, 2, 3, 4, 20 },
2807
{ 0 },
2808
};
2809
2810
HPREF_ELEMENT_TYPE reftet_3ec_2v_newelstypes[] =
2811
{
2812
HP_PYRAMID_EDGES,
2813
HP_PYRAMID_EDGES,
2814
HP_TET_1E_1VA,
2815
HP_TET_1E_1VA,
2816
HP_PRISM_SINGEDGE,
2817
HP_PRISM_SINGEDGE,
2818
HP_PRISM_SINGEDGE,
2819
2820
HP_PYRAMID,
2821
HP_PYRAMID,
2822
HP_TET,
2823
HP_TET,
2824
HP_PYRAMID,
2825
HP_PYRAMID,
2826
HP_PYRAMID,
2827
HP_NONE,
2828
};
2829
int reftet_3ec_2v_newels[][8] =
2830
{
2831
{ 1, 5, 17, 6, 7 },
2832
{ 2, 8, 18, 10, 9 },
2833
{ 3, 11, 12, 13 },
2834
{ 4, 15, 14, 16 },
2835
{ 5, 17, 7, 8, 9, 18 },
2836
{ 6, 7, 17, 11, 13, 12 },
2837
{ 10, 9, 18, 15, 16, 14 },
2838
2839
{ 9, 16, 13, 12, 20 },
2840
{ 7, 13, 16, 14, 20 },
2841
{ 7, 14, 18, 20 },
2842
{ 9, 12, 17, 20 },
2843
{ 17, 7, 18, 9, 20 },
2844
{ 7, 17, 12, 13, 20 },
2845
{ 9, 18, 14, 16, 20 },
2846
};
2847
HPRef_Struct reftet_3ec_2v =
2848
{
2849
HP_TET,
2850
reftet_3ec_2v_splitedges,
2851
reftet_3ec_2v_splitfaces,
2852
reftet_3ec_2v_splitelements,
2853
reftet_3ec_2v_newelstypes,
2854
reftet_3ec_2v_newels
2855
};
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
/* ************************ 1 singular face ******************** */
2867
2868
2869
// HP_TET_1F_0E_0V
2870
int reftet_1f_0e_0v_splitedges[][3] =
2871
{
2872
{ 2, 1, 5 },
2873
{ 3, 1, 6 },
2874
{ 4, 1, 7 },
2875
{ 0, 0, 0 }
2876
};
2877
HPREF_ELEMENT_TYPE reftet_1f_0e_0v_newelstypes[] =
2878
{
2879
HP_PRISM_1FA_0E_0V,
2880
HP_TET,
2881
HP_NONE,
2882
};
2883
int reftet_1f_0e_0v_newels[][8] =
2884
{
2885
{ 3, 2, 4, 6, 5, 7 },
2886
{ 5, 7, 6, 1 }
2887
};
2888
HPRef_Struct reftet_1f_0e_0v =
2889
{
2890
HP_TET,
2891
reftet_1f_0e_0v_splitedges,
2892
0, 0,
2893
reftet_1f_0e_0v_newelstypes,
2894
reftet_1f_0e_0v_newels
2895
};
2896
2897
2898
2899
2900
2901
// HP_TET_1F_0E_1VA ... singular vertex in face
2902
int reftet_1f_0e_1va_splitedges[][3] =
2903
{
2904
{ 2, 1, 5 },
2905
{ 2, 3, 6 },
2906
{ 2, 4, 7 },
2907
{ 3, 1, 8 },
2908
{ 4, 1, 9 },
2909
{ 0, 0, 0 }
2910
};
2911
HPREF_ELEMENT_TYPE reftet_1f_0e_1va_newelstypes[] =
2912
{
2913
HP_HEX_1F_0E_0V,
2914
HP_TET_1F_0E_1VA,
2915
HP_TET,
2916
HP_NONE,
2917
};
2918
int reftet_1f_0e_1va_newels[][8] =
2919
{
2920
{ 3, 6, 7, 4, 8, 5, 5, 9 },
2921
{ 5, 2, 6, 7 },
2922
{ 5, 9, 8, 1 },
2923
};
2924
HPRef_Struct reftet_1f_0e_1va =
2925
{
2926
HP_TET,
2927
reftet_1f_0e_1va_splitedges,
2928
0, 0,
2929
reftet_1f_0e_1va_newelstypes,
2930
reftet_1f_0e_1va_newels
2931
};
2932
2933
2934
2935
2936
2937
// HP_TET_1F_0E_1VB ... singular vertex not in face
2938
int reftet_1f_0e_1vb_splitedges[][3] =
2939
{
2940
{ 1, 2, 5 },
2941
{ 1, 3, 6 },
2942
{ 1, 4, 7 },
2943
{ 2, 1, 8 },
2944
{ 3, 1, 9 },
2945
{ 4, 1, 10 },
2946
{ 0, 0, 0 }
2947
};
2948
HPREF_ELEMENT_TYPE reftet_1f_0e_1vb_newelstypes[] =
2949
{
2950
HP_PRISM_1FA_0E_0V,
2951
HP_PRISM,
2952
HP_TET_0E_1V,
2953
HP_NONE,
2954
};
2955
int reftet_1f_0e_1vb_newels[][8] =
2956
{
2957
{ 2, 4, 3, 8, 10, 9 },
2958
{ 8, 10, 9, 5, 7, 6 },
2959
{ 1, 5, 6, 7 },
2960
};
2961
HPRef_Struct reftet_1f_0e_1vb =
2962
{
2963
HP_TET,
2964
reftet_1f_0e_1vb_splitedges,
2965
0, 0,
2966
reftet_1f_0e_1vb_newelstypes,
2967
reftet_1f_0e_1vb_newels
2968
};
2969
2970
2971
2972
2973
2974
2975
2976
2977
// HP_TET_1F_1EA_0V ... sing edge is 1..2
2978
int reftet_1f_1ea_0v_splitedges[][3] =
2979
{
2980
{ 1, 3, 5 },
2981
{ 1, 4, 6 },
2982
{ 2, 1, 7 },
2983
{ 2, 3, 8 },
2984
{ 2, 4, 9 },
2985
{ 3, 1, 10 },
2986
{ 4, 1, 11 },
2987
{ 0, 0, 0 }
2988
};
2989
2990
int reftet_1f_1ea_0v_splitfaces[][4] =
2991
{
2992
{ 2, 1, 3, 12 },
2993
{ 2, 1, 4, 13 },
2994
{ 0, 0, 0, 0 }
2995
};
2996
2997
2998
HPREF_ELEMENT_TYPE reftet_1f_1ea_0v_newelstypes[] =
2999
{
3000
HP_HEX_1F_0E_0V,
3001
// HP_PRISM,
3002
HP_PYRAMID_1FB_0E_1VA,
3003
HP_TET_1E_1VA,
3004
HP_PRISM_SINGEDGE,
3005
HP_PRISM,
3006
HP_NONE,
3007
};
3008
int reftet_1f_1ea_0v_newels[][8] =
3009
{
3010
{ 3, 8, 9, 4, 10, 12, 13, 11 },
3011
// { 2, 9, 8, 7, 13, 12 },
3012
{ 8, 9, 13, 12, 2 },
3013
{ 2, 7, 13, 12 },
3014
{ 7, 13, 12, 1, 6, 5 },
3015
{ 6, 11, 13, 5, 10, 12 }
3016
};
3017
HPRef_Struct reftet_1f_1ea_0v =
3018
{
3019
HP_TET,
3020
reftet_1f_1ea_0v_splitedges,
3021
reftet_1f_1ea_0v_splitfaces,
3022
0,
3023
reftet_1f_1ea_0v_newelstypes,
3024
reftet_1f_1ea_0v_newels
3025
};
3026
3027
3028
3029
3030
3031
3032
3033
3034
// HP_TET_1F_1EB_0V singular edge in face, edge is 2-3
3035
int reftet_1f_1eb_0v_splitedges[][3] =
3036
{
3037
{ 2, 1, 5 },
3038
{ 2, 4, 6 },
3039
{ 3, 1, 7 },
3040
{ 3, 4, 8 },
3041
{ 4, 1, 9 },
3042
{ 0, 0, 0 }
3043
};
3044
3045
3046
HPREF_ELEMENT_TYPE reftet_1f_1eb_0v_newelstypes[] =
3047
{
3048
HP_PRISM_1FB_1EA_0V,
3049
HP_PRISM_1FA_0E_0V,
3050
HP_TET,
3051
HP_NONE,
3052
};
3053
int reftet_1f_1eb_0v_newels[][8] =
3054
{
3055
// { 2, 5, 6, 3, 7, 8 },
3056
{ 3, 8, 7, 2, 6, 5 },
3057
{ 6, 4, 8, 5, 9, 7 },
3058
{ 5, 9, 7, 1}
3059
};
3060
HPRef_Struct reftet_1f_1eb_0v =
3061
{
3062
HP_TET,
3063
reftet_1f_1eb_0v_splitedges,
3064
0, 0,
3065
reftet_1f_1eb_0v_newelstypes,
3066
reftet_1f_1eb_0v_newels
3067
};
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
/* ************************ 2 singular faces ******************** */
3079
3080
3081
// HP_TET_2F_0E_0V
3082
int reftet_2f_0e_0v_splitedges[][3] =
3083
{
3084
{ 1, 2, 5 },
3085
{ 2, 1, 6 },
3086
{ 3, 1, 7 },
3087
{ 3, 2, 8 },
3088
{ 4, 1, 9 },
3089
{ 4, 2, 10 },
3090
{ 0, 0, 0 }
3091
};
3092
3093
int reftet_2f_0e_0v_splitfaces[][4] =
3094
{
3095
{ 3, 1, 2, 11 },
3096
{ 4, 1, 2, 12 },
3097
{ 0, 0, 0, 0 }
3098
};
3099
3100
3101
HPREF_ELEMENT_TYPE reftet_2f_0e_0v_newelstypes[] =
3102
{
3103
HP_PRISM_1FA_0E_0V,
3104
HP_PRISM_1FA_0E_0V,
3105
HP_PRISM_1FB_1EA_0V,
3106
HP_PRISM_1FB_1EA_0V,
3107
HP_TET,
3108
HP_NONE,
3109
};
3110
int reftet_2f_0e_0v_newels[][8] =
3111
{
3112
{ 2, 10, 8, 6, 12, 11 },
3113
{ 1, 7, 9, 5, 11, 12 },
3114
// { 3, 11, 8, 4, 12, 10 },
3115
{ 4, 10, 12, 3, 8, 11 },
3116
{ 3, 7, 11, 4, 9, 12 },
3117
{ 5, 6, 11, 12 }
3118
};
3119
HPRef_Struct reftet_2f_0e_0v =
3120
{
3121
HP_TET,
3122
reftet_2f_0e_0v_splitedges,
3123
reftet_2f_0e_0v_splitfaces,
3124
0,
3125
reftet_2f_0e_0v_newelstypes,
3126
reftet_2f_0e_0v_newels
3127
};
3128
3129
3130