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

Annotation of /trunk/finley/src/ReferenceElements.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 616 - (hide annotations)
Wed Mar 22 02:46:56 2006 UTC (13 years, 8 months ago) by elspeth
File MIME type: text/plain
File size: 19962 byte(s)
Copyright added to more source files.

1 jgs 150 /*
2 elspeth 616 ************************************************************
3     * Copyright 2006 by ACcESS MNRF *
4     * *
5     * http://www.access.edu.au *
6     * Primary Business: Queensland, Australia *
7     * Licensed under the Open Software License version 3.0 *
8     * http://www.opensource.org/licenses/osl-3.0.php *
9     * *
10     ************************************************************
11 jgs 150 */
12 jgs 82
13     /**************************************************************/
14    
15     /* Finley: Reference elements */
16    
17     /**************************************************************/
18    
19     /* Author: gross@access.edu.au */
20     /* Version: $Id$ */
21    
22     /**************************************************************/
23    
24     #include "ReferenceElements.h"
25    
26     /**************************************************************/
27    
28     Finley_RefElementInfo Finley_RefElement_InfoList[]={
29     {Point1, "Point1", 0, 1, 1, 1, 1,
30     Point1, {0},
31     Finley_Shape_Point1, Finley_Quad_getNodesPoint, Finley_Quad_getNumNodesPoint,
32     1,{0},
33     1,{0}, {0},{-1}},
34     {Line2, "Line2", 1, 2, 2, 1, 2,
35     Line2, {0,1},
36     Finley_Shape_Line2, Finley_Quad_getNodesLine, Finley_Quad_getNumNodesLine,
37     2,{0,1},
38     2,{0,1}, {1,0},{-1}},
39     {Line3, "Line3", 1, 3, 3, 2, 2,
40     Line2, {0,1},
41     Finley_Shape_Line3, Finley_Quad_getNodesLine, Finley_Quad_getNumNodesLine,
42     3,{0,1,2},
43     3,{0,1,2}, {1,0,2},{-1}},
44     {Line4, "Line4", 1, 4, 4, 3, 2,
45     Line2, {0,1},
46     Finley_Shape_Line4, Finley_Quad_getNodesLine, Finley_Quad_getNumNodesLine,
47     4,{0,1,2,3},
48     4,{0,1,2,3}, {1,0,3,2},{-1}},
49     {Tri3, "Tri3", 2, 3, 3, 1, 3,
50     Tri3, {0,1,2},
51     Finley_Shape_Tri3, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
52     3,{0,1,2},
53     3,{0,1,2}, {1,2,0},{0,2,1}},
54     {Tri6, "Tri6", 2, 6, 6, 2, 3,
55     Tri3, {0,1,2},
56     Finley_Shape_Tri6, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
57     6,{0,1,2,3,4,5},
58     6,{0,1,2,3,4,5}, {1,2,0,4,5,3},{0,2,1,5,4,3}},
59     {Tri9, "Tri9", 2, 9, 9, 3, 3,
60     Tri3, {0,1,2},
61     Finley_Shape_Tri9, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
62     9,{0,1,2,3,4,5,6,7,8},
63     9,{0,1,2,3,4,5,6,7,8}, {1,2,0,5,6,7,8,3,4},{0,2,1,8,7,6,5,4,3}},
64     {Tri10, "Tri10", 2, 10, 10, 3, 3,
65     Tri3, {0,1,2},
66     Finley_Shape_Tri10, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
67     10,{0,1,2,3,4,5,6,7,8,9},
68     10,{0,1,2,3,4,5,6,7,8,9}, {1,2,0,5,6,7,8,3,4,9},{0,2,1,8,7,6,5,4,3,9}},
69     {Rec4, "Rec4", 2, 4, 4, 1, 4,
70     Rec4, {0,1,2,3},
71     Finley_Shape_Rec4, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
72     4,{0,1,2,3},
73     4,{0,1,2,3}, {1,2,3,0},{0,3,2,1}},
74     {Rec8, "Rec8", 2, 8, 8, 2, 4,
75     Rec4, {0,1,2,3},
76     Finley_Shape_Rec8, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
77     8,{0,1,2,3,4,5,6,7},
78     8,{0,1,2,3,4,5,6,7}, {1,2,3,0,5,6,7,4},{0,3,2,1,7,6,5,4}},
79     {Rec9, "Rec9", 2, 9, 9, 2, 4,
80     Rec4, {0,1,2,3},
81     Finley_Shape_Rec9, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
82     9,{0,1,2,3,4,5,6,7,8},
83     9,{0,1,2,3,4,5,6,7,8}, {1,2,3,0,5,6,7,4,8},{0,3,2,1,7,6,5,4,8}},
84     {Rec12, "Rec12", 2, 12, 12, 3, 4,
85     Rec4, {0,1,2,3},
86     Finley_Shape_Rec12, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
87     12,{0,1,2,3,4,5,6,7,8,9,10,11},
88     12,{0,1,2,3,4,5,6,7,8,9,10,11}, {1,2,3,0,6,7,8,9,10,11,4,5},{0,3,2,1,11,10,9,8,7,6,5,4}},
89     {Rec16, "Rec16", 2, 16, 16, 3, 4,
90     Rec4, {0,1,2,3},
91     Finley_Shape_Rec16, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
92     16,{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},
93     16,{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, {1,2,3,0,6,7,8,9,10,11,4,5,13,14,15,12},{0,3,2,1,11,10,9,8,7,6,5,4,12,15,14,13}},
94     {Tet4, "Tet4", 3, 4, 4, 1, 4,
95     Tet4, {0,1,2,3},
96     Finley_Shape_Tet4, Finley_Quad_getNodesTet, Finley_Quad_getNumNodesTet,
97     4,{0,1,2,3},
98     -1,{}, {},{}},
99     {Tet10, "Tet10", 3, 10, 10, 2, 4,
100     Tet4, {0,1,2,3},
101     Finley_Shape_Tet10, Finley_Quad_getNodesTet, Finley_Quad_getNumNodesTet,
102     10,{0,1,2,3,4,5,6,7,8,9},
103     -1,{}, {},{}},
104     {Tet16, "Tet16", 3, 16, 16, 3, 4,
105     Tet4, {0,1,2,3},
106     Finley_Shape_Tet16, Finley_Quad_getNodesTet, Finley_Quad_getNumNodesTet,
107     16,{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},
108     -1,{}, {},{}},
109     {Hex8, "Hex8", 3, 8, 8, 1, 8,
110     Hex8, {0,1,2,3,4,5,6,7},
111     Finley_Shape_Hex8, Finley_Quad_getNodesHex, Finley_Quad_getNumNodesHex,
112     8,{0,1,2,3,4,5,6,7},
113     -1,{}, {},{}},
114     {Hex20, "Hex20", 3, 20, 20, 2, 8,
115     Hex8, {0,1,2,3,4,5,6,7},
116     Finley_Shape_Hex20, Finley_Quad_getNodesHex, Finley_Quad_getNumNodesHex,
117     20,{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19},
118     -1,{}, {},{}},
119     {Hex32, "Hex32", 3, 32, 32, 3, 8,
120     Hex8, {0,1,2,3,4,5,6,7},
121     Finley_Shape_Hex32, Finley_Quad_getNodesHex, Finley_Quad_getNumNodesHex,
122     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},
123     -1,{}, {},{}},
124     {Line2Face, "Line2Face", 1, 2, 2, 1, 1,
125     Line2Face, {0,1},
126     Finley_Shape_Line2, Finley_Quad_getNodesPointOnFace, Finley_Quad_getNumNodesPoint,
127     1,{0},
128     1,{0}, {0,1,2},{-1}},
129     {Line3Face, "Line3Face", 1, 3, 3, 2, 1,
130     Line2Face, {0,1},
131     Finley_Shape_Line3, Finley_Quad_getNodesPointOnFace, Finley_Quad_getNumNodesPoint,
132     1,{0},
133     1,{0}, {0,1,2},{-1}},
134     {Line4Face, "Line4Face", 1, 4, 4, 3, 1,
135     Line2Face, {0,1},
136     Finley_Shape_Line4, Finley_Quad_getNodesPointOnFace, Finley_Quad_getNumNodesPoint,
137     1,{0},
138     1,{0}, {0,1,2},{-1}},
139     {Tri3Face, "Tri3Face", 2, 3, 3, 1, 2,
140     Tri3Face, {0,1,2},
141     Finley_Shape_Tri3, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
142     2,{0,1},
143     2,{0,1}, {1,0,2},{-1}},
144     {Tri6Face, "Tri6Face", 2, 6, 6, 2, 2,
145     Tri3Face, {0,1,2},
146     Finley_Shape_Tri6, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
147     3,{0,1,3},
148     3,{0,1,3}, {1,0,2,3,5,4},{-1}},
149     {Tri9Face, "Tri9Face", 2, 9, 9, 3, 2,
150     Tri3Face, {0,1,2},
151     Finley_Shape_Tri9, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
152     4,{0,1,3,4},
153     4,{0,1,3,4}, {1,0,2,4,3,7,8,6,5},{-1}},
154     {Tri10Face, "Tri10Face", 2, 10, 10, 3, 2,
155     Tri3Face, {0,1,2},
156     Finley_Shape_Tri10, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
157     4,{0,1,3,4},
158     4,{0,1,3,4}, {1,0,2,4,3,7,8,6,5,9},{-1}},
159     {Rec4Face, "Rec4Face", 2, 4, 4, 1, 2,
160     Rec4Face, {0,1,2,3},
161     Finley_Shape_Rec4, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
162     2,{0,1},
163     2,{0,1}, {1,0,3,2},{-1}},
164     {Rec8Face, "Rec8Face", 2, 8, 8, 2, 2,
165     Rec4Face, {0,1,2,3},
166     Finley_Shape_Rec8, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
167     3,{0,1,4},
168     3,{0,1,4}, {1,0,3,2,4,7,6,5},{-1}},
169     {Rec9Face, "Rec9Face", 2, 9, 9, 2, 2,
170     Rec4Face, {0,1,2,3},
171     Finley_Shape_Rec9, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
172     3,{0,1,4},
173     3,{0,1,4}, {1,0,3,2,4,7,6,5,8},{-1}},
174     {Rec12Face, "Rec12Face", 2, 12, 12, 3, 2,
175     Rec4Face, {0,1,2,3},
176     Finley_Shape_Rec12, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
177     4,{0,1,4,5},
178     4,{0,1,4,5}, {1,0,3,2,5,4,11,10,9,8,7,6},{-1}},
179     {Rec16Face, "Rec16Face", 2, 16, 16, 3, 2,
180     Rec4Face, {0,1,2,3},
181     Finley_Shape_Rec16, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
182     4,{0,1,4,5},
183     4,{0,1,4,5}, {1,0,3,2,5,4,11,10,9,8,7,6,13,12,15,14},{-1}},
184     {Tet4Face, "Tet4Face", 3, 4, 4, 1, 3,
185     Tet4Face, {0,1,2,3},
186     Finley_Shape_Tet4, Finley_Quad_getNodesTriOnFace, Finley_Quad_getNumNodesTri,
187     3,{0,1,2},
188     3,{0,1,2}, {1,2,0,3},{0,2,1,3}},
189     {Tet10Face, "Tet10Face", 3, 10, 10, 2, 3,
190     Tet4Face, {0,1,2,3},
191     Finley_Shape_Tet10, Finley_Quad_getNodesTriOnFace, Finley_Quad_getNumNodesTri,
192     4,{0,1,2,4,5,6},
193     4,{0,1,2,4,5,6}, {1,2,0,3,5,6,4,8,9,7},{0,2,1,3,6,7,9,8}},
194     {Tet16Face, "Tet16Face", 3, 16, 16, 3, 3,
195     Tet4Face, {0,1,2,3},
196     Finley_Shape_Tet16, Finley_Quad_getNodesTriOnFace, Finley_Quad_getNumNodesTri,
197     5,{0,1,2,4,5,6,7,8,9},
198     5,{0,1,2,4,5,6,7,8,9}, {1,2,0,3,6,7,8,9,4,5,11,12,10,14,15,13},{0,2,1,3,9,8,7,6,5,4,9,8,7,6,10,12,11,13,15,14}},
199     {Hex8Face, "Hex8Face", 3, 8, 8, 1, 4,
200     Hex8Face, {0,1,2,3,4,5,6,7},
201     Finley_Shape_Hex8, Finley_Quad_getNodesRecOnFace, Finley_Quad_getNumNodesRec,
202     4,{0,1,2,3},
203     4,{0,1,2,3}, {1,2,3,0,5,6,7,4},{0,3,2,1,4,7,6,5}},
204     {Hex20Face, "Hex20Face", 3, 20, 20, 2, 4,
205     Hex8Face, {0,1,2,3,4,5,6,7},
206     Finley_Shape_Hex20, Finley_Quad_getNodesRecOnFace, Finley_Quad_getNumNodesRec,
207     8,{0,1,2,3,8,9,10,11},
208     8,{0,1,2,3,8,9,10,11}, {1,2,3,0,5,6,7,4,9,10,11,8,13,14,15,12,17,18,19,16},{0,3,2,1,4,7,6,5,11,10,9,8,12,15,14,13,19,18,17,16}},
209     {Hex32Face, "Hex32Face", 3, 32, 32, 3, 4,
210     Hex8Face, {0,1,2,3,4,5,6,7},
211     Finley_Shape_Hex32, Finley_Quad_getNodesRecOnFace, Finley_Quad_getNumNodesRec,
212     12,{0,1,2,3,8,9,10,11,12,13,14,15},
213     12,{0,1,2,3,8,9,10,11,12,13,14,15},
214     {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},
215     {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}},
216    
217     {Point1_Contact, "Point1_Contact", 0, 2, 1, 1, 1,
218     Point1_Contact, {0,1},
219     Finley_Shape_Point1, Finley_Quad_getNodesPoint, Finley_Quad_getNumNodesPoint,
220     1,{0},
221     -1,{}, {},{}},
222     {Line2_Contact, "Line2_Contact", 1, 4, 2, 1, 2,
223     Line2_Contact, {0,1,2,3},
224     Finley_Shape_Line2, Finley_Quad_getNodesLine, Finley_Quad_getNumNodesLine,
225     2,{0,1},
226     -1,{}, {},{}},
227     {Line3_Contact, "Line3_Contact", 1, 6, 3, 2, 2,
228     Line2_Contact, {0,1,3,4},
229     Finley_Shape_Line3, Finley_Quad_getNodesLine, Finley_Quad_getNumNodesLine,
230     3,{0,1,2},
231     -1,{}, {},{}},
232     {Line4_Contact, "Line4_Contact", 1, 8, 4, 3, 2,
233     Line2_Contact, {0,1,4,5},
234     Finley_Shape_Line4, Finley_Quad_getNodesLine, Finley_Quad_getNumNodesLine,
235     4,{0,1,2,3},
236     -1,{}, {},{}},
237     {Tri3_Contact, "Tri3_Contact", 2, 6, 3, 1, 3,
238     Tri3_Contact, {0,1,2,3,4,5},
239     Finley_Shape_Tri3, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
240     3,{0,1,2},
241     -1,{}, {},{}},
242     {Tri6_Contact, "Tri6_Contact", 2, 12, 6, 2, 3,
243     Tri3_Contact, {0,1,2,6,7,8},
244     Finley_Shape_Tri6, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
245     6,{0,1,2,3,4,5},
246     -1,{}, {},{}},
247     {Tri9_Contact, "Tri9_Contact", 2, 18, 9, 3, 3,
248     Tri3_Contact, {0,1,2,9,10,11},
249     Finley_Shape_Tri9, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
250     9,{0,1,2,3,4,5,6,7,8},
251     -1,{}, {},{}},
252     {Tri10_Contact, "Tri10_Contact", 2, 20, 10, 3, 3,
253     Tri3_Contact, {0,1,2,10,11,12},
254     Finley_Shape_Tri10, Finley_Quad_getNodesTri, Finley_Quad_getNumNodesTri,
255     10,{0,1,2,3,4,5,6,7,8,9},
256     -1,{}, {},{}},
257     {Rec4_Contact, "Rec4_Contact", 2, 8, 4, 1, 4,
258     Rec4_Contact, {0,1,2,3,4,5,6,7},
259     Finley_Shape_Rec4, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
260     4,{0,1,2,3},
261     -1,{}, {},{}},
262     {Rec8_Contact, "Rec8_Contact", 2, 16, 8, 2, 4,
263     Rec4_Contact, {0,1,2,3,8,9,10,11},
264     Finley_Shape_Rec8, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
265     8,{0,1,2,3,4,5,6,7},
266     -1,{}, {},{}},
267     {Rec9_Contact, "Rec9_Contact", 2, 18, 9, 2, 4,
268     Rec4_Contact, {0,1,2,3,9,10,11,12},
269     Finley_Shape_Rec9, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
270     9,{0,1,2,3,4,5,6,7,8},
271     -1,{}, {},{}},
272     {Rec12_Contact, "Rec12_Contact", 2, 24, 12, 3, 4,
273     Rec4_Contact, {0,1,2,3,12,13,14,15},
274     Finley_Shape_Rec12, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
275     12,{0,1,2,3,4,5,6,7,8,9,10,11},
276     -1,{}, {},{}},
277     {Rec16_Contact, "Rec16_Contact", 2, 32, 16, 3, 4,
278     Rec4_Contact, {0,1,2,3,16,17,18,19},
279     Finley_Shape_Rec16, Finley_Quad_getNodesRec, Finley_Quad_getNumNodesRec,
280     16,{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},
281     -1,{}, {},{}},
282     {Line2Face_Contact, "Line2Face_Contact", 1, 4, 2, 1, 1,
283     Line2Face_Contact, {0,1,2,3},
284     Finley_Shape_Line2, Finley_Quad_getNodesPointOnFace, Finley_Quad_getNumNodesPoint,
285     1,{0},
286     -1,{}, {},{}},
287     {Line3Face_Contact, "Line3Face_Contact", 1, 6, 3, 2, 1,
288     Line2Face_Contact, {0,1,3,4},
289     Finley_Shape_Line3, Finley_Quad_getNodesPointOnFace, Finley_Quad_getNumNodesPoint,
290     1,{0},
291     -1,{}, {},{}},
292     {Line4Face_Contact, "Line4Face_Contact", 1, 8, 4, 3, 1,
293     Line2Face_Contact, {0,1,4,5},
294     Finley_Shape_Line4, Finley_Quad_getNodesPointOnFace, Finley_Quad_getNumNodesPoint,
295     1,{0},
296     -1,{}, {},{}},
297     {Tri3Face_Contact, "Tri3Face_Contact", 2, 6, 3, 1, 2,
298     Tri3Face_Contact, {0,1,2,3,4,5},
299     Finley_Shape_Tri3, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
300     2,{0,1},
301     -1,{}, {},{}},
302     {Tri6Face_Contact, "Tri6Face_Contact", 2, 12, 6, 2, 2,
303     Tri3Face_Contact, {0,1,2,6,7,8},
304     Finley_Shape_Tri6, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
305     3,{0,1,3},
306     -1,{}, {},{}},
307     {Tri9Face_Contact, "Tri9Face_Contact", 2, 18, 9, 3, 2,
308     Tri3Face_Contact, {0,1,2,9,10,11},
309     Finley_Shape_Tri9, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
310     4,{0,1,3,4},
311     -1,{}, {},{}},
312     {Tri10Face_Contact, "Tri10Face_Contact", 2, 20, 10, 3, 2,
313     Tri3Face_Contact, {0,1,2,10,11,12},
314     Finley_Shape_Tri10, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
315     4,{0,1,3,4},
316     -1,{}, {},{}},
317     {Rec4Face_Contact, "Rec4Face_Contact", 2, 8, 4, 1, 2,
318     Rec4Face_Contact, {0,1,2,3,4,5,6,7},
319     Finley_Shape_Rec4, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
320     2,{0,1},
321     -1,{}, {},{}},
322     {Rec8Face_Contact, "Rec8Face_Contact", 2, 16, 8, 2, 2,
323     Rec4Face_Contact, {0,1,2,3,8,9,10,11},
324     Finley_Shape_Rec8, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
325     3,{0,1,4},
326     -1,{}, {},{}},
327     {Rec9Face_Contact, "Rec9Face_Contact", 2, 18, 9, 2, 2,
328     Rec4Face_Contact, {0,1,2,3,9,10,11,12},
329     Finley_Shape_Rec9, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
330     3,{0,1,4},
331     -1,{}, {},{}},
332     {Rec12Face_Contact, "Rec12Face_Contact", 2, 24, 12, 3, 2,
333     Rec4Face_Contact, {0,1,2,3,12,13,14,15},
334     Finley_Shape_Rec12, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
335     4,{0,1,4,5},
336     -1,{}, {},{}},
337     {Rec16Face_Contact, "Rec16Face_Contact", 2, 32, 16, 3, 2,
338     Rec4Face_Contact, {0,1,2,3,16,17,18,19},
339     Finley_Shape_Rec16, Finley_Quad_getNodesLineOnFace, Finley_Quad_getNumNodesLine,
340     4,{0,1,4,5},
341     -1,{}, {},{}},
342     {Tet4Face_Contact, "Tet4Face_Contact", 3, 8, 4, 1, 3,
343     Tet4Face_Contact, {0,1,2,3,4,5,6,7},
344     Finley_Shape_Tet4, Finley_Quad_getNodesTriOnFace, Finley_Quad_getNumNodesTri,
345     3,{0,1,2},
346     -1,{}, {},{}},
347     {Tet10Face_Contact, "Tet10Face_Contact", 3, 20, 10, 2, 3,
348     Tet4Face_Contact, {0,1,2,3,10,11,12,13},
349     Finley_Shape_Tet10, Finley_Quad_getNodesTriOnFace, Finley_Quad_getNumNodesTri,
350     4,{0,1,2,4,5,6},
351     -1,{}, {},{}},
352     {Tet16Face_Contact, "Tet16Face_Contact", 3, 32, 16, 3, 3,
353     Tet4Face_Contact, {0,1,2,3,16,17,18,19},
354     Finley_Shape_Tet16, Finley_Quad_getNodesTriOnFace, Finley_Quad_getNumNodesTri,
355     5,{0,1,2,4,5,6,7,8,9},
356     -1,{}, {},{}},
357     {Hex8Face_Contact, "Hex8Face_Contact", 3, 16, 8, 1, 4,
358     Hex8Face_Contact, {0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15},
359     Finley_Shape_Hex8, Finley_Quad_getNodesRecOnFace, Finley_Quad_getNumNodesTri,
360     4,{0,1,2,3},
361     -1,{}, {},{}},
362     {Hex20Face_Contact, "Hex20Face_Contact", 3, 40, 20, 2, 4,
363     Hex8Face_Contact, {0,1,2,3,4,5,6,7, 20,21,22,23,24,25,26,27},
364     Finley_Shape_Hex20, Finley_Quad_getNodesRecOnFace, Finley_Quad_getNumNodesTri,
365     8,{0,1,2,3,8,9,10,11},
366     -1,{}, {},{}},
367     {Hex32Face_Contact, "Hex32Face_Contact", 3, 64, 32, 3, 4,
368     Hex8Face_Contact, {0,1,2,3,4,5,6,7, 32,33,34,35,36,37,38,39},
369     Finley_Shape_Hex32, Finley_Quad_getNodesRecOnFace, Finley_Quad_getNumNodesTri,
370     12,{0,1,2,3,8,9,10,11,12,13,14,15},
371     -1,{}, {},{}},
372    
373     {NoType, "noElement", 0, 0, 0, 0, 0, NoType, {}, Finley_Shape_Point1, Finley_Quad_getNodesPoint, Finley_Quad_getNumNodesPoint,0,{},-1,{},{},{}} /* marks end of list */
374     };
375    
376     /**************************************************************/
377    
378     /* get a quadrature scheme with NumQuadNodes quadrature nodes for the tri */
379     /* as a queezed scheme on a quad [0,1]^2 */
380    
381     Finley_RefElement* Finley_RefElement_alloc(ElementTypeId id,int numQuadNodes) {
382     Finley_RefElement *out=NULL;
383    
384     /* allocate the Finley_RefElement to be returned: */
385    
386 jgs 102 out=MEMALLOC(1,Finley_RefElement);
387 jgs 82 if (Finley_checkPtr(out)) return NULL;
388     out->Type=&(Finley_RefElement_InfoList[id]);
389     out->numQuadNodes=numQuadNodes;
390     out->QuadNodes=NULL;
391     out->QuadWeights=NULL;
392     out->S=NULL;
393     out->dSdv=NULL;
394    
395     /* allocate memory: */
396    
397     int Ndim=Finley_RefElement_InfoList[id].numDim;
398     int NS=Finley_RefElement_InfoList[id].numShapes;
399 jgs 102 out->QuadNodes=MEMALLOC(numQuadNodes*Ndim,double);
400     out->QuadWeights=MEMALLOC(numQuadNodes,double);
401     out->S=MEMALLOC(NS*numQuadNodes,double);
402     out->dSdv=MEMALLOC(NS*Ndim*numQuadNodes,double);
403 jgs 82 if ( Finley_checkPtr(out->QuadNodes) || Finley_checkPtr(out->QuadWeights) || Finley_checkPtr(out->S) || Finley_checkPtr(out->dSdv) ) {
404     Finley_RefElement_dealloc(out);
405     return NULL;
406     }
407    
408     /* set the quadrature nodes: */
409    
410     Finley_RefElement_InfoList[id].getQuadNodes(numQuadNodes,out->QuadNodes,out->QuadWeights);
411 jgs 150 if (! Finley_noError()) {
412 jgs 82 Finley_RefElement_dealloc(out);
413     return NULL;
414     }
415    
416     /* eval shape functions on quadrature node: */
417    
418     Finley_RefElement_InfoList[id].getValues(numQuadNodes,out->QuadNodes,out->S,out->dSdv);
419 jgs 150 if (! Finley_noError()) {
420 jgs 82 Finley_RefElement_dealloc(out);
421     return NULL;
422     }
423    
424     /* all done: */
425    
426     #ifdef Finley_TRACE
427     printf("reference element %s with %d quadrature nodes allocated.\n",Finley_RefElement_InfoList[id].Name,numQuadNodes);
428     #endif
429     return out;
430     }
431    
432     /**************************************************************/
433    
434     void Finley_RefElement_dealloc(Finley_RefElement* in) {
435     if (in!=NULL) {
436     #ifdef Finley_TRACE
437     printf("reference element %s is deallocated.\n",in->Type->Name);
438     #endif
439     MEMFREE(in->QuadNodes);
440     MEMFREE(in->QuadWeights);
441     MEMFREE(in->S);
442     MEMFREE(in->dSdv);
443     MEMFREE(in);
444     }
445     }
446    
447     /**************************************************************/
448    
449     ElementTypeId Finley_RefElement_getTypeId(char* element_type) {
450     int ptr=0;
451     ElementTypeId out=NoType;
452     while (Finley_RefElement_InfoList[ptr].TypeId!=NoType && out==NoType) {
453     if (strcmp(element_type,Finley_RefElement_InfoList[ptr].Name)==0) out=Finley_RefElement_InfoList[ptr].TypeId;
454     ptr++;
455     }
456     return out;
457     }
458     /*
459     * $Log$
460 jgs 150 * Revision 1.5 2005/09/15 03:44:23 jgs
461     * Merge of development branch dev-02 back to main trunk on 2005-09-15
462     *
463     * Revision 1.4.2.1 2005/09/07 06:26:21 gross
464     * the solver from finley are put into the standalone package paso now
465     *
466 jgs 102 * Revision 1.4 2004/12/15 07:08:33 jgs
467 jgs 97 * *** empty log message ***
468 jgs 82 *
469 jgs 97 *
470 jgs 82 *
471     */

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26