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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6939 - (show annotations)
Mon Jan 20 03:37:18 2020 UTC (4 months, 1 week ago) by uqaeller
File size: 27143 byte(s)
Updated the copyright header.


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

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision
svn:mergeinfo /branches/4.0fordebian/finley/src/ReferenceElements.cpp:5567-5588 /branches/diaplayground/finley/src/ReferenceElements.cpp:4940-5147 /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 /branches/trilinos_from_5897/finley/src/ReferenceElements.cpp:5898-6118 /release/3.0/finley/src/ReferenceElements.cpp:2591-2601 /release/4.0/finley/src/ReferenceElements.cpp:5380-5406 /trunk/finley/src/ReferenceElements.cpp:4257-4344

  ViewVC Help
Powered by ViewVC 1.1.26