/[escript]/trunk/finley/src/ReferenceElements.cpp
ViewVC logotype

Contents of /trunk/finley/src/ReferenceElements.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4492 - (show annotations)
Tue Jul 2 01:44:11 2013 UTC (5 years, 9 months ago) by caltinay
File size: 28158 byte(s)
Finley changes that were held back while in release mode - moved more stuff
into finley namespace.

1
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15
16
17 /****************************************************************************
18
19 Finley: Reference elements
20
21 *****************************************************************************/
22
23 #include "ReferenceElements.h"
24 #include "esysUtils/mem.h"
25 #include <cstring>
26 #include <algorithm> // std::max
27
28 namespace finley {
29
30 /// this list has been generated by generateReferenceElementList.py
31 ReferenceElementInfo ReferenceElement_InfoList[]={
32 { Point1, "Point1", 1, 1, 1, { 0, 1 }, Point1,
33 { 0 }, PointQuad, Point1Shape, Point1Shape,
34 { 0 },
35 1, { 0 },
36 1, { 0 },
37 { 0 },
38 { -1 } },
39 { Line2, "Line2", 2, 1, 1, { 0, 2 }, Line2,
40 { 0, 1 }, LineQuad, Line2Shape, Line2Shape,
41 { 0, 1 },
42 2, { 0, 1 },
43 2, { 0, 1 },
44 { 1, 0 },
45 { -1 } },
46 { Line3, "Line3", 3, 1, 1, { 0, 3 }, Line2,
47 { 0, 1 }, LineQuad, Line3Shape, Line3Shape,
48 { 0, 1, 2 },
49 3, { 0, 1, 2 },
50 3, { 0, 1, 2 },
51 { 1, 0, 2 },
52 { -1 } },
53 { Line4, "Line4", 4, 1, 1, { 0, 4 }, Line2,
54 { 0, 1 }, LineQuad, Line4Shape, Line4Shape,
55 { 0, 1, 2, 3 },
56 4, { 0, 1, 2, 3 },
57 4, { 0, 1, 2, 3 },
58 { 1, 0, 3, 2 },
59 { -1 } },
60 { Tri3, "Tri3", 3, 1, 1, { 0, 3 }, Tri3,
61 { 0, 1, 2 }, TriQuad, Tri3Shape, Tri3Shape,
62 { 0, 1, 2 },
63 3, { 0, 1, 2 },
64 3, { 0, 1, 2 },
65 { 1, 2, 0 },
66 { 0, 2, 1 } },
67 { Tri6, "Tri6", 6, 1, 1, { 0, 6 }, Tri3,
68 { 0, 1, 2 }, TriQuad, Tri6Shape, Tri6Shape,
69 { 0, 1, 2, 3, 4, 5 },
70 6, { 0, 1, 2, 3, 4, 5 },
71 6, { 0, 1, 2, 3, 4, 5 },
72 { 1, 2, 0, 4, 5, 3 },
73 { 0, 2, 1, 5, 4, 3 } },
74 { Tri9, "Tri9", 9, 1, 1, { 0, 9 }, Tri3,
75 { 0, 1, 2 }, TriQuad, Tri9Shape, Tri9Shape,
76 { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
77 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
78 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
79 { 1, 2, 0, 5, 6, 7, 8, 3, 4 },
80 { 0, 2, 1, 8, 7, 6, 5, 4, 3 } },
81 { Tri10, "Tri10", 10, 1, 1, { 0, 10 }, Tri3,
82 { 0, 1, 2 }, TriQuad, Tri10Shape, Tri10Shape,
83 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
84 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
85 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
86 { 1, 2, 0, 5, 6, 7, 8, 3, 4, 9 },
87 { 0, 2, 1, 8, 7, 6, 5, 4, 3, 9 } },
88 { Rec4, "Rec4", 4, 1, 1, { 0, 4 }, Rec4,
89 { 0, 1, 2, 3 }, RecQuad, Rec4Shape, Rec4Shape,
90 { 0, 1, 2, 3 },
91 4, { 0, 1, 2, 3 },
92 4, { 0, 1, 2, 3 },
93 { 1, 2, 3, 0 },
94 { 0, 3, 2, 1 } },
95 { Rec8, "Rec8", 8, 1, 1, { 0, 8 }, Rec4,
96 { 0, 1, 2, 3 }, RecQuad, Rec8Shape, Rec8Shape,
97 { 0, 1, 2, 3, 4, 5, 6, 7 },
98 8, { 0, 1, 2, 3, 4, 5, 6, 7 },
99 8, { 0, 1, 2, 3, 4, 5, 6, 7 },
100 { 1, 2, 3, 0, 5, 6, 7, 4 },
101 { 0, 3, 2, 1, 7, 6, 5, 4 } },
102 { Rec9, "Rec9", 9, 1, 1, { 0, 9 }, Rec4,
103 { 0, 1, 2, 3 }, RecQuad, Rec9Shape, Rec9Shape,
104 { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
105 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
106 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
107 { 1, 2, 3, 0, 5, 6, 7, 4, 8 },
108 { 0, 3, 2, 1, 7, 6, 5, 4, 8 } },
109 { Rec12, "Rec12", 12, 1, 1, { 0, 12 }, Rec4,
110 { 0, 1, 2, 3 }, RecQuad, Rec12Shape, Rec12Shape,
111 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
112 12, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
113 12, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
114 { 1, 2, 3, 0, 6, 7, 8, 9, 10, 11, 4, 5 },
115 { 0, 3, 2, 1, 11, 10, 9, 8, 7, 6, 5, 4 } },
116 { Rec16, "Rec16", 16, 1, 1, { 0, 16 }, Rec4,
117 { 0, 1, 2, 3 }, RecQuad, Rec16Shape, Rec16Shape,
118 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
119 16, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
120 16, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
121 { 1, 2, 3, 0, 6, 7, 8, 9, 10, 11, 4, 5, 13, 14, 15, 12 },
122 { 0, 3, 2, 1, 11, 10, 9, 8, 7, 6, 5, 4, 12, 15, 14, 13 } },
123 { Tet4, "Tet4", 4, 1, 1, { 0, 4 }, Tet4,
124 { 0, 1, 2, 3 }, TetQuad, Tet4Shape, Tet4Shape,
125 { 0, 1, 2, 3 },
126 4, { 0, 1, 2, 3 },
127 4, { 0, 1, 2, 3 },
128 { -1 },
129 { -1 } },
130 { Tet10, "Tet10", 10, 1, 1, { 0, 10 }, Tet4,
131 { 0, 1, 2, 3 }, TetQuad, Tet10Shape, Tet10Shape,
132 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
133 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
134 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
135 { -1 },
136 { -1 } },
137 { Tet16, "Tet16", 16, 1, 1, { 0, 16 }, Tet4,
138 { 0, 1, 2, 3 }, TetQuad, Tet16Shape, Tet16Shape,
139 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
140 16, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
141 16, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
142 { -1 },
143 { -1 } },
144 { Hex8, "Hex8", 8, 1, 1, { 0, 8 }, Hex8,
145 { 0, 1, 2, 3, 4, 5, 6, 7 }, HexQuad, Hex8Shape, Hex8Shape,
146 { 0, 1, 2, 3, 4, 5, 6, 7 },
147 8, { 0, 1, 2, 3, 4, 5, 6, 7 },
148 8, { 0, 1, 2, 3, 4, 5, 6, 7 },
149 { -1 },
150 { -1 } },
151 { Hex20, "Hex20", 20, 1, 1, { 0, 20 }, Hex8,
152 { 0, 1, 2, 3, 4, 5, 6, 7 }, HexQuad, Hex20Shape, Hex20Shape,
153 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
154 20, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
155 20, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
156 { -1 },
157 { -1 } },
158 { Hex27, "Hex27", 27, 1, 1, { 0, 27 }, Hex8,
159 { 0, 1, 2, 3, 4, 5, 6, 7 }, HexQuad, Hex27Shape, Hex27Shape,
160 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
161 27, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
162 27, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
163 { -1 },
164 { -1 } },
165 { Hex32, "Hex32", 32, 1, 1, { 0, 32 }, Hex8,
166 { 0, 1, 2, 3, 4, 5, 6, 7 }, HexQuad, Hex32Shape, Hex32Shape,
167 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
168 32, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
169 32, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
170 { -1 },
171 { -1 } },
172 { Line2Face, "Line2Face", 2, 1, 1, { 0, 2 }, Line2Face,
173 { 0, 1 }, PointQuad, Line2Shape, Line2Shape,
174 { 0, 1 },
175 1, { 0 },
176 1, { 0 },
177 { 0, 1, 2 },
178 { -1 } },
179 { Line3Face, "Line3Face", 3, 1, 1, { 0, 3 }, Line2Face,
180 { 0, 1 }, PointQuad, Line3Shape, Line3Shape,
181 { 0, 1, 2 },
182 1, { 0 },
183 1, { 0 },
184 { 0, 1, 2 },
185 { -1 } },
186 { Line4Face, "Line4Face", 4, 1, 1, { 0, 4 }, Line2Face,
187 { 0, 1 }, PointQuad, Line4Shape, Line4Shape,
188 { 0, 1, 2, 3 },
189 1, { 0 },
190 1, { 0 },
191 { 0, 1, 2 },
192 { -1 } },
193 { Tri3Face, "Tri3Face", 3, 1, 1, { 0, 3 }, Tri3Face,
194 { 0, 1, 2 }, LineQuad, Tri3Shape, Tri3Shape,
195 { 0, 1, 2 },
196 2, { 0, 1 },
197 2, { 0, 1 },
198 { 1, 0, 2 },
199 { -1 } },
200 { Tri6Face, "Tri6Face", 6, 1, 1, { 0, 6 }, Tri3Face,
201 { 0, 1, 2 }, LineQuad, Tri6Shape, Tri6Shape,
202 { 0, 1, 2, 3, 4, 5 },
203 3, { 0, 1, 3 },
204 3, { 0, 1, 3 },
205 { 1, 0, 2, 3, 5, 4 },
206 { -1 } },
207 { Tri9Face, "Tri9Face", 9, 1, 1, { 0, 9 }, Tri3Face,
208 { 0, 1, 2 }, LineQuad, Tri9Shape, Tri9Shape,
209 { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
210 4, { 0, 1, 3, 4 },
211 4, { 0, 1, 3, 4 },
212 { 1, 0, 2, 4, 3, 7, 8, 6, 5 },
213 { -1 } },
214 { Tri10Face, "Tri10Face", 10, 1, 1, { 0, 10 }, Tri3Face,
215 { 0, 1, 2 }, LineQuad, Tri10Shape, Tri10Shape,
216 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
217 4, { 0, 1, 3, 4 },
218 4, { 0, 1, 3, 4 },
219 { 1, 0, 2, 4, 3, 7, 8, 6, 5, 9 },
220 { -1 } },
221 { Rec4Face, "Rec4Face", 4, 1, 1, { 0, 4 }, Rec4Face,
222 { 0, 1, 2, 3 }, LineQuad, Rec4Shape, Rec4Shape,
223 { 0, 1, 2, 3 },
224 2, { 0, 1 },
225 2, { 0, 1 },
226 { 1, 0, 3, 2 },
227 { -1 } },
228 { Rec8Face, "Rec8Face", 8, 1, 1, { 0, 8 }, Rec4Face,
229 { 0, 1, 2, 3 }, LineQuad, Rec8Shape, Rec8Shape,
230 { 0, 1, 2, 3, 4, 5, 6, 7 },
231 3, { 0, 1, 4 },
232 3, { 0, 1, 4 },
233 { 1, 0, 3, 2, 4, 7, 6, 5 },
234 { -1 } },
235 { Rec9Face, "Rec9Face", 9, 1, 1, { 0, 9 }, Rec4Face,
236 { 0, 1, 2, 3 }, LineQuad, Rec9Shape, Rec9Shape,
237 { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
238 3, { 0, 1, 4 },
239 3, { 0, 1, 4 },
240 { 1, 0, 3, 2, 4, 7, 6, 5, 8 },
241 { -1 } },
242 { Rec12Face, "Rec12Face", 12, 1, 1, { 0, 12 }, Rec4Face,
243 { 0, 1, 2, 3 }, LineQuad, Rec12Shape, Rec12Shape,
244 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
245 4, { 0, 1, 4, 5 },
246 4, { 0, 1, 4, 5 },
247 { 1, 0, 3, 2, 5, 4, 11, 10, 9, 8, 7, 6 },
248 { -1 } },
249 { Rec16Face, "Rec16Face", 16, 1, 1, { 0, 16 }, Rec4Face,
250 { 0, 1, 2, 3 }, LineQuad, Rec16Shape, Rec16Shape,
251 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
252 4, { 0, 1, 4, 5 },
253 4, { 0, 1, 4, 5 },
254 { 1, 0, 3, 2, 5, 4, 11, 10, 9, 8, 7, 6, 13, 12, 15, 14 },
255 { -1 } },
256 { Tet4Face, "Tet4Face", 4, 1, 1, { 0, 4 }, Tet4Face,
257 { 0, 1, 2, 3 }, TriQuad, Tet4Shape, Tet4Shape,
258 { 0, 1, 2, 3 },
259 3, { 0, 1, 2 },
260 4, { 0, 1, 2, 3 },
261 { 1, 2, 0, 3 },
262 { 0, 2, 1, 3 } },
263 { Tet10Face, "Tet10Face", 10, 1, 1, { 0, 10 }, Tet4Face,
264 { 0, 1, 2, 3 }, TriQuad, Tet10Shape, Tet10Shape,
265 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
266 6, { 0, 1, 2, 4, 5, 6 },
267 6, { 0, 1, 2, 4, 5, 6 },
268 { 1, 2, 0, 3, 5, 6, 4, 8, 9, 7 },
269 { 0, 2, 1, 3, 6, 7, 9, 8 } },
270 { Tet16Face, "Tet16Face", 16, 1, 1, { 0, 16 }, Tet4Face,
271 { 0, 1, 2, 3 }, TriQuad, Tet16Shape, Tet16Shape,
272 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
273 9, { 0, 1, 2, 4, 5, 6, 7, 8, 9 },
274 9, { 0, 1, 2, 4, 5, 6, 7, 8, 9 },
275 { 1, 2, 0, 3, 6, 7, 8, 9, 4, 5, 11, 12, 10, 14, 15, 13 },
276 { 0, 2, 1, 3, 9, 8, 7, 6, 5, 4, 9, 8, 7, 6, 10, 12, 11, 13, 15, 14 } },
277 { Hex8Face, "Hex8Face", 8, 1, 1, { 0, 8 }, Hex8Face,
278 { 0, 1, 2, 3, 4, 5, 6, 7 }, RecQuad, Hex8Shape, Hex8Shape,
279 { 0, 1, 2, 3, 4, 5, 6, 7 },
280 4, { 0, 1, 2, 3 },
281 4, { 0, 1, 2, 3 },
282 { 1, 2, 3, 0, 5, 6, 7, 4 },
283 { 0, 3, 2, 1, 4, 7, 6, 5 } },
284 { Hex20Face, "Hex20Face", 20, 1, 1, { 0, 20 }, Hex8Face,
285 { 0, 1, 2, 3, 4, 5, 6, 7 }, RecQuad, Hex20Shape, Hex20Shape,
286 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
287 8, { 0, 1, 2, 3, 8, 9, 10, 11 },
288 8, { 0, 1, 2, 3, 8, 9, 10, 11 },
289 { 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12, 17, 18, 19, 16 },
290 { 0, 3, 2, 1, 4, 7, 6, 5, 11, 10, 9, 8, 12, 15, 14, 13, 19, 18, 17, 16 } },
291 { Hex27Face, "Hex27Face", 27, 1, 1, { 0, 27 }, Hex8Face,
292 { 0, 1, 2, 3, 4, 5, 6, 7 }, RecQuad, Hex27Shape, Hex27Shape,
293 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
294 9, { 0, 1, 2, 3, 8, 9, 10, 11, 20 },
295 9, { 0, 1, 2, 3, 8, 9, 10, 11, 20 },
296 { 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12, 17, 18, 19, 16, 20, 22, 23, 24, 22, 25, 26 },
297 { 0, 3, 2, 1, 4, 7, 6, 5, 11, 10, 9, 8, 12, 15, 14, 13, 19, 18, 17, 16, 20, 24, 23, 22, 21, 25, 26 } },
298 { Hex32Face, "Hex32Face", 32, 1, 1, { 0, 32 }, Hex8Face,
299 { 0, 1, 2, 3, 4, 5, 6, 7 }, RecQuad, Hex32Shape, Hex32Shape,
300 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
301 12, { 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15 },
302 12, { 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15 },
303 { 1, 2, 3, 0, 5, 6, 7, 4, 10, 11, 12, 13, 14, 15, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20, 26, 27, 28, 29, 30, 31, 34, 25 },
304 { 0, 3, 2, 1, 4, 7, 6, 5, 15, 14, 13, 12, 11, 10, 9, 8, 16, 19, 18, 17, 20, 23, 22, 21, 31, 30, 29, 28, 27, 26, 25, 24 } },
305 { Point1_Contact, "Point1_Contact", 2, 1, 2, { 0, 1, 2 }, Point1_Contact,
306 { 0, 1 }, PointQuad, Point1Shape, Point1Shape,
307 { 0, 1 },
308 1, { 0 },
309 -1, { -1 },
310 { -1 },
311 { -1 } },
312 { Line2_Contact, "Line2_Contact", 4, 1, 2, { 0, 2, 4 }, Line2_Contact,
313 { 0, 1, 2, 3 }, LineQuad, Line2Shape, Line2Shape,
314 { 0, 1, 2, 3 },
315 2, { 0, 1 },
316 -1, { -1 },
317 { -1 },
318 { -1 } },
319 { Line3_Contact, "Line3_Contact", 6, 1, 2, { 0, 3, 6 }, Line2_Contact,
320 { 0, 1, 3, 4 }, LineQuad, Line3Shape, Line3Shape,
321 { 0, 1, 2, 3, 4, 5 },
322 3, { 0, 1, 2 },
323 -1, { -1 },
324 { -1 },
325 { -1 } },
326 { Line4_Contact, "Line4_Contact", 8, 1, 2, { 0, 4, 8 }, Line2_Contact,
327 { 0, 1, 4, 5 }, LineQuad, Line4Shape, Line4Shape,
328 { 0, 1, 2, 3, 4, 5, 6, 7 },
329 4, { 0, 1, 2, 3 },
330 -1, { -1 },
331 { -1 },
332 { -1 } },
333 { Tri3_Contact, "Tri3_Contact", 6, 1, 2, { 0, 3, 6 }, Tri3_Contact,
334 { 0, 1, 2, 3, 4, 5 }, TriQuad, Tri3Shape, Tri3Shape,
335 { 0, 1, 2, 3, 4, 5 },
336 3, { 0, 1, 2 },
337 -1, { -1 },
338 { -1 },
339 { -1 } },
340 { Tri6_Contact, "Tri6_Contact", 12, 1, 2, { 0, 6, 12 }, Tri3_Contact,
341 { 0, 1, 2, 6, 7, 8 }, TriQuad, Tri6Shape, Tri6Shape,
342 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
343 6, { 0, 1, 2, 3, 4, 5 },
344 -1, { -1 },
345 { -1 },
346 { -1 } },
347 { Tri9_Contact, "Tri9_Contact", 18, 1, 2, { 0, 9, 18 }, Tri3_Contact,
348 { 0, 1, 2, 9, 10, 11 }, TriQuad, Tri9Shape, Tri9Shape,
349 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
350 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
351 -1, { -1 },
352 { -1 },
353 { -1 } },
354 { Tri10_Contact, "Tri10_Contact", 20, 1, 2, { 0, 10, 20 }, Tri3_Contact,
355 { 0, 1, 2, 10, 11, 12 }, TriQuad, Tri10Shape, Tri10Shape,
356 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
357 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
358 -1, { -1 },
359 { -1 },
360 { -1 } },
361 { Rec4_Contact, "Rec4_Contact", 8, 1, 2, { 0, 4, 8 }, Rec4_Contact,
362 { 0, 1, 2, 3, 4, 5, 6, 7 }, RecQuad, Rec4Shape, Rec4Shape,
363 { 0, 1, 2, 3, 4, 5, 6, 7 },
364 4, { 0, 1, 2, 3 },
365 -1, { -1 },
366 { -1 },
367 { -1 } },
368 { Rec8_Contact, "Rec8_Contact", 16, 1, 2, { 0, 8, 16 }, Rec4_Contact,
369 { 0, 1, 2, 3, 8, 9, 10, 11 }, RecQuad, Rec8Shape, Rec8Shape,
370 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
371 8, { 0, 1, 2, 3, 4, 5, 6, 7 },
372 -1, { -1 },
373 { -1 },
374 { -1 } },
375 { Rec9_Contact, "Rec9_Contact", 18, 1, 2, { 0, 9, 18 }, Rec4_Contact,
376 { 0, 1, 2, 3, 9, 10, 11, 12 }, RecQuad, Rec9Shape, Rec9Shape,
377 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
378 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
379 -1, { -1 },
380 { -1 },
381 { -1 } },
382 { Rec12_Contact, "Rec12_Contact", 24, 1, 2, { 0, 12, 24 }, Rec4_Contact,
383 { 0, 1, 2, 3, 12, 13, 14, 15 }, RecQuad, Rec12Shape, Rec12Shape,
384 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 },
385 12, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
386 -1, { -1 },
387 { -1 },
388 { -1 } },
389 { Rec16_Contact, "Rec16_Contact", 32, 1, 2, { 0, 16, 32 }, Rec4_Contact,
390 { 0, 1, 2, 3, 16, 17, 18, 19 }, RecQuad, Rec16Shape, Rec16Shape,
391 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
392 16, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
393 -1, { -1 },
394 { -1 },
395 { -1 } },
396 { Line2Face_Contact, "Line2Face_Contact", 4, 1, 2, { 0, 2, 4 }, Line2Face_Contact,
397 { 0, 1, 2, 3 }, PointQuad, Line2Shape, Line2Shape,
398 { 0, 1, 2, 3 },
399 1, { 0 },
400 -1, { -1 },
401 { -1 },
402 { -1 } },
403 { Line3Face_Contact, "Line3Face_Contact", 6, 1, 2, { 0, 3, 6 }, Line2Face_Contact,
404 { 0, 1, 3, 4 }, PointQuad, Line3Shape, Line3Shape,
405 { 0, 1, 2, 3, 4, 5 },
406 1, { 0 },
407 -1, { -1 },
408 { -1 },
409 { -1 } },
410 { Line4Face_Contact, "Line4Face_Contact", 8, 1, 2, { 0, 4, 8 }, Line2Face_Contact,
411 { 0, 1, 4, 5 }, PointQuad, Line4Shape, Line4Shape,
412 { 0, 1, 2, 3, 4, 5, 6, 7 },
413 1, { 0 },
414 -1, { -1 },
415 { -1 },
416 { -1 } },
417 { Tri3Face_Contact, "Tri3Face_Contact", 6, 1, 2, { 0, 3, 6 }, Tri3Face_Contact,
418 { 0, 1, 2, 3, 4, 5 }, LineQuad, Tri3Shape, Tri3Shape,
419 { 0, 1, 2, 3, 4, 5 },
420 2, { 0, 1 },
421 -1, { -1 },
422 { -1 },
423 { -1 } },
424 { Tri6Face_Contact, "Tri6Face_Contact", 12, 1, 2, { 0, 6, 12 }, Tri3Face_Contact,
425 { 0, 1, 2, 6, 7, 8 }, LineQuad, Tri6Shape, Tri6Shape,
426 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
427 3, { 0, 1, 3 },
428 -1, { -1 },
429 { -1 },
430 { -1 } },
431 { Tri9Face_Contact, "Tri9Face_Contact", 18, 1, 2, { 0, 9, 18 }, Tri3Face_Contact,
432 { 0, 1, 2, 9, 10, 11 }, LineQuad, Tri9Shape, Tri9Shape,
433 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
434 4, { 0, 1, 3, 4 },
435 -1, { -1 },
436 { -1 },
437 { -1 } },
438 { Tri10Face_Contact, "Tri10Face_Contact", 20, 1, 2, { 0, 10, 20 }, Tri3Face_Contact,
439 { 0, 1, 2, 10, 11, 12 }, LineQuad, Tri10Shape, Tri10Shape,
440 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
441 4, { 0, 1, 3, 4 },
442 -1, { -1 },
443 { -1 },
444 { -1 } },
445 { Rec4Face_Contact, "Rec4Face_Contact", 8, 1, 2, { 0, 4, 8 }, Rec4Face_Contact,
446 { 0, 1, 2, 3, 4, 5, 6, 7 }, LineQuad, Rec4Shape, Rec4Shape,
447 { 0, 1, 2, 3, 4, 5, 6, 7 },
448 2, { 0, 1 },
449 -1, { -1 },
450 { -1 },
451 { -1 } },
452 { Rec8Face_Contact, "Rec8Face_Contact", 16, 1, 2, { 0, 8, 16 }, Rec4Face_Contact,
453 { 0, 1, 2, 3, 8, 9, 10, 11 }, LineQuad, Rec8Shape, Rec8Shape,
454 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
455 3, { 0, 1, 4 },
456 -1, { -1 },
457 { -1 },
458 { -1 } },
459 { Rec9Face_Contact, "Rec9Face_Contact", 18, 1, 2, { 0, 9, 18 }, Rec4Face_Contact,
460 { 0, 1, 2, 3, 9, 10, 11, 12 }, LineQuad, Rec9Shape, Rec9Shape,
461 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
462 3, { 0, 1, 4 },
463 -1, { -1 },
464 { -1 },
465 { -1 } },
466 { Rec12Face_Contact, "Rec12Face_Contact", 24, 1, 2, { 0, 12, 24 }, Rec4Face_Contact,
467 { 0, 1, 2, 3, 12, 13, 14, 15 }, LineQuad, Rec12Shape, Rec12Shape,
468 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 },
469 4, { 0, 1, 4, 5 },
470 -1, { -1 },
471 { -1 },
472 { -1 } },
473 { Rec16Face_Contact, "Rec16Face_Contact", 32, 1, 2, { 0, 16, 32 }, Rec4Face_Contact,
474 { 0, 1, 2, 3, 16, 17, 18, 19 }, LineQuad, Rec16Shape, Rec16Shape,
475 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
476 4, { 0, 1, 4, 5 },
477 -1, { -1 },
478 { -1 },
479 { -1 } },
480 { Tet4Face_Contact, "Tet4Face_Contact", 8, 1, 2, { 0, 4, 8 }, Tet4Face_Contact,
481 { 0, 1, 2, 3, 4, 5, 6, 7 }, TriQuad, Tet4Shape, Tet4Shape,
482 { 0, 1, 2, 3, 4, 5, 6, 7 },
483 3, { 0, 1, 2 },
484 -1, { -1 },
485 { -1 },
486 { -1 } },
487 { Tet10Face_Contact, "Tet10Face_Contact", 20, 1, 2, { 0, 10, 20 }, Tet4Face_Contact,
488 { 0, 1, 2, 3, 10, 11, 12, 13 }, TriQuad, Tet10Shape, Tet10Shape,
489 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
490 6, { 0, 1, 2, 4, 5, 6 },
491 -1, { -1 },
492 { -1 },
493 { -1 } },
494 { Tet16Face_Contact, "Tet16Face_Contact", 32, 1, 2, { 0, 16, 32 }, Tet4Face_Contact,
495 { 0, 1, 2, 3, 16, 17, 18, 19 }, TriQuad, Tet16Shape, Tet16Shape,
496 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
497 9, { 0, 1, 2, 4, 5, 6, 7, 8, 9 },
498 -1, { -1 },
499 { -1 },
500 { -1 } },
501 { Hex8Face_Contact, "Hex8Face_Contact", 16, 1, 2, { 0, 8, 16 }, Hex8Face_Contact,
502 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, RecQuad, Hex8Shape, Hex8Shape,
503 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
504 4, { 0, 1, 2, 3 },
505 -1, { -1 },
506 { -1 },
507 { -1 } },
508 { Hex20Face_Contact, "Hex20Face_Contact", 40, 1, 2, { 0, 20, 40 }, Hex8Face_Contact,
509 { 0, 1, 2, 3, 4, 5, 6, 7, 20, 21, 22, 23, 24, 25, 26, 27 }, RecQuad, Hex20Shape, Hex20Shape,
510 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 },
511 8, { 0, 1, 2, 3, 8, 9, 10, 11 },
512 -1, { -1 },
513 { -1 },
514 { -1 } },
515 { Hex27Face_Contact, "Hex27Face_Contact", 54, 1, 2, { 0, 27, 54 }, Hex8Face_Contact,
516 { 0, 1, 2, 3, 4, 5, 6, 7, 27, 28, 29, 30, 31, 32, 33, 34 }, RecQuad, Hex27Shape, Hex27Shape,
517 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 },
518 9, { 0, 1, 2, 3, 8, 9, 10, 11, 20 },
519 -1, { -1 },
520 { -1 },
521 { -1 } },
522 { Hex32Face_Contact, "Hex32Face_Contact", 64, 1, 2, { 0, 32, 64 }, Hex8Face_Contact,
523 { 0, 1, 2, 3, 4, 5, 6, 7, 32, 33, 34, 35, 36, 37, 38, 39 }, RecQuad, Hex32Shape, Hex32Shape,
524 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 },
525 12, { 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15 },
526 -1, { -1 },
527 { -1 },
528 { -1 } },
529 { Line3Macro, "Line3Macro", 3, 2, 1, { 0, 3 }, Line2,
530 { 0, 1 }, LineQuad, Line3Shape, Line2Shape,
531 { 0, 2, 2, 1 },
532 3, { 0, 1, 2 },
533 3, { 0, 1, 2 },
534 { 1, 0, 2 },
535 { -1 } },
536 { Tri6Macro, "Tri6Macro", 6, 4, 1, { 0, 6 }, Tri3,
537 { 0, 1, 2 }, TriQuad, Tri6Shape, Tri3Shape,
538 { 0, 3, 5, 5, 4, 2, 3, 1, 4, 4, 5, 3},
539 6, { 0, 1, 2, 3, 4, 5 },
540 6, { 0, 1, 2, 3, 4, 5 },
541 { 1, 2, 0, 4, 5, 3 },
542 { 0, 2, 1, 5, 4, 3 } },
543 { Rec9Macro, "Rec9Macro", 9, 4, 1, { 0, 9 }, Rec4,
544 { 0, 1, 2, 3 }, RecQuad, Rec9Shape, Rec4Shape,
545 { 0, 4, 8, 7, 7, 8, 6, 3, 4, 1, 5, 8, 8, 5, 2, 6 },
546 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
547 9, { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
548 { 1, 2, 3, 0, 5, 6, 7, 4, 8 },
549 { 0, 3, 2, 1, 7, 6, 5, 4, 8 } },
550 { Tet10Macro, "Tet10Macro", 10, 8, 1, { 0, 10 }, Tet4,
551 { 0, 1, 2, 3 }, TetQuad, Tet10Shape, Tet4Shape,
552 { 0, 4, 6, 7, 4, 1, 5, 8, 6, 5, 2, 9, 7, 8, 9, 3, 4, 5, 6, 8, 5, 9, 8, 6, 9, 7, 6, 8, 7, 4, 6, 8 },
553 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
554 10, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
555 { -1 },
556 { -1 } },
557 { Hex27Macro, "Hex27Macro", 27, 8, 1, { 0, 27 }, Hex8,
558 { 0, 1, 2, 3, 4, 5, 6, 7 }, HexQuad, Hex27Shape, Hex8Shape,
559 { 0, 8, 20, 11, 12, 21, 26, 24, 8, 1, 9, 20, 21, 13, 22, 26, 11, 20, 10, 3, 24, 26, 23, 15, 20, 9, 2, 10, 26, 22, 14, 23, 12, 21, 26, 24, 4, 16, 25, 19, 21, 13, 22, 26, 16, 5, 17, 25, 24, 26, 23, 15, 19, 25, 18, 7, 26, 22, 14, 23, 25, 17, 6, 18 },
560 27, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
561 27, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
562 { -1 },
563 { -1 } },
564 { NoRef, "noElement", 0, 0, 0, { 0 }, NoRef,
565 { 0 }, NoQuad, NoShape, NoShape,
566 { 0 },
567 -1, { 0 },
568 -1, { 0 },
569 { 0 },
570 { 0 } }
571
572 };
573
574
575 /// creates a ReferenceElement of type id and a given integration order
576 ReferenceElement* ReferenceElement_alloc(ElementTypeId id, int order)
577 {
578 ReferenceElementInfo* type = ReferenceElement_getInfo(id);
579 if (type == NULL) {
580 Finley_setError(VALUE_ERROR,"ReferenceElement_alloc: unable to identify element type.");
581 return NULL;
582 }
583 ReferenceElementInfo *linear_type = ReferenceElement_getInfo(type->LinearTypeId);
584 if (linear_type == NULL) {
585 Finley_setError(VALUE_ERROR,"ReferenceElement_alloc: unable to identify linear element type.");
586 return NULL;
587 }
588
589 ReferenceElement *out=new ReferenceElement;
590 out->reference_counter=0;
591 out->Parametrization=NULL;
592 out->BasisFunctions=NULL;
593 out->LinearBasisFunctions=NULL;
594 out->Type=type;
595 out->numNodes=out->Type->numNodes;
596 out->LinearType=linear_type;
597 out->numLinearNodes=out->LinearType->numNodes;
598 out->integrationOrder=-1;
599 out->DBasisFunctionDv=NULL;
600 out->DBasisFunctionDvShared=TRUE;
601
602 QuadInfo* quadscheme=QuadInfo_getInfo(out->Type->Quadrature);
603 ShapeFunctionInfo* parametrization=ShapeFunction_getInfo(out->Type->Parametrization);
604 ShapeFunctionInfo* basisfunction=ShapeFunction_getInfo(out->Type->BasisFunctions);
605 ShapeFunctionInfo* linearbasisfunction=ShapeFunction_getInfo(ReferenceElement_InfoList[out->Type->LinearTypeId].BasisFunctions);
606 int nsub = out->Type->numSubElements;
607 out->numLocalDim=quadscheme->numDim;
608
609 // set up the basic integration scheme.
610 // Note that quadscheme->numDim is not necessarily the dimension of the
611 // element
612
613 if (order < 0)
614 order=std::max(2*basisfunction->numOrder, 0);
615
616 out->integrationOrder=order;
617 int numQuadNodes=quadscheme->getNumQuadNodes(order);
618 double *quadNodes=new double[numQuadNodes*quadscheme->numDim*nsub];
619 double *quadWeights=new double[numQuadNodes*nsub];
620
621 quadscheme->getQuadNodes(numQuadNodes, quadNodes, quadWeights);
622
623 // Set the basis functions on the quadrature points.
624 // Note: ShapeFunction_alloc will introduce 0 if the dimensions of the
625 // quadrature scheme and the dimensions of the element don't match.
626 // Before we can set the shape function for the parametrization the
627 // quadrature scheme needs to be replicated:
628
629 if (nsub > 1) {
630 out->DBasisFunctionDv=new double [numQuadNodes*nsub* (basisfunction->numShapes) * (basisfunction->numDim)];
631 out->DBasisFunctionDvShared=FALSE;
632 out->BasisFunctions=ShapeFunction_alloc(basisfunction->TypeId, quadscheme->numDim, numQuadNodes, quadNodes, quadWeights);
633 double *quadNodes2=new double[numQuadNodes*quadscheme->numDim*nsub];
634 double *quadWeights2=new double[numQuadNodes*nsub];
635 int numQuadNodes2=quadscheme->getMacro(nsub,
636 out->BasisFunctions->numQuadNodes,
637 out->BasisFunctions->QuadNodes,
638 out->BasisFunctions->QuadWeights,
639 out->BasisFunctions->Type->numShapes,
640 out->BasisFunctions->dSdv,
641 numQuadNodes*nsub, quadNodes2, quadWeights2,
642 out->DBasisFunctionDv);
643 if (Finley_noError()) {
644 out->Parametrization=ShapeFunction_alloc(parametrization->TypeId, quadscheme->numDim, numQuadNodes2, quadNodes2, quadWeights2);
645 out->LinearBasisFunctions=ShapeFunction_alloc(linearbasisfunction->TypeId, quadscheme->numDim, numQuadNodes2, quadNodes2, quadWeights2);
646 }
647 delete[] quadNodes2;
648 delete[] quadWeights2;
649 } else {
650 out->Parametrization=ShapeFunction_alloc(parametrization->TypeId, quadscheme->numDim, numQuadNodes*nsub, quadNodes, quadWeights);
651 out->BasisFunctions=ShapeFunction_alloc(basisfunction->TypeId, quadscheme->numDim, numQuadNodes, quadNodes, quadWeights);
652 out->LinearBasisFunctions=ShapeFunction_alloc(linearbasisfunction->TypeId, quadscheme->numDim, numQuadNodes, quadNodes, quadWeights);
653 out->DBasisFunctionDv=out->BasisFunctions->dSdv;
654 out->DBasisFunctionDvShared=TRUE;
655 }
656 delete[] quadNodes;
657 delete[] quadWeights;
658 if (Finley_noError()) {
659 return ReferenceElement_reference(out);
660 } else {
661 ReferenceElement_dealloc(out);
662 return NULL;
663 }
664 }
665
666 void ReferenceElement_dealloc(ReferenceElement* in)
667 {
668 if (in!=NULL) {
669 in->reference_counter--;
670 if (in->reference_counter<1) {
671 ShapeFunction_dealloc(in->Parametrization);
672 ShapeFunction_dealloc(in->BasisFunctions);
673 ShapeFunction_dealloc(in->LinearBasisFunctions);
674 if (!in->DBasisFunctionDvShared) delete[] in->DBasisFunctionDv;
675 delete in;
676 }
677 }
678 }
679
680 ElementTypeId ReferenceElement_getTypeId(char* element_type)
681 {
682 int ptr=0;
683 ElementTypeId out=NoRef;
684 while (ReferenceElement_InfoList[ptr].TypeId!=NoRef && out==NoRef) {
685 if (strcmp(element_type, ReferenceElement_InfoList[ptr].Name)==0)
686 out=ReferenceElement_InfoList[ptr].TypeId;
687 ptr++;
688 }
689 return out;
690 }
691
692 ReferenceElement* ReferenceElement_reference(ReferenceElement* in)
693 {
694 if (in!=NULL) ++(in->reference_counter);
695 return in;
696 }
697
698 ReferenceElementInfo* ReferenceElement_getInfo(ElementTypeId id)
699 {
700 int ptr=0;
701 ReferenceElementInfo* out=NULL;
702 while (ReferenceElement_InfoList[ptr].TypeId!=NoRef && out==NULL) {
703 if (ReferenceElement_InfoList[ptr].TypeId==id)
704 out=&ReferenceElement_InfoList[ptr];
705 ptr++;
706 }
707 if (out==NULL) {
708 Finley_setError(VALUE_ERROR, "ReferenceElement_getInfo: cannot find requested reference element.");
709 }
710 return out;
711 }
712
713 } // namespace finley
714

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision
svn:mergeinfo /branches/lapack2681/finley/src/ReferenceElements.cpp:2682-2741 /branches/pasowrap/finley/src/ReferenceElements.cpp:3661-3674 /branches/py3_attempt2/finley/src/ReferenceElements.cpp:3871-3891 /branches/restext/finley/src/ReferenceElements.cpp:2610-2624 /branches/ripleygmg_from_3668/finley/src/ReferenceElements.cpp:3669-3791 /branches/stage3.0/finley/src/ReferenceElements.cpp:2569-2590 /branches/symbolic_from_3470/finley/src/ReferenceElements.cpp:3471-3974 /release/3.0/finley/src/ReferenceElements.cpp:2591-2601 /trunk/finley/src/ReferenceElements.cpp:4257-4344

  ViewVC Help
Powered by ViewVC 1.1.26