GetFEM++  5.3
bgeot_convex_ref_simplexified.cc
1 /*===========================================================================
2 
3  Copyright (C) 2006-2017 Yves Renard
4 
5  This file is a part of GetFEM++
6 
7  GetFEM++ is free software; you can redistribute it and/or modify it
8  under the terms of the GNU Lesser General Public License as published
9  by the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version along with the GCC Runtime Library
11  Exception either version 3.1 or (at your option) any later version.
12  This program is distributed in the hope that it will be useful, but
13  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15  License and GCC Runtime Library Exception for more details.
16  You should have received a copy of the GNU Lesser General Public License
17  along with this program; if not, write to the Free Software Foundation,
18  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19 
20 ===========================================================================*/
21 
22 
24 
25 
26 namespace bgeot {
27 
28 
29  static size_type simplexified_parallelepiped_2[6] = {
30  3, 0, 2, 3, 0, 1
31  };
32 
33  static size_type simplexified_parallelepiped_2_nb = 2;
34 
35  static size_type simplexified_parallelepiped_3[24] = {
36  3, 7, 0, 1, 7, 0, 5, 4, 7, 0, 1, 5, 3, 7, 0, 2, 6, 7,
37  0, 4, 6, 7, 0, 2
38  };
39 
40  static size_type simplexified_parallelepiped_3_nb = 6;
41 
42  static size_type simplexified_parallelepiped_4[80] = {
43  9, 3, 1, 5, 0, 9, 12, 10, 8, 0, 9, 12, 5, 13, 15, 9, 3, 10,
44  6, 0, 9, 3, 5, 6, 0, 9, 3, 10, 11, 15, 9, 12, 10, 6, 0, 9,
45  12, 5, 6, 0, 9, 3, 10, 6, 15, 9, 3, 5, 6, 15, 9, 12, 10, 6,
46  15, 9, 12, 5, 6, 15, 12, 4, 5, 6, 0, 3, 5, 6, 7, 15, 12, 10,
47  14, 6, 15, 3, 10, 6, 2, 0
48  };
49 
50  static size_type simplexified_parallelepiped_4_nb = 16;
51 
52  static size_type simplexified_parallelepiped_5[402] = {
53  17, 9, 5, 3, 12, 0, 17, 5, 20, 3, 12, 0, 17, 9, 5, 3, 1, 0,
54  17, 9, 5, 3, 12, 31, 17, 5, 20, 3, 12, 31, 17, 9, 29, 5, 12, 31,
55  17, 29, 5, 20, 12, 31, 17, 29, 5, 20, 23, 31, 17, 5, 20, 3, 23, 31,
56  17, 9, 3, 12, 18, 0, 17, 20, 3, 12, 18, 0, 17, 9, 29, 24, 12, 31,
57  17, 29, 24, 20, 12, 31, 17, 9, 24, 3, 12, 31, 17, 29, 5, 20, 23, 21,
58  17, 24, 20, 12, 18, 31, 17, 24, 3, 12, 18, 31, 17, 20, 3, 12, 18, 31,
59  17, 20, 3, 23, 18, 31, 17, 3, 23, 18, 19, 31, 17, 9, 24, 12, 18, 0,
60  17, 24, 20, 12, 18, 0, 17, 24, 3, 18, 27, 31, 17, 3, 18, 19, 27, 31,
61  17, 24, 20, 18, 0, 16, 17, 9, 29, 24, 27, 31, 17, 9, 24, 3, 27, 31,
62  17, 9, 29, 24, 27, 25, 9, 24, 3, 10, 27, 31, 9, 3, 10, 15, 27, 31,
63  9, 3, 10, 15, 27, 11, 9, 29, 5, 12, 13, 15, 9, 24, 3, 10, 12, 31,
64  9, 3, 10, 12, 15, 31, 9, 29, 5, 12, 15, 31, 9, 5, 3, 12, 15, 31,
65  9, 24, 10, 12, 8, 0, 9, 24, 10, 12, 18, 0, 9, 3, 10, 12, 18, 0,
66  29, 24, 20, 28, 12, 30, 29, 24, 20, 12, 31, 30, 5, 3, 23, 6, 15, 31,
67  5, 3, 12, 6, 15, 31, 5, 20, 3, 23, 6, 31, 5, 20, 3, 12, 6, 31,
68  5, 3, 23, 7, 6, 15, 5, 20, 3, 12, 6, 0, 5, 20, 12, 6, 0, 4,
69  24, 3, 10, 12, 18, 31, 24, 3, 10, 18, 27, 31, 24, 10, 12, 18, 31, 30,
70  24, 10, 18, 27, 31, 30, 24, 10, 18, 27, 26, 30, 24, 20, 12, 18, 31, 30,
71  20, 23, 18, 6, 31, 30, 20, 12, 18, 6, 31, 30, 20, 3, 23, 18, 6, 31,
72  20, 3, 12, 18, 6, 31, 20, 23, 18, 6, 22, 30, 20, 3, 12, 18, 6, 0,
73  3, 10, 12, 18, 6, 31, 3, 10, 12, 6, 15, 31, 3, 10, 18, 6, 0, 2,
74  3, 10, 12, 18, 6, 0, 10, 12, 6, 15, 14, 31, 10, 12, 18, 6, 31, 30,
75  10, 12, 6, 14, 31, 30
76  };
77 
78  static size_type simplexified_parallelepiped_5_nb = 67;
79 
80  static size_type simplexified_parallelepiped_6[2527] = {
81  25, 17, 24, 59, 9, 63, 57, 25, 17, 24, 9, 29, 63, 57, 25, 17, 24, 59,
82  9, 27, 63, 25, 17, 24, 9, 27, 63, 31, 25, 17, 24, 9, 29, 63, 31, 48,
83  17, 24, 16, 18, 20, 0, 48, 17, 24, 40, 18, 20, 0, 48, 24, 58, 40, 63,
84  18, 62, 48, 24, 40, 63, 18, 20, 62, 48, 34, 17, 40, 18, 20, 0, 48, 24,
85  58, 60, 40, 63, 62, 48, 24, 60, 40, 63, 20, 62, 48, 34, 17, 40, 36, 20,
86  0, 48, 17, 24, 40, 63, 57, 61, 48, 17, 24, 40, 63, 20, 61, 48, 24, 60,
87  40, 63, 57, 61, 48, 24, 60, 40, 63, 20, 61, 48, 60, 55, 36, 20, 54, 62,
88  48, 17, 24, 59, 40, 63, 18, 48, 17, 24, 40, 63, 18, 20, 48, 24, 59, 58,
89  40, 63, 18, 48, 34, 58, 40, 63, 18, 62, 48, 34, 40, 63, 18, 20, 62, 48,
90  34, 58, 63, 50, 18, 62, 48, 34, 63, 50, 18, 55, 62, 48, 34, 63, 18, 55,
91  20, 62, 48, 34, 50, 18, 55, 54, 62, 48, 34, 18, 55, 20, 54, 62, 48, 34,
92  55, 36, 20, 54, 62, 48, 17, 24, 59, 40, 63, 57, 48, 24, 59, 58, 60, 40,
93  57, 48, 24, 58, 60, 40, 56, 57, 48, 24, 59, 60, 40, 63, 57, 48, 24, 59,
94  58, 60, 40, 63, 48, 17, 40, 63, 36, 20, 61, 48, 17, 53, 55, 36, 20, 61,
95  48, 60, 40, 63, 36, 20, 61, 48, 60, 55, 36, 20, 54, 52, 48, 60, 53, 55,
96  36, 20, 61, 48, 60, 53, 55, 36, 20, 52, 48, 60, 40, 63, 36, 20, 62, 48,
97  60, 63, 55, 36, 20, 62, 48, 34, 17, 59, 40, 63, 18, 48, 34, 17, 40, 63,
98  18, 20, 48, 34, 59, 58, 40, 63, 18, 48, 34, 59, 58, 63, 50, 18, 48, 34,
99  17, 33, 40, 36, 0, 48, 34, 32, 33, 40, 36, 0, 48, 34, 17, 40, 63, 36,
100  20, 48, 34, 17, 63, 55, 36, 20, 48, 34, 40, 63, 36, 20, 62, 48, 34, 63,
101  55, 36, 20, 62, 48, 34, 17, 59, 63, 18, 55, 48, 34, 17, 63, 18, 55, 20,
102  48, 34, 59, 63, 50, 18, 55, 48, 17, 33, 40, 63, 57, 61, 48, 17, 33, 40,
103  63, 36, 61, 48, 17, 33, 49, 63, 57, 61, 48, 17, 33, 49, 53, 55, 61, 48,
104  17, 33, 53, 55, 36, 61, 48, 17, 63, 55, 36, 20, 61, 48, 60, 63, 55, 36,
105  20, 61, 48, 34, 17, 33, 40, 63, 36, 48, 34, 17, 33, 63, 55, 36, 48, 17,
106  59, 33, 49, 63, 57, 48, 17, 59, 33, 40, 63, 57, 48, 17, 33, 49, 63, 55,
107  61, 48, 17, 33, 63, 55, 36, 61, 48, 34, 17, 59, 33, 40, 63, 48, 34, 17,
108  59, 33, 63, 55, 48, 34, 17, 59, 18, 55, 51, 48, 34, 59, 50, 18, 55, 51,
109  48, 17, 59, 33, 49, 63, 55, 48, 34, 17, 59, 33, 55, 51, 48, 17, 59, 33,
110  49, 55, 51, 34, 17, 10, 6, 18, 20, 0, 34, 17, 10, 6, 36, 20, 0, 34,
111  6, 18, 55, 20, 54, 62, 34, 6, 55, 36, 20, 54, 62, 34, 17, 33, 10, 6,
112  3, 0, 34, 17, 10, 6, 3, 18, 0, 34, 17, 10, 63, 6, 18, 20, 34, 17,
113  10, 63, 6, 36, 20, 34, 17, 40, 10, 18, 20, 0, 34, 17, 40, 10, 36, 20,
114  0, 34, 17, 33, 10, 6, 36, 0, 34, 10, 63, 6, 18, 20, 62, 34, 10, 63,
115  6, 36, 20, 62, 34, 10, 6, 3, 18, 2, 0, 34, 17, 63, 6, 18, 55, 20,
116  34, 17, 63, 6, 55, 36, 20, 34, 63, 6, 18, 55, 20, 62, 34, 63, 6, 55,
117  36, 20, 62, 34, 17, 33, 10, 63, 6, 3, 34, 17, 10, 63, 6, 3, 18, 34,
118  10, 46, 63, 6, 36, 62, 34, 46, 63, 6, 38, 36, 62, 34, 6, 55, 38, 36,
119  54, 62, 34, 17, 33, 10, 63, 6, 36, 34, 17, 40, 10, 63, 18, 20, 34, 17,
120  40, 10, 63, 36, 20, 34, 17, 33, 40, 10, 36, 0, 34, 40, 10, 63, 18, 20,
121  62, 34, 40, 10, 63, 36, 20, 62, 34, 17, 33, 63, 6, 55, 36, 34, 17, 33,
122  63, 6, 3, 55, 34, 17, 63, 6, 3, 18, 55, 34, 17, 59, 33, 10, 63, 3,
123  34, 17, 59, 10, 63, 3, 18, 34, 47, 10, 46, 63, 6, 36, 34, 47, 46, 63,
124  6, 38, 36, 34, 47, 40, 10, 46, 63, 36, 34, 63, 6, 55, 38, 36, 62, 34,
125  17, 59, 33, 40, 10, 63, 34, 17, 59, 40, 10, 63, 18, 34, 17, 33, 40, 10,
126  63, 36, 34, 58, 40, 10, 63, 18, 62, 34, 58, 47, 40, 10, 46, 63, 34, 58,
127  40, 10, 46, 63, 62, 34, 40, 10, 46, 63, 36, 62, 34, 33, 47, 10, 63, 6,
128  3, 34, 33, 47, 63, 6, 3, 55, 34, 17, 59, 33, 63, 3, 55, 34, 17, 59,
129  63, 3, 18, 55, 34, 33, 47, 10, 63, 6, 36, 34, 33, 47, 63, 6, 55, 36,
130  34, 33, 47, 39, 6, 55, 36, 34, 47, 39, 6, 55, 38, 36, 34, 47, 63, 6,
131  55, 38, 36, 34, 33, 47, 39, 6, 3, 55, 34, 58, 47, 40, 10, 46, 42, 34,
132  59, 33, 47, 40, 10, 63, 34, 33, 47, 40, 10, 63, 36, 34, 59, 47, 40, 10,
133  42, 43, 34, 59, 33, 47, 40, 10, 43, 34, 59, 33, 47, 10, 63, 3, 34, 59,
134  33, 47, 63, 3, 55, 34, 59, 33, 47, 10, 3, 43, 34, 59, 33, 47, 3, 43,
135  35, 34, 17, 59, 33, 3, 55, 51, 34, 17, 59, 3, 18, 55, 51, 34, 33, 47,
136  39, 3, 55, 35, 34, 59, 58, 40, 10, 63, 18, 34, 59, 58, 47, 40, 10, 63,
137  34, 59, 33, 47, 3, 55, 35, 34, 59, 58, 47, 40, 10, 42, 34, 59, 33, 3,
138  55, 51, 35, 13, 15, 12, 9, 45, 5, 61, 13, 15, 12, 9, 29, 5, 61, 30,
139  63, 6, 18, 20, 54, 62, 15, 12, 30, 10, 46, 6, 14, 15, 12, 47, 10, 46,
140  63, 6, 15, 12, 30, 10, 46, 63, 6, 15, 12, 9, 45, 47, 5, 61, 15, 12,
141  30, 10, 63, 6, 31, 15, 12, 9, 47, 63, 5, 61, 15, 12, 9, 29, 63, 5,
142  61, 15, 12, 47, 10, 63, 6, 5, 15, 12, 10, 63, 6, 5, 31, 30, 63, 6,
143  18, 31, 23, 20, 15, 59, 11, 9, 27, 10, 3, 15, 59, 9, 27, 10, 63, 3,
144  15, 12, 9, 47, 10, 63, 5, 15, 12, 9, 10, 63, 5, 31, 15, 12, 9, 29,
145  63, 5, 31, 15, 47, 39, 6, 5, 3, 23, 30, 6, 18, 22, 55, 20, 54, 15,
146  7, 39, 6, 5, 3, 23, 30, 63, 6, 18, 55, 20, 54, 30, 6, 18, 22, 55,
147  23, 20, 15, 47, 10, 63, 6, 5, 3, 30, 63, 6, 18, 55, 23, 20, 15, 10,
148  63, 6, 5, 3, 31, 15, 59, 11, 9, 47, 10, 3, 15, 59, 9, 47, 10, 63,
149  3, 15, 9, 27, 10, 63, 3, 31, 15, 9, 47, 10, 63, 5, 3, 15, 9, 10,
150  63, 5, 3, 31, 15, 47, 63, 6, 5, 3, 23, 30, 10, 63, 6, 18, 20, 62,
151  30, 10, 63, 6, 18, 31, 20, 15, 63, 6, 5, 3, 31, 23, 17, 9, 29, 63,
152  5, 31, 20, 17, 29, 63, 5, 31, 23, 20, 17, 10, 63, 6, 5, 3, 31, 17,
153  10, 63, 6, 5, 31, 20, 17, 24, 9, 27, 10, 63, 31, 17, 9, 27, 10, 63,
154  3, 31, 17, 9, 10, 63, 5, 3, 31, 17, 9, 10, 63, 5, 31, 20, 17, 24,
155  27, 10, 63, 18, 31, 17, 27, 10, 63, 3, 18, 31, 17, 63, 6, 5, 3, 31,
156  23, 17, 63, 6, 5, 31, 23, 20, 17, 33, 9, 40, 63, 36, 61, 17, 9, 40,
157  63, 36, 20, 61, 17, 33, 9, 10, 63, 5, 36, 17, 9, 10, 63, 5, 36, 20,
158  17, 10, 63, 6, 3, 18, 31, 17, 10, 63, 6, 18, 31, 20, 17, 33, 10, 63,
159  6, 5, 36, 17, 10, 63, 6, 5, 36, 20, 17, 24, 9, 40, 63, 57, 61, 17,
160  33, 9, 40, 63, 57, 61, 17, 24, 9, 40, 63, 20, 61, 17, 24, 9, 29, 63,
161  57, 61, 17, 24, 9, 29, 63, 20, 61, 17, 33, 9, 63, 5, 36, 61, 17, 9,
162  63, 5, 36, 20, 61, 17, 9, 29, 63, 5, 20, 61, 17, 29, 63, 5, 21, 20,
163  61, 17, 29, 63, 5, 21, 23, 20, 17, 24, 9, 29, 63, 31, 20, 17, 24, 59,
164  9, 27, 10, 63, 17, 59, 9, 27, 10, 63, 3, 17, 24, 59, 27, 10, 63, 18,
165  17, 59, 27, 10, 63, 3, 18, 17, 63, 6, 3, 18, 31, 23, 17, 63, 6, 18,
166  31, 23, 20, 17, 33, 10, 63, 6, 5, 3, 17, 33, 9, 10, 63, 5, 3, 17,
167  24, 9, 10, 63, 31, 20, 17, 24, 10, 63, 18, 31, 20, 17, 27, 63, 3, 18,
168  31, 23, 17, 63, 5, 21, 55, 20, 61, 17, 33, 63, 5, 55, 36, 61, 17, 63,
169  5, 55, 36, 20, 61, 17, 24, 59, 9, 40, 10, 63, 17, 59, 33, 9, 40, 10,
170  63, 17, 24, 9, 40, 10, 63, 20, 17, 63, 6, 5, 3, 55, 23, 17, 63, 6,
171  5, 55, 23, 20, 17, 63, 6, 3, 18, 55, 23, 17, 63, 6, 18, 55, 23, 20,
172  17, 33, 9, 40, 10, 63, 36, 17, 9, 40, 10, 63, 36, 20, 17, 33, 63, 6,
173  5, 3, 55, 17, 33, 63, 6, 5, 55, 36, 17, 63, 6, 5, 55, 36, 20, 17,
174  33, 9, 10, 6, 36, 0, 17, 9, 10, 6, 36, 20, 0, 17, 24, 59, 9, 40,
175  63, 57, 17, 59, 33, 9, 40, 63, 57, 17, 24, 59, 40, 10, 63, 18, 17, 59,
176  33, 9, 10, 63, 3, 17, 33, 9, 10, 6, 3, 0, 17, 59, 27, 63, 3, 18,
177  23, 17, 53, 5, 21, 55, 20, 61, 17, 63, 5, 21, 55, 23, 20, 17, 59, 63,
178  3, 18, 55, 23, 17, 33, 53, 5, 55, 36, 61, 17, 53, 5, 55, 36, 20, 61,
179  17, 24, 40, 10, 63, 18, 20, 17, 24, 9, 40, 10, 20, 0, 17, 33, 9, 40,
180  10, 36, 0, 17, 9, 40, 10, 36, 20, 0, 17, 33, 9, 6, 5, 36, 0, 17,
181  9, 6, 5, 36, 20, 0, 17, 33, 9, 6, 5, 3, 0, 17, 59, 19, 27, 3,
182  18, 23, 17, 59, 19, 3, 18, 55, 23, 17, 24, 40, 10, 18, 20, 0, 17, 1,
183  33, 9, 5, 3, 0, 17, 59, 19, 3, 18, 55, 51, 24, 59, 58, 27, 30, 10,
184  18, 24, 58, 26, 27, 30, 10, 18, 24, 58, 30, 10, 63, 18, 62, 24, 30, 10,
185  63, 18, 20, 62, 24, 27, 30, 10, 63, 18, 31, 24, 30, 10, 63, 18, 31, 20,
186  24, 59, 27, 30, 10, 63, 18, 24, 59, 58, 30, 10, 63, 18, 24, 58, 40, 10,
187  63, 18, 62, 24, 40, 10, 63, 18, 20, 62, 24, 12, 60, 30, 63, 20, 62, 24,
188  12, 30, 10, 63, 20, 62, 24, 28, 12, 60, 30, 63, 20, 24, 28, 12, 30, 29,
189  63, 20, 24, 59, 58, 40, 10, 63, 18, 24, 12, 9, 40, 10, 8, 0, 24, 12,
190  9, 40, 10, 20, 0, 24, 12, 30, 10, 63, 31, 20, 24, 12, 30, 29, 63, 31,
191  20, 24, 12, 60, 40, 63, 20, 62, 24, 12, 40, 10, 63, 20, 62, 24, 28, 12,
192  60, 29, 63, 20, 24, 12, 9, 10, 63, 31, 20, 24, 12, 9, 29, 63, 31, 20,
193  24, 12, 9, 40, 10, 63, 20, 24, 12, 60, 40, 63, 20, 61, 24, 12, 60, 29,
194  63, 20, 61, 24, 12, 9, 40, 63, 20, 61, 24, 12, 9, 29, 63, 20, 61, 59,
195  11, 9, 47, 10, 3, 43, 59, 33, 9, 47, 10, 63, 3, 59, 33, 9, 47, 10,
196  3, 43, 59, 33, 9, 47, 40, 10, 63, 59, 33, 9, 47, 40, 10, 43, 59, 33,
197  9, 47, 40, 41, 63, 59, 33, 9, 47, 40, 41, 43, 59, 33, 9, 40, 41, 63,
198  57, 12, 4, 6, 5, 36, 20, 0, 12, 10, 46, 63, 6, 36, 62, 12, 10, 63,
199  6, 36, 20, 62, 12, 30, 10, 46, 63, 6, 62, 12, 30, 10, 63, 6, 20, 62,
200  12, 9, 10, 6, 36, 20, 0, 12, 9, 6, 5, 36, 20, 0, 12, 60, 47, 44,
201  40, 46, 36, 12, 47, 10, 46, 63, 6, 36, 12, 60, 40, 46, 63, 36, 62, 12,
202  40, 10, 46, 63, 36, 62, 12, 30, 10, 63, 6, 31, 20, 12, 9, 40, 10, 36,
203  20, 0, 12, 47, 10, 63, 6, 5, 36, 12, 10, 63, 6, 5, 36, 20, 12, 10,
204  63, 6, 5, 31, 20, 12, 60, 47, 40, 46, 63, 36, 12, 47, 40, 10, 46, 63,
205  36, 12, 60, 40, 63, 36, 20, 62, 12, 40, 10, 63, 36, 20, 62, 12, 60, 45,
206  47, 44, 40, 36, 12, 9, 47, 40, 10, 63, 36, 12, 9, 47, 10, 63, 5, 36,
207  12, 9, 40, 10, 63, 36, 20, 12, 9, 10, 63, 5, 36, 20, 12, 9, 40, 63,
208  36, 20, 61, 12, 9, 63, 5, 36, 20, 61, 12, 47, 40, 63, 5, 36, 61, 12,
209  45, 47, 40, 5, 36, 61, 12, 9, 10, 63, 5, 31, 20, 12, 9, 29, 63, 5,
210  31, 20, 12, 60, 47, 40, 63, 36, 61, 12, 60, 40, 63, 36, 20, 61, 12, 60,
211  45, 47, 40, 36, 61, 12, 9, 47, 40, 63, 5, 61, 12, 9, 45, 47, 40, 5,
212  61, 12, 9, 29, 63, 5, 20, 61, 33, 47, 10, 63, 6, 5, 3, 33, 47, 10,
213  63, 6, 5, 36, 33, 47, 39, 6, 5, 3, 55, 33, 47, 39, 6, 5, 55, 36,
214  33, 9, 47, 10, 63, 5, 3, 33, 9, 47, 10, 63, 5, 36, 33, 9, 47, 40,
215  10, 63, 36, 33, 9, 45, 47, 40, 5, 61, 33, 45, 47, 40, 5, 36, 61, 33,
216  47, 63, 6, 5, 3, 55, 33, 47, 63, 6, 5, 55, 36, 33, 53, 5, 37, 55,
217  36, 61, 33, 47, 39, 5, 37, 55, 36, 33, 45, 47, 5, 37, 36, 61, 33, 9,
218  45, 47, 40, 41, 61, 33, 9, 47, 40, 63, 5, 61, 33, 47, 40, 63, 5, 36,
219  61, 33, 9, 40, 41, 63, 57, 61, 33, 47, 5, 37, 55, 36, 61, 33, 9, 47,
220  40, 41, 63, 61, 33, 47, 63, 5, 55, 36, 61, 47, 39, 6, 5, 3, 55, 23,
221  47, 63, 6, 5, 3, 55, 23
222  };
223 
224  static size_type simplexified_parallelepiped_6_nb = 361;
225 
226  static size_type simplexified_prism_3[12] = {
227  2, 4, 0, 1, 2, 4, 0, 3, 2, 4, 5, 3
228  };
229 
230  static size_type simplexified_prism_3_nb = 3;
231 
232  static size_type simplexified_prism_4[20] = {
233  6, 1, 3, 7, 0, 6, 1, 3, 2, 0, 6, 1, 4, 7, 0, 6, 1, 4,
234  7, 5
235  };
236 
237  static size_type simplexified_prism_4_nb = 4;
238 
239  static size_type simplexified_prism_5[30] = {
240  4, 8, 1, 9, 5, 2, 8, 1, 7, 9, 5, 6, 4, 8, 1, 5, 3, 2,
241  4, 1, 0, 5, 3, 2, 8, 1, 7, 9, 5, 2
242  };
243 
244  static size_type simplexified_prism_5_nb = 5;
245 
246  static size_type simplexified_prism_6[42] = {
247  1, 6, 2, 4, 5, 3, 0, 1, 6, 2, 9, 4, 5, 3, 1, 6, 2, 9,
248  4, 5, 8, 1, 6, 9, 4, 5, 8, 7, 6, 11, 9, 4, 5, 8, 7, 6,
249  11, 9, 4, 10, 8, 7
250  };
251 
252  static size_type simplexified_prism_6_nb = 6;
253 
254  static size_type simplexified_pyramid[8] = {
255  0, 1, 2, 4, 3, 2, 1, 4
256  };
257 
258  static size_type simplexified_pyramid_nb = 2;
259 
260 
261  size_type simplexified_tab(pconvex_structure cvs, size_type **tab) {
262 
263  if (cvs == parallelepiped_structure(2)) {
264  *tab = simplexified_parallelepiped_2;
265  return simplexified_parallelepiped_2_nb;
266  }
267 
268  if (cvs == parallelepiped_structure(3)) {
269  *tab = simplexified_parallelepiped_3;
270  return simplexified_parallelepiped_3_nb;
271  }
272 
273  if (cvs == parallelepiped_structure(4)) {
274  *tab = simplexified_parallelepiped_4;
275  return simplexified_parallelepiped_4_nb;
276  }
277 
278  if (cvs == parallelepiped_structure(5)) {
279  *tab = simplexified_parallelepiped_5;
280  return simplexified_parallelepiped_5_nb;
281  }
282 
283  if (cvs == parallelepiped_structure(6)) {
284  *tab = simplexified_parallelepiped_6;
285  return simplexified_parallelepiped_6_nb;
286  }
287 
288  if (cvs == prism_P1_structure(3)) {
289  *tab = simplexified_prism_3;
290  return simplexified_prism_3_nb;
291  }
292 
293  if (cvs == prism_P1_structure(4)) {
294  *tab = simplexified_prism_4;
295  return simplexified_prism_4_nb;
296  }
297 
298  if (cvs == prism_P1_structure(5)) {
299  *tab = simplexified_prism_5;
300  return simplexified_prism_5_nb;
301  }
302 
303  if (cvs == prism_P1_structure(6)) {
304  *tab = simplexified_prism_6;
305  return simplexified_prism_6_nb;
306  }
307 
308  if (cvs == pyramid_QK_structure(1)) {
309  *tab = simplexified_pyramid;
310  return simplexified_pyramid_nb;
311  }
312 
313  *tab = nullptr; // Not taken into account
314  return 0;
315  }
316 
317 
318  static size_type refinement_simplex_1[4] = {
319  1, 0, 1, 2
320  };
321 
322  static size_type refinement_simplex_1_nb = 2;
323 
324  static size_type refinement_simplex_2[12] = {
325  3, 1, 4, 3, 1, 0, 1, 4, 2, 3, 4, 5
326  };
327 
328  static size_type refinement_simplex_2_nb = 4;
329 
330  static size_type refinement_simplex_3[32] = {
331  6, 3, 8, 4, 6, 7, 8, 4, 6, 3, 1, 4, 7, 1, 4, 2, 6, 7,
332  1, 4, 6, 3, 1, 0, 6, 7, 8, 9, 3, 8, 4, 5
333  };
334 
335  static size_type refinement_simplex_3_nb = 8;
336 
337  static size_type refinement_simplex_4[80] = {
338  6, 8, 7, 13, 9, 6, 10, 1, 3, 0, 6, 10, 12, 13, 11, 6, 10, 12,
339  3, 11, 6, 8, 7, 13, 11, 6, 8, 12, 13, 11, 6, 8, 12, 3, 11, 6,
340  10, 1, 3, 11, 6, 8, 7, 4, 11, 6, 7, 1, 4, 11, 6, 8, 4, 3,
341  11, 6, 1, 4, 3, 11, 10, 12, 13, 11, 14, 8, 12, 4, 3, 11, 8, 12,
342  4, 3, 5, 7, 1, 4, 11, 2
343  };
344 
345  static size_type refinement_simplex_4_nb = 16;
346 
347  static size_type refinement_simplex_5[192] = {
348  15, 19, 16, 17, 18, 6, 15, 19, 16, 17, 18, 20, 15, 1, 10, 3, 6, 0,
349  15, 19, 16, 17, 1, 6, 15, 19, 17, 1, 10, 6, 15, 17, 1, 10, 3, 6,
350  19, 16, 17, 1, 7, 6, 19, 17, 1, 7, 6, 13, 19, 16, 17, 18, 7, 6,
351  19, 17, 18, 7, 6, 13, 19, 17, 1, 10, 6, 13, 19, 16, 17, 1, 11, 7,
352  19, 17, 1, 11, 7, 13, 19, 17, 1, 10, 11, 13, 19, 17, 10, 11, 12, 13,
353  19, 10, 11, 12, 13, 14, 8, 17, 4, 3, 12, 13, 8, 17, 4, 3, 12, 5,
354  8, 17, 4, 3, 6, 13, 8, 17, 18, 7, 6, 13, 8, 18, 7, 6, 13, 9,
355  8, 17, 4, 7, 6, 13, 16, 17, 1, 4, 11, 7, 16, 1, 4, 11, 7, 2,
356  17, 1, 4, 11, 7, 13, 17, 1, 10, 3, 6, 13, 17, 1, 4, 7, 6, 13,
357  17, 1, 10, 3, 11, 13, 17, 1, 4, 3, 11, 13, 17, 1, 4, 3, 6, 13,
358  17, 10, 3, 11, 12, 13, 17, 4, 3, 11, 12, 13
359  };
360 
361  static size_type refinement_simplex_5_nb = 32;
362 
363  static size_type refinement_simplex_6[448] = {
364  26, 23, 21, 17, 16, 19, 6, 26, 23, 17, 16, 18, 19, 6, 26, 23, 21, 16,
365  22, 19, 6, 26, 23, 16, 18, 22, 19, 6, 26, 23, 18, 22, 24, 19, 6, 26,
366  21, 17, 16, 15, 19, 6, 26, 17, 16, 18, 15, 19, 6, 26, 25, 23, 21, 22,
367  24, 6, 26, 25, 23, 21, 22, 19, 6, 26, 25, 23, 22, 24, 19, 6, 26, 25,
368  23, 21, 22, 24, 27, 26, 17, 16, 18, 15, 19, 20, 25, 23, 10, 13, 11, 19,
369  6, 25, 23, 13, 11, 24, 19, 6, 25, 23, 11, 22, 24, 19, 6, 25, 23, 10,
370  21, 1, 19, 6, 25, 23, 10, 11, 1, 19, 6, 25, 23, 21, 22, 1, 19, 6,
371  25, 23, 11, 22, 1, 19, 6, 25, 23, 10, 13, 11, 12, 19, 25, 10, 13, 11,
372  12, 19, 14, 23, 17, 16, 11, 1, 19, 6, 23, 16, 11, 22, 1, 19, 6, 23,
373  21, 17, 16, 1, 19, 6, 23, 21, 16, 22, 1, 19, 6, 23, 17, 8, 16, 18,
374  11, 6, 23, 8, 16, 18, 11, 22, 6, 23, 17, 16, 18, 11, 19, 6, 23, 16,
375  18, 11, 22, 19, 6, 23, 10, 21, 17, 1, 19, 6, 23, 10, 17, 11, 1, 19,
376  6, 23, 17, 8, 16, 11, 1, 6, 23, 8, 16, 11, 22, 1, 6, 23, 17, 8,
377  18, 11, 19, 6, 23, 10, 21, 17, 3, 1, 6, 23, 10, 17, 3, 11, 1, 6,
378  23, 10, 17, 11, 12, 19, 6, 23, 17, 8, 3, 11, 1, 6, 23, 8, 18, 11,
379  22, 24, 6, 23, 8, 18, 11, 24, 19, 6, 23, 18, 11, 22, 24, 19, 6, 23,
380  4, 17, 8, 16, 11, 1, 23, 4, 8, 16, 11, 22, 1, 23, 17, 8, 11, 12,
381  19, 6, 23, 10, 17, 3, 11, 12, 6, 23, 10, 13, 11, 12, 19, 6, 23, 8,
382  13, 11, 12, 19, 6, 23, 8, 13, 11, 24, 19, 6, 23, 17, 8, 3, 11, 12,
383  6, 23, 4, 17, 8, 3, 11, 1, 23, 4, 17, 8, 3, 11, 12, 23, 4, 17,
384  8, 3, 12, 5, 10, 21, 17, 3, 15, 1, 6, 10, 21, 17, 15, 1, 19, 6,
385  10, 21, 3, 15, 1, 6, 0, 21, 17, 16, 15, 1, 19, 6, 4, 8, 16, 11,
386  22, 7, 1, 4, 16, 11, 22, 7, 1, 2, 8, 16, 11, 22, 7, 1, 6, 8,
387  16, 18, 11, 22, 7, 6, 8, 13, 18, 11, 24, 19, 6, 8, 18, 11, 22, 7,
388  24, 6, 8, 13, 18, 11, 7, 24, 6, 8, 13, 18, 7, 24, 6, 9
389  };
390 
391  static size_type refinement_simplex_6_nb = 64;
392 
393 
394 
395  size_type refinement_simplexe_tab(size_type n,
396  size_type **tab) {
397  switch(n) {
398  case 1 : *tab = refinement_simplex_1;
399  return refinement_simplex_1_nb;
400  case 2 : *tab = refinement_simplex_2;
401  return refinement_simplex_2_nb;
402  case 3 : *tab = refinement_simplex_3;
403  return refinement_simplex_3_nb;
404  case 4 : *tab = refinement_simplex_4;
405  return refinement_simplex_4_nb;
406  case 5 : *tab = refinement_simplex_5;
407  return refinement_simplex_5_nb;
408  case 6 : *tab = refinement_simplex_6;
409  return refinement_simplex_6_nb;
410  default : GMM_ASSERT1(false, "No refinement for this element");
411  }
412  }
413 
414 }
Reference convexes.
pconvex_structure prism_P1_structure(dim_type nc)
Give a pointer on the structures of a prism of dimension d.
std::shared_ptr< const convex_structure > pconvex_structure
Pointer on a convex structure description.
size_t size_type
used as the common size type in the library
Definition: bgeot_poly.h:49
pconvex_structure pyramid_QK_structure(dim_type k)
Give a pointer on the 3D pyramid structure for a degree k = 1 or 2.
pconvex_structure parallelepiped_structure(dim_type nc, dim_type k)
Give a pointer on the structures of a parallelepiped of dimension d.
Basic Geometric Tools.