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

Contents of /trunk/finley/src/ShapeFunctions.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1811 - (show annotations)
Thu Sep 25 23:11:13 2008 UTC (10 years, 9 months ago) by ksteube
File MIME type: text/plain
File size: 70432 byte(s)
Copyright updated in all files

1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2008 by University of Queensland
5 * Earth Systems Science Computational Center (ESSCC)
6 * http://www.uq.edu.au/esscc
7 *
8 * Primary Business: Queensland, Australia
9 * Licensed under the Open Software License version 3.0
10 * http://www.opensource.org/licenses/osl-3.0.php
11 *
12 *******************************************************/
13
14
15 /**************************************************************/
16
17 /* Finley: Shape functions */
18
19 /**************************************************************/
20
21 #include "ShapeFunctions.h"
22
23 /**************************************************************/
24
25 #define V(_K_,_I_) v[INDEX2((_K_)-1,(_I_),DIM)]
26 #define S(_J_,_I_) s[S_INDEX((_J_)-1,(_I_),NUMSHAPES)]
27 #define DSDV(_J_,_K_,_I_) dsdv[DSDV_INDEX((_J_)-1,(_K_)-1,(_I_),NUMSHAPES,DIM)]
28
29 /**************************************************************/
30
31 void Finley_Shape_Point1(int NumV,double* v,double* s,double* dsdv) {
32 #define NUMSHAPES 1
33 #define DIM 0
34 int i;
35 #pragma ivdep
36 for (i=0;i<NumV;i++) {
37 S(1,i)=1.;
38 }
39 #undef NUMSHAPES
40 #undef DIM
41 }
42
43 /**************************************************************/
44
45 void Finley_Shape_Line2(int NumV,double* v,double* s,double* dsdv) {
46 #define NUMSHAPES 2
47 #define DIM 1
48 register double x;
49 int i;
50 #pragma ivdep
51 for (i=0;i<NumV;i++) {
52 x=V(1,i);
53 S(1,i)=1.-x;
54 S(2,i)= x;
55 DSDV(1,1,i)=-1.;
56 DSDV(2,1,i)= 1.;
57 }
58 #undef NUMSHAPES
59 #undef DIM
60 }
61
62 /**************************************************************/
63
64 void Finley_Shape_Line3(int NumV,double* v,double* s,double* dsdv) {
65 #define NUMSHAPES 3
66 #define DIM 1
67 register double x;
68 int i;
69 #pragma ivdep
70 for (i=0;i<NumV;i++) {
71 x=V(1,i);
72 S(1,i)=(2.*x -1. )*(x -1.);
73 S(2,i)=(2.*x -1.)*x;
74 S(3,i)= 4.*x*(1. -x );
75 DSDV(1,1,i)= 4.*x -3.;
76 DSDV(2,1,i)= 4.*x -1.;
77 DSDV(3,1,i)=-8.*x+4.;
78 }
79 #undef NUMSHAPES
80 #undef DIM
81 }
82
83 /**************************************************************/
84
85 void Finley_Shape_Line4(int NumV,double* v,double* s,double* dsdv) {
86 #define NUMSHAPES 4
87 #define DIM 1
88 register double x;
89 int i;
90 #pragma ivdep
91 for (i=0;i<NumV;i++) {
92 x=V(1,i);
93 S(1,i)=(10.)+(-5.5)*x+(9.)*x*x+(-4.5)*x*x*x ;
94 S(2,i)=(10.)*x+(-4.5)*x*x+(4.5)*x*x*x ;
95 S(3,i)=(9.)*x+(-22.5)*x*x+(13.5)*x*x*x ;
96 S(4,i)=(-4.5)*x+(18.)*x*x+(-13.5)*x*x*x;
97 DSDV(1,1,i)=(-5.5)+(18.)*x+(-13.5)*x*x;
98 DSDV(2,1,i)=(10.)+(-9.)*x+(13.5)*x*x;
99 DSDV(3,1,i)=(9.)+(-45.)*x+(0.405e2)*x*x;
100 DSDV(4,1,i)=(-4.5)+(36.)*x+(-0.405e2)*x*x;
101 }
102 #undef NUMSHAPES
103 #undef DIM
104 }
105
106 /**************************************************************/
107
108 void Finley_Shape_Tri3(int NumV,double* v,double* s,double* dsdv) {
109 #define NUMSHAPES 3
110 #define DIM 2
111 register double x,y;
112 int i;
113 #pragma ivdep
114 for (i=0;i<NumV;i++) {
115 x=V(1,i);
116 y=V(2,i);
117 S(1,i)=1.-x-y;
118 S(2,i)= x;
119 S(3,i)= y;
120 DSDV(1,1,i)=-1.;
121 DSDV(1,2,i)=-1.;
122 DSDV(2,1,i)= 1.;
123 DSDV(2,2,i)= 0.;
124 DSDV(3,1,i)= 0.;
125 DSDV(3,2,i)= 1.;
126 }
127 #undef NUMSHAPES
128 #undef DIM
129 }
130
131 /**************************************************************/
132
133 void Finley_Shape_Tri6(int NumV,double* v,double* s,double* dsdv) {
134 #define NUMSHAPES 6
135 #define DIM 2
136 register double x,y;
137 int i;
138 #pragma ivdep
139 for (i=0;i<NumV;i++) {
140 x=V(1,i);
141 y=V(2,i);
142 S(1,i)= (1. -x -y)*(1. -2.*x -2.* y);
143 S(2,i)= x*(2.* x -1.);
144 S(3,i)= y*(2.* y -1.);
145 S(4,i)= (1. -x -y)*4.* x;
146 S(5,i)= 4.*x*y;
147 S(6,i)= (1. -x -y)*4.* y;
148 DSDV(1,1,i)= -3.+4.*x+4.*y;
149 DSDV(1,2,i)= -3.+4.*x+4.*y;
150 DSDV(2,1,i)= -1.+4.*x;
151 DSDV(2,2,i)= 0.;
152 DSDV(3,1,i)= 0.;
153 DSDV(3,2,i)= -1. +4.*y;
154 DSDV(4,1,i)= 4. -8.*x -4.*y;
155 DSDV(4,2,i)= -4.*x;
156 DSDV(5,1,i)= 4.*y;
157 DSDV(5,2,i)= 4.*x;
158 DSDV(6,1,i)= -4.*y;
159 DSDV(6,2,i)= 4. -4.*x -8.*y;
160 }
161 #undef NUMSHAPES
162 #undef DIM
163 }
164
165 /**************************************************************/
166
167 void Finley_Shape_Tri9(int NumV,double* v,double* s,double* dsdv) {
168 #define NUMSHAPES 9
169 #define DIM 2
170 register double x,y;
171 int i;
172 #pragma ivdep
173 for (i=0;i<NumV;i++) {
174 x=V(1,i);
175 y=V(2,i);
176 S(1,i)=(10.)+(-5.5)*x+(-5.5)*y+(9.)*x*x+(-4.5)*x*x*x+(9.)*y*y+(-4.5)*y*y*y+(4.5)*x*y*y+(4.5)*x*x*y;
177 S(2,i)=(10.)*x+(-4.5)*x*x+(4.5)*x*x*x;
178 S(3,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y;
179 S(4,i)=(9.)*x+(-22.5)*x*x+(13.5)*x*x*x+(-9.)*x*y*y+(4.5)*x*x*y;
180 S(5,i)=(-4.5)*x+(18.)*x*x+(-13.5)*x*x*x+(4.5)*x*y*y+(-9.)*x*x*y;
181 S(6,i)=(-4.5)*x*y*y+(9.)*x*x*y;
182 S(7,i)=(9.)*x*y*y+(-4.5)*x*x*y;
183 S(8,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y+(-9.)*x*y*y+(4.5)*x*x*y;
184 S(9,i)=(9.)*y+(-22.5)*y*y+(13.5)*y*y*y+(4.5)*x*y*y+(-9.)*x*x*y;
185 DSDV(1, 1,i)=(-5.5)+(18.)*x+(-13.5)*x*x+(4.5)*y*y+(9.)*x*y;
186 DSDV(2, 1,i)=(10.)+(-9.)*x+(13.5)*x*x;
187 DSDV(3, 1,i)= 0.;
188 DSDV(4, 1,i)=(9.)+(-45.)*x+(0.405e2)*x*x+(-9.)*y*y+(9.)*x*y;
189 DSDV(5, 1,i)=(-4.5)+(36.)*x+(-0.405e2)*x*x+(4.5)*y*y+(-18.)*x*y;
190 DSDV(6, 1,i)=(-4.5)*y*y+(18.)*x*y;
191 DSDV(7, 1,i)=(9.)*y*y+(-9.)*x*y;
192 DSDV(8, 1,i)=(-9.)*y*y+(9.)*x*y;
193 DSDV(9, 1,i)=(4.5)*y*y+(-18.)*x*y;
194 DSDV(1, 2,i)=(-5.5)+(18.)*y+(-13.5)*y*y+(9.)*x*y+(4.5)*x*x;
195 DSDV(2, 2,i)= 0.;
196 DSDV(3, 2,i)=(10.)+(-9.)*y+(13.5)*y*y;
197 DSDV(4, 2,i)=(-18.)*x*y+(4.5)*x*x;
198 DSDV(5, 2,i)=(9.)*x*y+(-9.)*x*x;
199 DSDV(6, 2,i)=(-9.)*x*y+(9.)*x*x;
200 DSDV(7, 2,i)=(18.)*x*y+(-4.5)*x*x;
201 DSDV(8, 2,i)=(-4.5)+(36.)*y+(-0.405e2)*y*y+(-18.)*x*y+(4.5)*x*x;
202 DSDV(9, 2,i)=(9.)+(-45.)*y+(0.405e2)*y*y+(9.)*x*y+(-9.)*x*x;
203 }
204 #undef NUMSHAPES
205 #undef DIM
206 }
207
208 /**************************************************************/
209
210 void Finley_Shape_Tri10(int NumV,double* v,double* s,double* dsdv) {
211 #define NUMSHAPES 10
212 #define DIM 2
213 register double x,y;
214 int i;
215 #pragma ivdep
216 for (i=0;i<NumV;i++) {
217 x=V(1,i);
218 y=V(2,i);
219 S(1,i)=(10.)+(-5.5)*x+(-5.5)*y+(9.)*x*x+(-4.5)*x*x*x+(9.)*y*y+(-4.5)*y*y*y+(-13.5)*x*y*y+(-13.5)*x*x*y+(18.)*x*y;
220 S(2,i)=(10.)*x+(-4.5)*x*x+(4.5)*x*x*x;
221 S(3,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y;
222 S(4,i)=(9.)*x+(-22.5)*x*x+(13.5)*x*x*x+(13.5)*x*y*y+(0.27e2)*x*x*y+(-22.5)*x*y;
223 S(5,i)=(-4.5)*x+(18.)*x*x+(-13.5)*x*x*x+(-13.5)*x*x*y+(4.5)*x*y;
224 S(6,i)=(13.5)*x*x*y+(-4.5)*x*y;
225 S(7,i)=(13.5)*x*y*y+(-4.5)*x*y;
226 S(8,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y+(-13.5)*x*y*y+(4.5)*x*y;
227 S(9,i)=(9.)*y+(-22.5)*y*y+(13.5)*y*y*y+(0.27e2)*x*y*y+(13.5)*x*x*y+(-22.5)*x*y;
228 S(10,i)=(-0.27e2)*x*y*y+(-0.27e2)*x*x*y+(0.27e2)*x*y;
229 DSDV(1, 1,i)=(-5.5)+(18.)*x+(-13.5)*x*x+(-13.5)*y*y+(-0.27e2)*x*y+(18.)*y;
230 DSDV(2, 1,i)=(10.)+(-9.)*x+(13.5)*x*x;
231 DSDV(3, 1,i)= 0.;
232 DSDV(4, 1,i)=(9.)+(-45.)*x+(0.405e2)*x*x+(13.5)*y*y+(0.54e2)*x*y+(-22.5)*y;
233 DSDV(5, 1,i)=(-4.5)+(36.)*x+(-0.405e2)*x*x+(-0.27e2)*x*y+(4.5)*y;
234 DSDV(6, 1,i)=(0.27e2)*x*y+(-4.5)*y;
235 DSDV(7, 1,i)=(13.5)*y*y+(-4.5)*y;
236 DSDV(8, 1,i)=(-13.5)*y*y+(4.5)*y;
237 DSDV(9, 1,i)=(0.27e2)*y*y+(0.27e2)*x*y+(-22.5)*y;
238 DSDV(10, 1,i)=(-0.27e2)*y*y+(-0.54e2)*x*y+(0.27e2)*y;
239 DSDV(1, 2,i)=(-5.5)+(18.)*y+(-13.5)*y*y+(-0.27e2)*x*y+(-13.5)*x*x+(18.)*x;
240 DSDV(2, 2,i)=0.;
241 DSDV(3, 2,i)=(10.)+(-9.)*y+(13.5)*y*y;
242 DSDV(4, 2,i)=(0.27e2)*x*y+(0.27e2)*x*x+(-22.5)*x;
243 DSDV(5, 2,i)=(-13.5)*x*x+(4.5)*x;
244 DSDV(6, 2,i)=(13.5)*x*x+(-4.5)*x;
245 DSDV(7, 2,i)=(0.27e2)*x*y+(-4.5)*x;
246 DSDV(8, 2,i)=(-4.5)+(36.)*y+(-0.405e2)*y*y+(-0.27e2)*x*y+(4.5)*x;
247 DSDV(9, 2,i)=(9.)+(-45.)*y+(0.405e2)*y*y+(0.54e2)*x*y+(13.5)*x*x+(-22.5)*x;
248 DSDV(10, 2,i)=(-0.54e2)*x*y+(-0.27e2)*x*x+(0.27e2)*x;
249 }
250 #undef NUMSHAPES
251 #undef DIM
252 }
253
254 /**************************************************************/
255
256 void Finley_Shape_Rec4(int NumV,double* v,double* s,double* dsdv) {
257 #define NUMSHAPES 4
258 #define DIM 2
259 register double x,y;
260 int i;
261 #pragma ivdep
262 for (i=0;i<NumV;i++) {
263 x=V(1,i);
264 y=V(2,i);
265 S(1,i)=(1.-x)*(1.-y);
266 S(2,i)= x*(1.-y);
267 S(3,i)= x*y;
268 S(4,i)= (1.-x)*y;
269 DSDV(1,1,i)=y-1.;
270 DSDV(1,2,i)=x-1.;
271 DSDV(2,1,i)= 1.-y;
272 DSDV(2,2,i)=-x;
273 DSDV(3,1,i)= y;
274 DSDV(3,2,i)= x;
275 DSDV(4,1,i)=-y;
276 DSDV(4,2,i)= 1.-x;
277 }
278 #undef NUMSHAPES
279 #undef DIM
280 }
281
282 /**************************************************************/
283
284 void Finley_Shape_Rec8(int NumV,double* v,double* s,double* dsdv) {
285 #define NUMSHAPES 8
286 #define DIM 2
287 register double x,y;
288 int i;
289 #pragma ivdep
290 for (i=0;i<NumV;i++) {
291 x=V(1,i);
292 y=V(2,i);
293 S(1,i)= 1. -3.*(x+y )+2.*x*x*(1. -y )+2.*y*y*(1. -x )+5.*x*y;
294 S(2,i)= x*(-1. -y+2.*x+2.*y*y -2.*x*y );
295 S(3,i)= x*y*(-3.+2.*(x+y ));
296 S(4,i)= y*(-1. -x+2.*y+2.*x*x -2.*x*y );
297 S(5,i)=4.*x*(1. -x -y+x* y);
298 S(6,i)= 4.*x*y*(1. -y );
299 S(7,i)= 4.*x*y*(1. -x );
300 S(8,i)=4.*y*(1. -x -y+x* y);
301 DSDV(1,1,i)=-3.+4.*x*(1. -y )+y*(5. -2.*y );
302 DSDV(1,2,i)=-3.+4.*y*(1. -x )+x*(5. -2.*x );
303 DSDV(2,1,i)=-1.+4.*x*(1. -y )+y*(-1.+2.*y );
304 DSDV(2,2,i)= x*(-1. -2.*x+4.*y);
305 DSDV(3,1,i)= y*(-3.+4.*x+2.*y);
306 DSDV(3,2,i)= x*(-3.+4.*y+2.*x);
307 DSDV(4,1,i)= y*(-1. -2.*y+4.*x);
308 DSDV(4,2,i)=-1.+4.*y*(1. -x )+x*(-1.+2.*x );
309 DSDV(5,1,i)= 4.*(1. -y )+8.*x*(y -1. );
310 DSDV(5,2,i)= 4.*x*(x -1.);
311 DSDV(6,1,i)= 4.*y*(1. -y );
312 DSDV(6,2,i)= 4.*x*(1. -2.*y );
313 DSDV(7,1,i)= 4.*y*(1. -2.*x );
314 DSDV(7,2,i)= 4.*x*(1. -x );
315 DSDV(8,1,i)= 4.*y*(y -1.);
316 DSDV(8,2,i)= 4.*(1. -x )+8.*y*(x -1. );
317 }
318 #undef NUMSHAPES
319 #undef DIM
320 }
321
322 /**************************************************************/
323
324 void Finley_Shape_Rec9(int NumV,double* v,double* s,double* dsdv) {
325 #define NUMSHAPES 9
326 #define DIM 2
327 register double x,y;
328 int i;
329 #pragma ivdep
330 for (i=0;i<NumV;i++) {
331 x=V(1,i);
332 y=V(2,i);
333 S(1,i)= + 1.0 - 3.0*x + 2.0*x*x - 3.0*y + 9.0*x*y - 6.0*x*x*y + 2.0*y*y - 6.0*x*y*y + 4.0*x*x*y*y;
334 S(2,i)= - 1.0*x + 2.0*x*x + 3.0*x*y - 6.0*x*x*y - 2.0*x*y*y + 4.0*x*x*y*y;
335 S(3,i)= + 1.0*x*y - 2.0*x*x*y - 2.0*x*y*y + 4.0*x*x*y*y;
336 S(4,i)= - 1.0*y + 3.0*x*y - 2.0*x*x*y + 2.0*y*y - 6.0*x*y*y + 4.0*x*x*y*y;
337 S(5,i)= + 4.0*x - 4.0*x*x - 12.0*x*y + 12.0*x*x*y + 8.0*x*y*y - 8.0*x*x*y*y;
338 S(6,i)= - 4.0*x*y + 8.0*x*x*y + 4.0*x*y*y - 8.0*x*x*y*y;
339 S(7,i)= - 4.0*x*y + 4.0*x*x*y + 8.0*x*y*y - 8.0*x*x*y*y;
340 S(8,i)= + 4.0*y - 12.0*x*y + 8.0*x*x*y - 4.0*y*y + 12.0*x*y*y - 8.0*x*x*y*y;
341 S(9,i)= + 16.0*x*y - 16.0*x*x*y - 16.0*x*y*y + 16.0*x*x*y*y;
342 DSDV(1,1,i)= - 3.0 + 4.0*x + 9.0*y - 12.0*x*y - 6.0*y*y + 8.0*x*y*y;
343 DSDV(1,2,i)= - 3.0 + 9.0*x - 6.0*x*x + 4.0*y - 12.0*x*y + 8.0*x*x*y;
344 DSDV(2,1,i)= - 1.0 + 4.0*x + 3.0*y - 12.0*x*y - 2.0*y*y + 8.0*x*y*y;
345 DSDV(2,2,i)= + 3.0*x - 6.0*x*x - 4.0*x*y + 8.0*x*x*y;
346 DSDV(3,1,i)= + 1.0*y - 4.0*x*y - 2.0*y*y + 8.0*x*y*y;
347 DSDV(3,2,i)= + 1.0*x - 2.0*x*x - 4.0*x*y + 8.0*x*x*y;
348 DSDV(4,1,i)= + 3.0*y - 4.0*x*y - 6.0*y*y + 8.0*x*y*y;
349 DSDV(4,2,i)= - 1.0 + 3.0*x - 2.0*x*x + 4.0*y - 12.0*x*y + 8.0*x*x*y;
350 DSDV(5,1,i)= + 4.0 - 8.0*x - 12.0*y + 24.0*x*y + 8.0*y*y - 16.0*x*y*y;
351 DSDV(5,2,i)= - 12.0*x + 12.0*x*x + 16.0*x*y - 16.0*x*x*y;
352 DSDV(6,1,i)= - 4.0*y + 16.0*x*y + 4.0*y*y - 16.0*x*y*y;
353 DSDV(6,2,i)= - 4.0*x + 8.0*x*x + 8.0*x*y - 16.0*x*x*y;
354 DSDV(7,1,i)= - 4.0*y + 8.0*x*y + 8.0*y*y - 16.0*x*y*y;
355 DSDV(7,2,i)= - 4.0*x + 4.0*x*x + 16.0*x*y - 16.0*x*x*y;
356 DSDV(8,1,i)= - 12.0*y + 16.0*x*y + 12.0*y*y - 16.0*x*y*y;
357 DSDV(8,2,i)= + 4.0 - 12.0*x + 8.0*x*x - 8.0*y + 24.0*x*y - 16.0*x*x*y;
358 DSDV(9,1,i)= + 16.0*y - 32.0*x*y - 16.0*y*y + 32.0*x*y*y;
359 DSDV(9,2,i)= + 16.0*x - 16.0*x*x - 32.0*x*y + 32.0*x*x*y;
360 }
361 #undef NUMSHAPES
362 #undef DIM
363 }
364
365 /**************************************************************/
366
367 void Finley_Shape_Rec12(int NumV,double* v,double* s,double* dsdv) {
368 #define NUMSHAPES 12
369 #define DIM 2
370 register double x,y;
371 int i;
372 #pragma ivdep
373 for (i=0;i<NumV;i++) {
374 x=V(1,i);
375 y=V(2,i);
376 S(1,i)=(10.)+(-5.5)*x+(10.)*x*y+(-5.5)*y+(9.)*x*x+(-4.5)*x*x*x+(-9.)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-9.)*x*x*y+(-4.5)*y*y*y+(9.)*y*y;
377 S(2,i)=(10.)*x+(-5.5)*x*y+(-4.5)*x*x+(4.5)*x*x*x+(9.)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(4.5)*x*x*y;
378 S(3,i)=(10.)*x*y+(-4.5)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-4.5)*x*x*y;
379 S(4,i)=(-5.5)*x*y+(10.)*y+(4.5)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(9.)*x*x*y+(4.5)*y*y*y+(-4.5)*y*y;
380 S(5,i)=(9.)*x+(-9.)*x*y+(-22.5)*x*x+(13.5)*x*x*x+(-13.5)*x*x*x*y+(22.5)*x*x*y;
381 S(6,i)=(-4.5)*x+(4.5)*x*y+(18.)*x*x+(-13.5)*x*x*x+(13.5)*x*x*x*y+(-18.)*x*x*y;
382 S(7,i)=(9.)*x*y+(-22.5)*x*y*y+(13.5)*x*y*y*y;
383 S(8,i)=(-4.5)*x*y+(18.)*x*y*y+(-13.5)*x*y*y*y;
384 S(9,i)=(-4.5)*x*y+(-13.5)*x*x*x*y+(18.)*x*x*y;
385 S(10,i)=(9.)*x*y+(13.5)*x*x*x*y+(-22.5)*x*x*y;
386 S(11,i)=(4.5)*x*y+(-4.5)*y+(-18.)*x*y*y+(13.5)*x*y*y*y+(-13.5)*y*y*y+(18.)*y*y;
387 S(12,i)=(-9.)*x*y+(9.)*y+(22.5)*x*y*y+(-13.5)*x*y*y*y+(13.5)*y*y*y+(-22.5)*y*y;
388 DSDV(1,1,i)=(-5.5)+(10.)*y+(18.)*x+(-13.5)*x*x+(-9.)*y*y+(4.5)*y*y*y+(13.5)*x*x*y+(-18.)*x*y;
389 DSDV(2,1,i)=(10.)+(-5.5)*y+(-9.)*x+(13.5)*x*x+(9.)*y*y+(-4.5)*y*y*y+(-13.5)*x*x*y+(9.)*x*y;
390 DSDV(3,1,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y+(13.5)*x*x*y+(-9.)*x*y;
391 DSDV(4,1,i)=(-5.5)*y+(4.5)*y*y+(-4.5)*y*y*y+(-13.5)*x*x*y+(18.)*x*y;
392 DSDV(5,1,i)=(9.)+(-9.)*y+(-45.)*x+(0.405e2)*x*x+(-0.405e2)*x*x*y+(45.)*x*y;
393 DSDV(6,1,i)=(-4.5)+(4.5)*y+(36.)*x+(-0.405e2)*x*x+(0.405e2)*x*x*y+(-36.)*x*y;
394 DSDV(7,1,i)=(9.)*y+(-22.5)*y*y+(13.5)*y*y*y;
395 DSDV(8,1,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y;
396 DSDV(9,1,i)=(-4.5)*y+(-0.405e2)*x*x*y+(36.)*x*y;
397 DSDV(10,1,i)=(9.)*y+(0.405e2)*x*x*y+(-45.)*x*y;
398 DSDV(11,1,i)=(4.5)*y+(-18.)*y*y+(13.5)*y*y*y;
399 DSDV(12,1,i)=(-9.)*y+(22.5)*y*y+(-13.5)*y*y*y;
400 DSDV(1,2,i)=(10.)*x+(-5.5)+(-18.)*x*y+(13.5)*x*y*y+(4.5)*x*x*x+(-9.)*x*x+(-13.5)*y*y+(18.)*y;
401 DSDV(2,2,i)=(-5.5)*x+(18.)*x*y+(-13.5)*x*y*y+(-4.5)*x*x*x+(4.5)*x*x;
402 DSDV(3,2,i)=(10.)*x+(-9.)*x*y+(13.5)*x*y*y+(4.5)*x*x*x+(-4.5)*x*x;
403 DSDV(4,2,i)=(-5.5)*x+(10.)+(9.)*x*y+(-13.5)*x*y*y+(-4.5)*x*x*x+(9.)*x*x+(13.5)*y*y+(-9.)*y;
404 DSDV(5,2,i)=(-9.)*x+(-13.5)*x*x*x+(22.5)*x*x;
405 DSDV(6,2,i)=(4.5)*x+(13.5)*x*x*x+(-18.)*x*x;
406 DSDV(7,2,i)=(9.)*x+(-45.)*x*y+(0.405e2)*x*y*y;
407 DSDV(8,2,i)=(-4.5)*x+(36.)*x*y+(-0.405e2)*x*y*y;
408 DSDV(9,2,i)=(-4.5)*x+(-13.5)*x*x*x+(18.)*x*x;
409 DSDV(10,2,i)=(9.)*x+(13.5)*x*x*x+(-22.5)*x*x;
410 DSDV(11,2,i)=(4.5)*x+(-4.5)+(-36.)*x*y+(0.405e2)*x*y*y+(-0.405e2)*y*y+(36.)*y;
411 DSDV(12,2,i)=(-9.)*x+(9.)+(45.)*x*y+(-0.405e2)*x*y*y+(0.405e2)*y*y+(-45.)*y;
412 }
413 #undef NUMSHAPES
414 #undef DIM
415 }
416
417 /**************************************************************/
418
419 void Finley_Shape_Rec16(int NumV,double* v,double* s,double* dsdv) {
420 #define NUMSHAPES 16
421 #define DIM 2
422 register double x,y;
423 int i;
424 #pragma ivdep
425 for (i=0;i<NumV;i++) {
426 x=V(1,i);
427 y=V(2,i);
428 S(1,i)=(10.)+(-5.5)*x+(0.3025e2)*x*y+(-5.5)*y+(9.)*x*x+(-4.5)*x*x*x+(-0.495e2)*x*y*y+(0.2475e2)*x*y*y*y+(0.2475e2)*x*x*x*y+(-0.495e2)*x*x*y+(-4.5)*y*y*y+(9.)*y*y+(0.81e2)*x*x*y*y+(-0.405e2)*x*x*x*y*y+(0.2025e2)*x*x*x*y*y*y+(-0.405e2)*x*x*y*y*y;
429 S(2,i)=(10.)*x+(-5.5)*x*y+(-4.5)*x*x+(4.5)*x*x*x+(9.)*x*y*y+(-4.5)*x*y*y*y+(-0.2475e2)*x*x*x*y+(0.2475e2)*x*x*y+(-0.405e2)*x*x*y*y+(0.405e2)*x*x*x*y*y+(-0.2025e2)*x*x*x*y*y*y+(0.2025e2)*x*x*y*y*y;
430 S(3,i)=(10.)*x*y+(-4.5)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-4.5)*x*x*y+(0.2025e2)*x*x*y*y+(-0.2025e2)*x*x*x*y*y+(0.2025e2)*x*x*x*y*y*y+(-0.2025e2)*x*x*y*y*y;
431 S(4,i)=(-5.5)*x*y+(10.)*y+(0.2475e2)*x*y*y+(-0.2475e2)*x*y*y*y+(-4.5)*x*x*x*y+(9.)*x*x*y+(4.5)*y*y*y+(-4.5)*y*y+(-0.405e2)*x*x*y*y+(0.2025e2)*x*x*x*y*y+(-0.2025e2)*x*x*x*y*y*y+(0.405e2)*x*x*y*y*y;
432 S(5,i)=(9.)*x+(-0.495e2)*x*y+(-22.5)*x*x+(13.5)*x*x*x+(0.81e2)*x*y*y+(-0.405e2)*x*y*y*y+(-0.7425e2)*x*x*x*y+(0.12375e3)*x*x*y+(-0.2025e3)*x*x*y*y+(0.1215e3)*x*x*x*y*y+(-0.6075e2)*x*x*x*y*y*y+(0.10125e3)*x*x*y*y*y;
433 S(6,i)=(-4.5)*x+(0.2475e2)*x*y+(18.)*x*x+(-13.5)*x*x*x+(-0.405e2)*x*y*y+(0.2025e2)*x*y*y*y+(0.7425e2)*x*x*x*y+(-0.99e2)*x*x*y+(0.162e3)*x*x*y*y+(-0.1215e3)*x*x*x*y*y+(0.6075e2)*x*x*x*y*y*y+(-0.81e2)*x*x*y*y*y;
434 S(7,i)=(9.)*x*y+(-22.5)*x*y*y+(13.5)*x*y*y*y+(0.405e2)*x*x*x*y+(-0.405e2)*x*x*y+(0.10125e3)*x*x*y*y+(-0.10125e3)*x*x*x*y*y+(0.6075e2)*x*x*x*y*y*y+(-0.6075e2)*x*x*y*y*y;
435 S(8,i)=(-4.5)*x*y+(18.)*x*y*y+(-13.5)*x*y*y*y+(-0.2025e2)*x*x*x*y+(0.2025e2)*x*x*y+(-0.81e2)*x*x*y*y+(0.81e2)*x*x*x*y*y+(-0.6075e2)*x*x*x*y*y*y+(0.6075e2)*x*x*y*y*y;
436 S(9,i)=(-4.5)*x*y+(0.2025e2)*x*y*y+(-0.2025e2)*x*y*y*y+(-13.5)*x*x*x*y+(18.)*x*x*y+(-0.81e2)*x*x*y*y+(0.6075e2)*x*x*x*y*y+(-0.6075e2)*x*x*x*y*y*y+(0.81e2)*x*x*y*y*y;
437 S(10,i)=(9.)*x*y+(-0.405e2)*x*y*y+(0.405e2)*x*y*y*y+(13.5)*x*x*x*y+(-22.5)*x*x*y+(0.10125e3)*x*x*y*y+(-0.6075e2)*x*x*x*y*y+(0.6075e2)*x*x*x*y*y*y+(-0.10125e3)*x*x*y*y*y;
438 S(11,i)=(0.2475e2)*x*y+(-4.5)*y+(-0.99e2)*x*y*y+(0.7425e2)*x*y*y*y+(0.2025e2)*x*x*x*y+(-0.405e2)*x*x*y+(-13.5)*y*y*y+(18.)*y*y+(0.162e3)*x*x*y*y+(-0.81e2)*x*x*x*y*y+(0.6075e2)*x*x*x*y*y*y+(-0.1215e3)*x*x*y*y*y;
439 S(12,i)=(-0.495e2)*x*y+(9.)*y+(0.12375e3)*x*y*y+(-0.7425e2)*x*y*y*y+(-0.405e2)*x*x*x*y+(0.81e2)*x*x*y+(13.5)*y*y*y+(-22.5)*y*y+(-0.2025e3)*x*x*y*y+(0.10125e3)*x*x*x*y*y+(-0.6075e2)*x*x*x*y*y*y+(0.1215e3)*x*x*y*y*y;
440 S(13,i)=(0.81e2)*x*y+(-0.2025e3)*x*y*y+(0.1215e3)*x*y*y*y+(0.1215e3)*x*x*x*y+(-0.2025e3)*x*x*y+(0.50625e3)*x*x*y*y+(-0.30375e3)*x*x*x*y*y+(0.18225e3)*x*x*x*y*y*y+(-0.30375e3)*x*x*y*y*y;
441 S(14,i)=(-0.405e2)*x*y+(0.10125e3)*x*y*y+(-0.6075e2)*x*y*y*y+(-0.1215e3)*x*x*x*y+(0.162e3)*x*x*y+(-0.405e3)*x*x*y*y+(0.30375e3)*x*x*x*y*y+(-0.18225e3)*x*x*x*y*y*y+(0.243e3)*x*x*y*y*y;
442 S(15,i)=(0.2025e2)*x*y+(-0.81e2)*x*y*y+(0.6075e2)*x*y*y*y+(0.6075e2)*x*x*x*y+(-0.81e2)*x*x*y+(0.324e3)*x*x*y*y+(-0.243e3)*x*x*x*y*y+(0.18225e3)*x*x*x*y*y*y+(-0.243e3)*x*x*y*y*y;
443 S(16,i)=(-0.405e2)*x*y+(0.162e3)*x*y*y+(-0.1215e3)*x*y*y*y+(-0.6075e2)*x*x*x*y+(0.10125e3)*x*x*y+(-0.405e3)*x*x*y*y+(0.243e3)*x*x*x*y*y+(-0.18225e3)*x*x*x*y*y*y+(0.30375e3)*x*x*y*y*y;
444 DSDV(1, 1,i)=(-5.5)+(0.3025e2)*y+(18.)*x+(-13.5)*x*x+(-0.495e2)*y*y+(0.2475e2)*y*y*y+(0.7425e2)*x*x*y+(-0.99e2)*x*y+(0.162e3)*x*y*y+(-0.1215e3)*x*x*y*y+(0.6075e2)*x*x*y*y*y+(-0.81e2)*x*y*y*y;
445 DSDV(2, 1,i)=(10.)+(-5.5)*y+(-9.)*x+(13.5)*x*x+(9.)*y*y+(-4.5)*y*y*y+(-0.7425e2)*x*x*y+(0.495e2)*x*y+(-0.81e2)*x*y*y+(0.1215e3)*x*x*y*y+(-0.6075e2)*x*x*y*y*y+(0.405e2)*x*y*y*y;
446 DSDV(3, 1,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y+(13.5)*x*x*y+(-9.)*x*y+(0.405e2)*x*y*y+(-0.6075e2)*x*x*y*y+(0.6075e2)*x*x*y*y*y+(-0.405e2)*x*y*y*y;
447 DSDV(4, 1,i)=(-5.5)*y+(0.2475e2)*y*y+(-0.2475e2)*y*y*y+(-13.5)*x*x*y+(18.)*x*y+(-0.81e2)*x*y*y+(0.6075e2)*x*x*y*y+(-0.6075e2)*x*x*y*y*y+(0.81e2)*x*y*y*y;
448 DSDV(5, 1,i)=(9.)+(-0.495e2)*y+(-45.)*x+(0.405e2)*x*x+(0.81e2)*y*y+(-0.405e2)*y*y*y+(-0.22275e3)*x*x*y+(0.2475e3)*x*y+(-0.405e3)*x*y*y+(0.3645e3)*x*x*y*y+(-0.18225e3)*x*x*y*y*y+(0.2025e3)*x*y*y*y;
449 DSDV(6, 1,i)=(-4.5)+(0.2475e2)*y+(36.)*x+(-0.405e2)*x*x+(-0.405e2)*y*y+(0.2025e2)*y*y*y+(0.22275e3)*x*x*y+(-0.198e3)*x*y+(0.324e3)*x*y*y+(-0.3645e3)*x*x*y*y+(0.18225e3)*x*x*y*y*y+(-0.162e3)*x*y*y*y;
450 DSDV(7, 1,i)=(9.)*y+(-22.5)*y*y+(13.5)*y*y*y+(0.1215e3)*x*x*y+(-0.81e2)*x*y+(0.2025e3)*x*y*y+(-0.30375e3)*x*x*y*y+(0.18225e3)*x*x*y*y*y+(-0.1215e3)*x*y*y*y;
451 DSDV(8, 1,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y+(-0.6075e2)*x*x*y+(0.405e2)*x*y+(-0.162e3)*x*y*y+(0.243e3)*x*x*y*y+(-0.18225e3)*x*x*y*y*y+(0.1215e3)*x*y*y*y;
452 DSDV(9, 1,i)=(-4.5)*y+(0.2025e2)*y*y+(-0.2025e2)*y*y*y+(-0.405e2)*x*x*y+(36.)*x*y+(-0.162e3)*x*y*y+(0.18225e3)*x*x*y*y+(-0.18225e3)*x*x*y*y*y+(0.162e3)*x*y*y*y;
453 DSDV(10, 1,i)=(9.)*y+(-0.405e2)*y*y+(0.405e2)*y*y*y+(0.405e2)*x*x*y+(-45.)*x*y+(0.2025e3)*x*y*y+(-0.18225e3)*x*x*y*y+(0.18225e3)*x*x*y*y*y+(-0.2025e3)*x*y*y*y;
454 DSDV(11, 1,i)=(0.2475e2)*y+(-0.99e2)*y*y+(0.7425e2)*y*y*y+(0.6075e2)*x*x*y+(-0.81e2)*x*y+(0.324e3)*x*y*y+(-0.243e3)*x*x*y*y+(0.18225e3)*x*x*y*y*y+(-0.243e3)*x*y*y*y;
455 DSDV(12, 1,i)=(-0.495e2)*y+(0.12375e3)*y*y+(-0.7425e2)*y*y*y+(-0.1215e3)*x*x*y+(0.162e3)*x*y+(-0.405e3)*x*y*y+(0.30375e3)*x*x*y*y+(-0.18225e3)*x*x*y*y*y+(0.243e3)*x*y*y*y;
456 DSDV(13, 1,i)=(0.81e2)*y+(-0.2025e3)*y*y+(0.1215e3)*y*y*y+(0.3645e3)*x*x*y+(-0.405e3)*x*y+(0.10125e4)*x*y*y+(-0.91125e3)*x*x*y*y+(0.54675e3)*x*x*y*y*y+(-0.6075e3)*x*y*y*y;
457 DSDV(14, 1,i)=(-0.405e2)*y+(0.10125e3)*y*y+(-0.6075e2)*y*y*y+(-0.3645e3)*x*x*y+(0.324e3)*x*y+(-0.81e3)*x*y*y+(0.91125e3)*x*x*y*y+(-0.54675e3)*x*x*y*y*y+(0.486e3)*x*y*y*y;
458 DSDV(15, 1,i)=(0.2025e2)*y+(-0.81e2)*y*y+(0.6075e2)*y*y*y+(0.18225e3)*x*x*y+(-0.162e3)*x*y+(0.648e3)*x*y*y+(-0.729e3)*x*x*y*y+(0.54675e3)*x*x*y*y*y+(-0.486e3)*x*y*y*y;
459 DSDV(16, 1,i)=(-0.405e2)*y+(0.162e3)*y*y+(-0.1215e3)*y*y*y+(-0.18225e3)*x*x*y+(0.2025e3)*x*y+(-0.81e3)*x*y*y+(0.729e3)*x*x*y*y+(-0.54675e3)*x*x*y*y*y+(0.6075e3)*x*y*y*y;
460 DSDV(1, 2,i)=(0.3025e2)*x+(-5.5)+(-0.99e2)*x*y+(0.7425e2)*x*y*y+(0.2475e2)*x*x*x+(-0.495e2)*x*x+(-13.5)*y*y+(18.)*y+(0.162e3)*x*x*y+(-0.81e2)*x*x*x*y+(0.6075e2)*x*x*x*y*y+(-0.1215e3)*x*x*y*y;
461 DSDV(2, 2,i)=(-5.5)*x+(18.)*x*y+(-13.5)*x*y*y+(-0.2475e2)*x*x*x+(0.2475e2)*x*x+(-0.81e2)*x*x*y+(0.81e2)*x*x*x*y+(-0.6075e2)*x*x*x*y*y+(0.6075e2)*x*x*y*y;
462 DSDV(3, 2,i)=(10.)*x+(-9.)*x*y+(13.5)*x*y*y+(4.5)*x*x*x+(-4.5)*x*x+(0.405e2)*x*x*y+(-0.405e2)*x*x*x*y+(0.6075e2)*x*x*x*y*y+(-0.6075e2)*x*x*y*y;
463 DSDV(4, 2,i)=(-5.5)*x+(10.)+(0.495e2)*x*y+(-0.7425e2)*x*y*y+(-4.5)*x*x*x+(9.)*x*x+(13.5)*y*y+(-9.)*y+(-0.81e2)*x*x*y+(0.405e2)*x*x*x*y+(-0.6075e2)*x*x*x*y*y+(0.1215e3)*x*x*y*y;
464 DSDV(5, 2,i)=(-0.495e2)*x+(0.162e3)*x*y+(-0.1215e3)*x*y*y+(-0.7425e2)*x*x*x+(0.12375e3)*x*x+(-0.405e3)*x*x*y+(0.243e3)*x*x*x*y+(-0.18225e3)*x*x*x*y*y+(0.30375e3)*x*x*y*y;
465 DSDV(6, 2,i)=(0.2475e2)*x+(-0.81e2)*x*y+(0.6075e2)*x*y*y+(0.7425e2)*x*x*x+(-0.99e2)*x*x+(0.324e3)*x*x*y+(-0.243e3)*x*x*x*y+(0.18225e3)*x*x*x*y*y+(-0.243e3)*x*x*y*y;
466 DSDV(7, 2,i)=(9.)*x+(-45.)*x*y+(0.405e2)*x*y*y+(0.405e2)*x*x*x+(-.405e2)*x*x+(0.2025e3)*x*x*y+(-0.2025e3)*x*x*x*y+(0.18225e3)*x*x*x*y*y+(-0.18225e3)*x*x*y*y;
467 DSDV(8, 2,i)=(-4.5)*x+(36.)*x*y+(-0.405e2)*x*y*y+(-0.2025e2)*x*x*x+(0.2025e2)*x*x+(-0.162e3)*x*x*y+(0.162e3)*x*x*x*y+(-0.18225e3)*x*x*x*y*y+(0.18225e3)*x*x*y*y;
468 DSDV(9, 2,i)=(-4.5)*x+(0.405e2)*x*y+(-0.6075e2)*x*y*y+(-13.5)*x*x*x+(18.)*x*x+(-0.162e3)*x*x*y+(0.1215e3)*x*x*x*y+(-0.18225e3)*x*x*x*y*y+(0.243e3)*x*x*y*y;
469 DSDV(10, 2,i)=(9.)*x+(-0.81e2)*x*y+(0.1215e3)*x*y*y+(13.5)*x*x*x+(-22.5)*x*x+(0.2025e3)*x*x*y+(-0.1215e3)*x*x*x*y+(0.18225e3)*x*x*x*y*y+(-0.30375e3)*x*x*y*y;
470 DSDV(11, 2,i)=(0.2475e2)*x+(-4.5)+(-0.198e3)*x*y+(0.22275e3)*x*y*y+(0.2025e2)*x*x*x+(-0.405e2)*x*x+(-0.405e2)*y*y+(36.)*y+(0.324e3)*x*x*y+(-0.162e3)*x*x*x*y+(0.18225e3)*x*x*x*y*y+(-0.3645e3)*x*x*y*y;
471 DSDV(12, 2,i)=(-0.495e2)*x+(9.)+(0.2475e3)*x*y+(-0.22275e3)*x*y*y+(-0.405e2)*x*x*x+(0.81e2)*x*x+(0.405e2)*y*y+(-45.)*y+(-0.405e3)*x*x*y+(0.2025e3)*x*x*x*y+(-0.18225e3)*x*x*x*y*y+(0.3645e3)*x*x*y*y;
472 DSDV(13, 2,i)=(0.81e2)*x+(-0.405e3)*x*y+(0.3645e3)*x*y*y+(0.1215e3)*x*x*x+(-0.2025e3)*x*x+(0.10125e4)*x*x*y+(-0.6075e3)*x*x*x*y+(0.54675e3)*x*x*x*y*y+(-0.91125e3)*x*x*y*y;
473 DSDV(14, 2,i)=(-0.405e2)*x+(0.2025e3)*x*y+(-0.18225e3)*x*y*y+(-0.1215e3)*x*x*x+(0.162e3)*x*x+(-0.81e3)*x*x*y+(0.6075e3)*x*x*x*y+(-0.54675e3)*x*x*x*y*y+(0.729e3)*x*x*y*y;
474 DSDV(15, 2,i)=(0.2025e2)*x+(-0.162e3)*x*y+(0.18225e3)*x*y*y+(0.6075e2)*x*x*x+(-0.81e2)*x*x+(0.648e3)*x*x*y+(-0.486e3)*x*x*x*y+(0.54675e3)*x*x*x*y*y+(-0.729e3)*x*x*y*y;
475 DSDV(16, 2,i)=(-0.405e2)*x+(0.324e3)*x*y+(-0.3645e3)*x*y*y+(-0.6075e2)*x*x*x+(0.10125e3)*x*x+(-0.81e3)*x*x*y+(0.486e3)*x*x*x*y+(-0.54675e3)*x*x*x*y*y+(0.91125e3)*x*x*y*y;
476 }
477 #undef NUMSHAPES
478 #undef DIM
479 }
480
481 /**************************************************************/
482
483 void Finley_Shape_Tet4(int NumV,double* v,double* s,double* dsdv) {
484 #define NUMSHAPES 4
485 #define DIM 3
486 register double x,y,z;
487 int i;
488 #pragma ivdep
489 for (i=0;i<NumV;i++) {
490 x=V(1,i);
491 y=V(2,i);
492 z=V(3,i);
493 S(1,i)=1.-x-y-z;
494 S(2,i)=x;
495 S(3,i)=y;
496 S(4,i)=z;
497 DSDV(1,1,i)=-1.;
498 DSDV(1,2,i)=-1.;
499 DSDV(1,3,i)=-1.;
500 DSDV(2,1,i)= 1.;
501 DSDV(2,2,i)= 0.;
502 DSDV(2,3,i)= 0.;
503 DSDV(3,1,i)= 0.;
504 DSDV(3,2,i)= 1.;
505 DSDV(3,3,i)= 0.;
506 DSDV(4,1,i)= 0.;
507 DSDV(4,2,i)= 0.;
508 DSDV(4,3,i)= 1.;
509 }
510 #undef NUMSHAPES
511 #undef DIM
512 }
513
514 /**************************************************************/
515
516 void Finley_Shape_Tet10(int NumV,double* v,double* s,double* dsdv) {
517 #define NUMSHAPES 10
518 #define DIM 3
519 register double x,y,z;
520 int i;
521 #pragma ivdep
522 for (i=0;i<NumV;i++) {
523 x=V(1,i);
524 y=V(2,i);
525 z=V(3,i);
526 S(1,i) = (1.-x-y-z)*(1.-2.*x-2.*y-2.*z);
527 S(2,i) = x*(2.*x-1.);
528 S(3,i) = y*(2.*y-1.);
529 S(4,i) = z*(2.*z-1.);
530 S(5,i) = (1.-x-y-z)*4.*x;
531 S(6,i) = 4.*x*y;
532 S(7,i) = (1.-x-y-z)*4.*y;
533 S(8,i) = (1.-x-y-z)*4.*z;
534 S(9,i) = 4.*x*z;
535 S(10,i)= 4.*y*z;
536
537 DSDV(1,1,i)= -3.+4.*x+4.*y+4.*z;
538 DSDV(1,2,i)= -3.+4.*x+4.*y+4.*z;
539 DSDV(1,3,i)= -3.+4.*x+4.*y+4.*z;
540
541
542 DSDV(2,1,i)= -1.+4.*x;
543 DSDV(2,2,i)= 0.;
544 DSDV(2,3,i)= 0.;
545
546 DSDV(3,1,i)= 0.;
547 DSDV(3,2,i)= -1. +4.*y;
548 DSDV(3,3,i)= 0.;
549
550 DSDV(4,1,i)= 0.;
551 DSDV(4,2,i)= 0.;
552 DSDV(4,3,i)= -1. +4.*z;
553
554 DSDV(5,1,i)= 4. -8.*x -4.*y -4.*z;
555 DSDV(5,2,i)= -4.*x;
556 DSDV(5,3,i)= -4.*x;
557
558 DSDV(6,1,i)= 4.*y;
559 DSDV(6,2,i)= 4.*x;
560 DSDV(6,3,i)= 0.;
561
562 DSDV(7,1,i)= -4.*y;
563 DSDV(7,2,i)= 4. -4.*x -8.*y -4.*z;
564 DSDV(7,3,i)= -4.*y;
565
566 DSDV(8,1,i)= -4.*z;
567 DSDV(8,2,i)= -4.*z;
568 DSDV(8,3,i)= 4. -4.*x -4.*y -8.*z;
569
570 DSDV(9,1,i)= 4.*z;
571 DSDV(9,2,i)= 0.;
572 DSDV(9,3,i)= 4.*x;
573
574 DSDV(10,1,i)= 0.;
575 DSDV(10,2,i)= 4.*z;
576 DSDV(10,3,i)= 4.*y;
577 }
578 #undef NUMSHAPES
579 #undef DIM
580 }
581
582 /**************************************************************/
583
584 void Finley_Shape_Tet16(int NumV,double* v,double* s,double* dsdv) {
585 #define NUMSHAPES 16
586 #define DIM 3
587 register double x,y,z;
588 int i;
589 #pragma ivdep
590 for (i=0;i<NumV;i++) {
591 x=V(1,i);
592 y=V(2,i);
593 z=V(3,i);
594 S(1,i)=(10.)+(-5.5)*x+(-5.5)*y+(-5.5)*z+(9.)*x*x+(-4.5)*x*x*x+(4.5)*x*x*y+(4.5)*x*y*y+(-4.5)*y*y*y+(9.)*y*y+(9.)*z*z+(4.5)*x*x*z+(4.5)*y*y*z+(-4.5)*z*z*z+(4.5)*x*z*z+(4.5)*y*z*z;
595 S(2,i)=(1.e0)*x+(-4.5)*x*x+(4.5)*x*x*x;
596 S(3,i)=(1.e0)*y+(4.5)*y*y*y+(-4.5)*y*y;
597 S(4,i)=(1.e0)*z+(-4.5)*z*z+(4.5)*z*z*z;
598 S(5,i)=(9.)*x+(-22.5)*x*x+(13.5)*x*x*x+(4.5)*x*x*y+(-9.)*x*y*y+(4.5)*x*x*z+(-9.)*x*z*z;
599 S(6,i)=(-4.5)*x+(18.)*x*x+(-13.5)*x*x*x+(-9.)*x*x*y+(4.5)*x*y*y+(-9.)*x*x*z+(4.5)*x*z*z;
600 S(7,i)=(9.)*x*x*y+(-4.5)*x*y*y;
601 S(8,i)=(-4.5)*x*x*y+(9.)*x*y*y;
602 S(9,i)=(-4.5)*y+(4.5)*x*x*y+(-9.)*x*y*y+(-13.5)*y*y*y+(18.)*y*y+(-9.)*y*y*z+(4.5)*y*z*z;
603 S(10,i)=(9.)*y+(-9.)*x*x*y+(4.5)*x*y*y+(13.5)*y*y*y+(-22.5)*y*y+(4.5)*y*y*z+(-9.)*y*z*z;
604 S(11,i)=(9.)*z+(-22.5)*z*z+(-9.)*x*x*z+(-9.)*y*y*z+(13.5)*z*z*z+(4.5)*x*z*z+(4.5)*y*z*z;
605 S(12,i)=(9.)*x*x*z+(-4.5)*x*z*z;
606 S(13,i)=(9.)*y*y*z+(-4.5)*y*z*z;
607 S(14,i)=(-4.5)*z+(18.)*z*z+(4.5)*x*x*z+(4.5)*y*y*z+(-13.5)*z*z*z+(-9.)*x*z*z+(-9.)*y*z*z;
608 S(15,i)=(-4.5)*x*x*z+(9.)*x*z*z;
609 S(16,i)=(-4.5)*y*y*z+(9.)*y*z*z;
610 DSDV(1, 1,i)=(-5.5)+(18.)*x+(-13.5)*x*x+(9.)*x*y+(4.5)*y*y+(9.)*x*z+(4.5)*z*z;
611 DSDV(2, 1,i)=(1.e0)+(-9.)*x+(13.5)*x*x;
612 DSDV(3, 1,i)= 0.;
613 DSDV(4, 1,i)= 0.;
614 DSDV(5, 1,i)=(9.)+(-45.)*x+(0.405e2)*x*x+(9.)*x*y+(-9.)*y*y+(9.)*x*z+(-9.)*z*z;
615 DSDV(6, 1,i)=(-4.5)+(36.)*x+(-0.405e2)*x*x+(-18.)*x*y+(4.5)*y*y+(-18.)*x*z+(4.5)*z*z;
616 DSDV(7, 1,i)=(18.)*x*y+(-4.5)*y*y;
617 DSDV(8, 1,i)=(-9.)*x*y+(9.)*y*y;
618 DSDV(9, 1,i)=(9.)*x*y+(-9.)*y*y;
619 DSDV(10, 1,i)=(-18.)*x*y+(4.5)*y*y;
620 DSDV(11, 1,i)=(-18.)*x*z+(4.5)*z*z;
621 DSDV(12, 1,i)=(18.)*x*z+(-4.5)*z*z;
622 DSDV(13, 1,i)=0.;
623 DSDV(14, 1,i)=(9.)*x*z+(-9.)*z*z;
624 DSDV(15, 1,i)=(-9.)*x*z+(9.)*z*z;
625 DSDV(16, 1,i)=0.;
626 DSDV(1, 2,i)=(-5.5)+(4.5)*x*x+(9.)*x*y+(-13.5)*y*y+(18.)*y+(9.)*y*z+(4.5)*z*z;
627 DSDV(2, 2,i)=0.;
628 DSDV(3, 2,i)=(1.e0)+(13.5)*y*y+(-9.)*y;
629 DSDV(4, 2,i)=0.;
630 DSDV(5, 2,i)=(4.5)*x*x+(-18.)*x*y;
631 DSDV(6, 2,i)=(-9.)*x*x+(9.)*x*y;
632 DSDV(7, 2,i)=(9.)*x*x+(-9.)*x*y;
633 DSDV(8, 2,i)=(-4.5)*x*x+(18.)*x*y;
634 DSDV(9, 2,i)=(-4.5)+(4.5)*x*x+(-18.)*x*y+(-0.405e2)*y*y+(36.)*y+(-18.)*y*z+(4.5)*z*z;
635 DSDV(10, 2,i)=(9.)+(-9.)*x*x+(9.)*x*y+(0.405e2)*y*y+(-45.)*y+(9.)*y*z+(-9.)*z*z;
636 DSDV(11, 2,i)=(-18.)*y*z+(4.5)*z*z;
637 DSDV(12, 2,i)=0.;
638 DSDV(13, 2,i)=(18.)*y*z+(-4.5)*z*z;
639 DSDV(14, 2,i)=(9.)*y*z+(-9.)*z*z;
640 DSDV(15, 2,i)=0.;
641 DSDV(16, 2,i)=(-9.)*y*z+(9.)*z*z;
642 DSDV(1, 3,i)=(-5.5)+(18.)*z+(4.5)*x*x+(4.5)*y*y+(-13.5)*z*z+(.9e1)*x*z+(9.)*y*z;
643 DSDV(2, 3,i)= 0.;
644 DSDV(3, 3,i)= 0.;
645 DSDV(4, 3,i)=(1.e0)+(-9.)*z+(13.5)*z*z;
646 DSDV(5, 3,i)=(4.5)*x*x+(-18.)*x*z;
647 DSDV(6, 3,i)=(-9.)*x*x+(9.)*x*z;
648 DSDV(7, 3,i)= 0.;
649 DSDV(8, 3,i)= 0.;
650 DSDV(9, 3,i)=(-9.)*y*y+(9.)*y*z;
651 DSDV(10, 3,i)=(4.5)*y*y+(-18.)*y*z;
652 DSDV(11, 3,i)=(9.)+(-45.)*z+(-9.)*x*x+(-9.)*y*y+(0.405e2)*z*z+(.9e1)*x*z+(9.)*y*z;
653 DSDV(12, 3,i)=(9.)*x*x+(-9.)*x*z;
654 DSDV(13, 3,i)=(9.)*y*y+(-9.)*y*z;
655 DSDV(14, 3,i)=(-4.5)+(36.)*z+(4.5)*x*x+(4.5)*y*y+(-0.405e2)*z*z+(-18.)*x*z+(-18.)*y*z;
656 DSDV(15, 3,i)=(-4.5)*x*x+(18.)*x*z;
657 DSDV(16, 3,i)=(-4.5)*y*y+(18.)*y*z;
658 }
659 #undef NUMSHAPES
660 #undef DIM
661 }
662
663 /**************************************************************/
664
665 void Finley_Shape_Hex8(int NumV,double* v,double* s,double* dsdv) {
666 #define NUMSHAPES 8
667 #define DIM 3
668 register double x,y,z;
669 int i;
670 #pragma ivdep
671 for (i=0;i<NumV;i++) {
672 x=V(1,i);
673 y=V(2,i);
674 z=V(3,i);
675 S(1,i)=(1.-x)*(1.-y)*(1.-z);
676 S(2,i)= x*(1.-z)*(1.-y);
677 S(3,i)= x*(1.-z)*y;
678 S(4,i)= (1.-z)*(1.-x)*y;
679 S(5,i)= (1.-x)*z*(1.-y);
680 S(6,i)= x*z*(1.-y);
681 S(7,i)= x*y*z;
682 S(8,i)= y*z*(1.-x);
683 DSDV(1,1,i)= (1.-z)*(y-1.);
684 DSDV(1,2,i)= (1.-x)*(z-1.);
685 DSDV(1,3,i)= (1.-x)*(y-1.);
686 DSDV(2,1,i)= (1.-z)*(1.-y);
687 DSDV(2,2,i)= (z-1.)*x;
688 DSDV(2,3,i)= (y-1.)*x;
689 DSDV(3,1,i)= (1.-z)*y;
690 DSDV(3,2,i)= (1.-z)*x;
691 DSDV(3,3,i)=-y*x;
692 DSDV(4,1,i)= y*(z-1.);
693 DSDV(4,2,i)= (1.-z)*(1.-x);
694 DSDV(4,3,i)= y*(x-1.);
695 DSDV(5,1,i)= z*(y-1.);
696 DSDV(5,2,i)= z*(x-1.);
697 DSDV(5,3,i)= (x-1.)*(y-1.);
698 DSDV(6,1,i)= z*(1.-y);
699 DSDV(6,2,i)= -x*z;
700 DSDV(6,3,i)= (1.-y)*x;
701 DSDV(7,1,i)= y*z;
702 DSDV(7,2,i)= x*z;
703 DSDV(7,3,i)= x*y;
704 DSDV(8,1,i)=-y*z;
705 DSDV(8,2,i)= z*(1.-x);
706 DSDV(8,3,i)= y*(1.-x);
707 }
708 #undef NUMSHAPES
709 #undef DIM
710 }
711
712 /**************************************************************/
713
714 void Finley_Shape_Hex20(int NumV,double* v,double* s,double* dsdv) {
715 #define NUMSHAPES 20
716 #define DIM 3
717 register double x,y,z;
718 int i;
719 #pragma ivdep
720 for (i=0;i<NumV;i++) {
721 x=V(1,i);
722 y=V(2,i);
723 z=V(3,i);
724 S(1,i)=1.+(-3.)*x+(-3.)*y+(-3.)*z+(5.)*x*y+(5.)*x*z+(5.)*y*z+(2.)*x*x+(2.)*y*y+(2.)*z*z+(-2.)*x*x*y+(-2.)*x*x*z+(-2.)*x*y*y+(-2.)*y*y*z+(-2.)*x*z*z+(-2.)*y*z*z+(-7.)*x*y*z+(2.)*x*x*y*z+(2.)*x*y*y*z+(2.)*x*y*z*z;
725 S(2,i)=(-1.)*x+(-1.)*x*y+(-1.)*x*z+(2.)*x*x+(-2.)*x*x*y+(-2.)*x*x*z+(2.)*x*y*y+(2.)*x*z*z+(3.)*x*y*z+(2.)*x*x*y*z+(-2.)*x*y*y*z+(-2.)*x*y*z*z;
726 S(3,i)=(-3.)*x*y+(2.)*x*x*y+(2.)*x*y*y+1.*x*y*z+(-2.)*x*x*y*z+(-2.)*x*y*y*z+(2.)*x*y*z*z;
727 S(4,i)=(-1.)*y+(-1.)*x*y+(-1.)*y*z+(2.)*y*y+(2.)*x*x*y+(-2.)*x*y*y+(-2.)*y*y*z+(2.)*y*z*z+(3.)*x*y*z+(-2.)*x*x*y*z+(2.)*x*y*y*z+(-2.)*x*y*z*z;
728 S(5,i)=(-1.)*z+(-1.)*x*z+(-1.)*y*z+(2.)*z*z+(2.)*x*x*z+(2.)*y*y*z+(-2.)*x*z*z+(-2.)*y*z*z+(3.)*x*y*z+(-2.)*x*x*y*z+(-2.)*x*y*y*z+(2.)*x*y*z*z;
729 S(6,i)=(-3.)*x*z+(2.)*x*x*z+(2.)*x*z*z+1.*x*y*z+(-2.)*x*x*y*z+(2.)*x*y*y*z+(-2.)*x*y*z*z;
730 S(7,i)=(-5.)*x*y*z+(2.)*x*x*y*z+(2.)*x*y*y*z+(2.)*x*y*z*z;
731 S(8,i)=(-3.)*y*z+(2.)*y*y*z+(2.)*y*z*z+1.*x*y*z+(2.)*x*x*y*z+(-2.)*x*y*y*z+(-2.)*x*y*z*z;
732 S(9,i)=(4.)*x+(-4.)*x*y+(-4.)*x*z+(-4.)*x*x+(4.)*x*x*y+(4.)*x*x*z+(4.)*x*y*z+(-4.)*x*x*y*z;
733 S(10,i)=(4.)*x*y+(-4.)*x*y*y+(-4.)*x*y*z+(4.)*x*y*y*z;
734 S(11,i)=(4.)*x*y+(-4.)*x*x*y+(-4.)*x*y*z+(4.)*x*x*y*z;
735 S(12,i)=(4.)*y+(-4.)*x*y+(-4.)*y*z+(-4.)*y*y+(4.)*x*y*y+(4.)*y*y*z+(4.)*x*y*z+(-4.)*x*y*y*z;
736 S(13,i)=(4.)*z+(-4.)*x*z+(-4.)*y*z+(-4.)*z*z+(4.)*x*z*z+(4.)*y*z*z+(4.)*x*y*z+(-4.)*x*y*z*z;
737 S(14,i)=(4.)*x*z+(-4.)*x*z*z+(-4.)*x*y*z+(4.)*x*y*z*z;
738 S(15,i)=(4.)*x*y*z+(-4.)*x*y*z*z;
739 S(16,i)=(4.)*y*z+(-4.)*y*z*z+(-4.)*x*y*z+(4.)*x*y*z*z;
740 S(17,i)=(4.)*x*z+(-4.)*x*x*z+(-4.)*x*y*z+(4.)*x*x*y*z;
741 S(18,i)=(4.)*x*y*z+(-4.)*x*y*y*z;
742 S(19,i)=(4.)*x*y*z+(-4.)*x*x*y*z;
743 S(20,i)=(4.)*y*z+(-4.)*y*y*z+(-4.)*x*y*z+(4.)*x*y*y*z;
744 DSDV(1,1,i)=(-3.)+(5.)*y+(5.)*z+(4.)*x+(-4.)*x*y+(-4.)*x*z+(-2.)*y*y+(-2.)*z*z+(-7.)*y*z+(4.)*x*y*z+(2.)*y*y*z+(2.)*y*z*z;
745 DSDV(2,1,i)=(-1.)+(-1.)*y+(-1.)*z+(4.)*x+(-4.)*x*y+(-4.)*x*z+(2.)*y*y+(2.)*z*z+(3.)*y*z+(4.)*x*y*z+(-2.)*y*y*z+(-2.)*y*z*z;
746 DSDV(3,1,i)=(-3.)*y+(4.)*x*y+(2.)*y*y+1.*y*z+(-4.)*x*y*z+(-2.)*y*y*z+(2.)*y*z*z;
747 DSDV(4,1,i)=(-1.)*y+(4.)*x*y+(-2.)*y*y+(3.)*y*z+(-4.)*x*y*z+(2.)*y*y*z+(-2.)*y*z*z;
748 DSDV(5,1,i)=(-1.)*z+(4.)*x*z+(-2.)*z*z+(3.)*y*z+(-4.)*x*y*z+(-2.)*y*y*z+(2.)*y*z*z;
749 DSDV(6,1,i)=(-3.)*z+(4.)*x*z+(2.)*z*z+1.*y*z+(-4.)*x*y*z+(2.)*y*y*z+(-2.)*y*z*z;
750 DSDV(7,1,i)=(-5.)*y*z+(4.)*x*y*z+(2.)*y*y*z+(2.)*y*z*z;
751 DSDV(8,1,i)=1.*y*z+(4.)*x*y*z+(-2.)*y*y*z+(-2.)*y*z*z;
752 DSDV(9,1,i)=(4.)+(-4.)*y+(-4.)*z+(-8.)*x+(8.)*x*y+(8.)*x*z+(4.)*y*z+(-8.)*x*y*z;
753 DSDV(10,1,i)=(4.)*y+(-4.)*y*y+(-4.)*y*z+(4.)*y*y*z;
754 DSDV(11,1,i)=(4.)*y+(-8.)*x*y+(-4.)*y*z+(8.)*x*y*z;
755 DSDV(12,1,i)=(-4.)*y+(4.)*y*y+(4.)*y*z+(-4.)*y*y*z;
756 DSDV(13,1,i)=(-4.)*z+(4.)*z*z+(4.)*y*z+(-4.)*y*z*z;
757 DSDV(14,1,i)=(4.)*z+(-4.)*z*z+(-4.)*y*z+(4.)*y*z*z;
758 DSDV(15,1,i)=(4.)*y*z+(-4.)*y*z*z;
759 DSDV(16,1,i)=(-4.)*y*z+(4.)*y*z*z;
760 DSDV(17,1,i)=(4.)*z+(-8.)*x*z+(-4.)*y*z+(8.)*x*y*z;
761 DSDV(18,1,i)=(4.)*y*z+(-4.)*y*y*z;
762 DSDV(19,1,i)=(4.)*y*z+(-8.)*x*y*z;
763 DSDV(20,1,i)=(-4.)*y*z+(4.)*y*y*z;
764 DSDV(1,2,i)=(-3.)+(5.)*x+(5.)*z+(4.)*y+(-2.)*x*x+(-4.)*x*y+(-4.)*y*z+(-2.)*z*z+(-7.)*x*z+(2.)*x*x*z+(4.)*x*y*z+(2.)*x*z*z;
765 DSDV(2,2,i)=(-1.)*x+(-2.)*x*x+(4.)*x*y+(3.)*x*z+(2.)*x*x*z+(-4.)*x*y*z+(-2.)*x*z*z;
766 DSDV(3,2,i)=(-3.)*x+(2.)*x*x+(4.)*x*y+1.*x*z+(-2.)*x*x*z+(-4.)*x*y*z+(2.)*x*z*z;
767 DSDV(4,2,i)=(-1.)+(-1.)*x+(-1.)*z+(4.)*y+(2.)*x*x+(-4.)*x*y+(-4.)*y*z+(2.)*z*z+(3.)*x*z+(-2.)*x*x*z+(4.)*x*y*z+(-2.)*x*z*z;
768 DSDV(5,2,i)=(-1.)*z+(4.)*y*z+(-2.)*z*z+(3.)*x*z+(-2.)*x*x*z+(-4.)*x*y*z+(2.)*x*z*z;
769 DSDV(6,2,i)=1.*x*z+(-2.)*x*x*z+(4.)*x*y*z+(-2.)*x*z*z;
770 DSDV(7,2,i)=(-5.)*x*z+(2.)*x*x*z+(4.)*x*y*z+(2.)*x*z*z;
771 DSDV(8,2,i)=(-3.)*z+(4.)*y*z+(2.)*z*z+1.*x*z+(2.)*x*x*z+(-4.)*x*y*z+(-2.)*x*z*z;
772 DSDV(9,2,i)=(-4.)*x+(4.)*x*x+(4.)*x*z+(-4.)*x*x*z;
773 DSDV(10,2,i)=(4.)*x+(-8.)*x*y+(-4.)*x*z+(8.)*x*y*z;
774 DSDV(11,2,i)=(4.)*x+(-4.)*x*x+(-4.)*x*z+(4.)*x*x*z;
775 DSDV(12,2,i)=(4.)+(-4.)*x+(-4.)*z+(-8.)*y+(8.)*x*y+(8.)*y*z+(4.)*x*z+(-8.)*x*y*z;
776 DSDV(13,2,i)=(-4.)*z+(4.)*z*z+(4.)*x*z+(-4.)*x*z*z;
777 DSDV(14,2,i)=(-4.)*x*z+(4.)*x*z*z;
778 DSDV(15,2,i)=(4.)*x*z+(-4.)*x*z*z;
779 DSDV(16,2,i)=(4.)*z+(-4.)*z*z+(-4.)*x*z+(4.)*x*z*z;
780 DSDV(17,2,i)=(-4.)*x*z+(4.)*x*x*z;
781 DSDV(18,2,i)=(4.)*x*z+(-8.)*x*y*z;
782 DSDV(19,2,i)=(4.)*x*z+(-4.)*x*x*z;
783 DSDV(20,2,i)=(4.)*z+(-8.)*y*z+(-4.)*x*z+(8.)*x*y*z;
784 DSDV(1,3,i)=(-3.)+(5.)*x+(5.)*y+(4.)*z+(-2.)*x*x+(-2.)*y*y+(-4.)*x*z+(-4.)*y*z+(-7.)*x*y+(2.)*x*x*y+(2.)*x*y*y+(4.)*x*y*z;
785 DSDV(2,3,i)=(-1.)*x+(-2.)*x*x+(4.)*x*z+(3.)*x*y+(2.)*x*x*y+(-2.)*x*y*y+(-4.)*x*y*z;
786 DSDV(3,3,i)=1.*x*y+(-2.)*x*x*y+(-2.)*x*y*y+(4.)*x*y*z;
787 DSDV(4,3,i)=(-1.)*y+(-2.)*y*y+(4.)*y*z+(3.)*x*y+(-2.)*x*x*y+(2.)*x*y*y+(-4.)*x*y*z;
788 DSDV(5,3,i)=(-1.)+(-1.)*x+(-1.)*y+(4.)*z+(2.)*x*x+(2.)*y*y+(-4.)*x*z+(-4.)*y*z+(3.)*x*y+(-2.)*x*x*y+(-2.)*x*y*y+(4.)*x*y*z;
789 DSDV(6,3,i)=(-3.)*x+(2.)*x*x+(4.)*x*z+1.*x*y+(-2.)*x*x*y+(2.)*x*y*y+(-4.)*x*y*z;
790 DSDV(7,3,i)=(-5.)*x*y+(2.)*x*x*y+(2.)*x*y*y+(4.)*x*y*z;
791 DSDV(8,3,i)=(-3.)*y+(2.)*y*y+(4.)*y*z+1.*x*y+(2.)*x*x*y+(-2.)*x*y*y+(-4.)*x*y*z;
792 DSDV(9,3,i)=(-4.)*x+(4.)*x*x+(4.)*x*y+(-4.)*x*x*y;
793 DSDV(10,3,i)=(-4.)*x*y+(4.)*x*y*y;
794 DSDV(11,3,i)=(-4.)*x*y+(4.)*x*x*y;
795 DSDV(12,3,i)=(-4.)*y+(4.)*y*y+(4.)*x*y+(-4.)*x*y*y;
796 DSDV(13,3,i)=(4.)+(-4.)*x+(-4.)*y+(-8.)*z+(8.)*x*z+(8.)*y*z+(4.)*x*y+(-8.)*x*y*z;
797 DSDV(14,3,i)=(4.)*x+(-8.)*x*z+(-4.)*x*y+(8.)*x*y*z;
798 DSDV(15,3,i)=(4.)*x*y+(-8.)*x*y*z;
799 DSDV(16,3,i)=(4.)*y+(-8.)*y*z+(-4.)*x*y+(8.)*x*y*z;
800 DSDV(17,3,i)=(4.)*x+(-4.)*x*x+(-4.)*x*y+(4.)*x*x*y;
801 DSDV(18,3,i)=(4.)*x*y+(-4.)*x*y*y;
802 DSDV(19,3,i)=(4.)*x*y+(-4.)*x*x*y;
803 DSDV(20,3,i)=(4.)*y+(-4.)*y*y+(-4.)*x*y+(4.)*x*y*y;
804 }
805 #undef NUMSHAPES
806 #undef DIM
807 }
808
809 /**************************************************************/
810
811 void Finley_Shape_Hex27(int NumV,double* v,double* s,double* dsdv) {
812 #define NUMSHAPES 27
813 #define DIM 3
814 register double x,y,z;
815 int i;
816 #pragma ivdep
817 for (i=0;i<NumV;i++) {
818 x=V(1,i);
819 y=V(2,i);
820 z=V(3,i);
821 S(1,i)= + 1.0 - 3.0*x + 2.0*x*x - 3.0*y + 9.0*x*y - 6.0*x*x*y + 2.0*y*y - 6.0*x*y*y + 4.0*x*x*y*y - 3.0*z + 9.0*x*z - 6.0*x*x*z + 9.0*y*z - 27.0*x*y*z + 18.0*x*x*y*z - 6.0*y*y*z + 18.0*x*y*y*z - 12.0*x*x*y*y*z + 2.0*z*z - 6.0*x*z*z + 4.0*x*x*z*z - 6.0*y*z*z + 18.0*x*y*z*z - 12.0*x*x*y*z*z + 4.0*y*y*z*z - 12.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
822 S(2,i)= - 1.0*x + 2.0*x*x + 3.0*x*y - 6.0*x*x*y - 2.0*x*y*y + 4.0*x*x*y*y + 3.0*x*z - 6.0*x*x*z - 9.0*x*y*z + 18.0*x*x*y*z + 6.0*x*y*y*z - 12.0*x*x*y*y*z - 2.0*x*z*z + 4.0*x*x*z*z + 6.0*x*y*z*z - 12.0*x*x*y*z*z - 4.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
823 S(3,i)= + 1.0*x*y - 2.0*x*x*y - 2.0*x*y*y + 4.0*x*x*y*y - 3.0*x*y*z + 6.0*x*x*y*z + 6.0*x*y*y*z - 12.0*x*x*y*y*z + 2.0*x*y*z*z - 4.0*x*x*y*z*z - 4.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
824 S(4,i)= - 1.0*y + 3.0*x*y - 2.0*x*x*y + 2.0*y*y - 6.0*x*y*y + 4.0*x*x*y*y + 3.0*y*z - 9.0*x*y*z + 6.0*x*x*y*z - 6.0*y*y*z + 18.0*x*y*y*z - 12.0*x*x*y*y*z - 2.0*y*z*z + 6.0*x*y*z*z - 4.0*x*x*y*z*z + 4.0*y*y*z*z - 12.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
825 S(5,i)= - 1.0*z + 3.0*x*z - 2.0*x*x*z + 3.0*y*z - 9.0*x*y*z + 6.0*x*x*y*z - 2.0*y*y*z + 6.0*x*y*y*z - 4.0*x*x*y*y*z + 2.0*z*z - 6.0*x*z*z + 4.0*x*x*z*z - 6.0*y*z*z + 18.0*x*y*z*z - 12.0*x*x*y*z*z + 4.0*y*y*z*z - 12.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
826 S(6,i)= + 1.0*x*z - 2.0*x*x*z - 3.0*x*y*z + 6.0*x*x*y*z + 2.0*x*y*y*z - 4.0*x*x*y*y*z - 2.0*x*z*z + 4.0*x*x*z*z + 6.0*x*y*z*z - 12.0*x*x*y*z*z - 4.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
827 S(7,i)= - 1.0*x*y*z + 2.0*x*x*y*z + 2.0*x*y*y*z - 4.0*x*x*y*y*z + 2.0*x*y*z*z - 4.0*x*x*y*z*z - 4.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
828 S(8,i)= + 1.0*y*z - 3.0*x*y*z + 2.0*x*x*y*z - 2.0*y*y*z + 6.0*x*y*y*z - 4.0*x*x*y*y*z - 2.0*y*z*z + 6.0*x*y*z*z - 4.0*x*x*y*z*z + 4.0*y*y*z*z - 12.0*x*y*y*z*z + 8.0*x*x*y*y*z*z;
829 S(9,i)= + 4.0*x - 4.0*x*x - 12.0*x*y + 12.0*x*x*y + 8.0*x*y*y - 8.0*x*x*y*y - 12.0*x*z + 12.0*x*x*z + 36.0*x*y*z - 36.0*x*x*y*z - 24.0*x*y*y*z + 24.0*x*x*y*y*z + 8.0*x*z*z - 8.0*x*x*z*z - 24.0*x*y*z*z + 24.0*x*x*y*z*z + 16.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
830 S(10,i)= - 4.0*x*y + 8.0*x*x*y + 4.0*x*y*y - 8.0*x*x*y*y + 12.0*x*y*z - 24.0*x*x*y*z - 12.0*x*y*y*z + 24.0*x*x*y*y*z - 8.0*x*y*z*z + 16.0*x*x*y*z*z + 8.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
831 S(11,i)= - 4.0*x*y + 4.0*x*x*y + 8.0*x*y*y - 8.0*x*x*y*y + 12.0*x*y*z - 12.0*x*x*y*z - 24.0*x*y*y*z + 24.0*x*x*y*y*z - 8.0*x*y*z*z + 8.0*x*x*y*z*z + 16.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
832 S(12,i)= + 4.0*y - 12.0*x*y + 8.0*x*x*y - 4.0*y*y + 12.0*x*y*y - 8.0*x*x*y*y - 12.0*y*z + 36.0*x*y*z - 24.0*x*x*y*z + 12.0*y*y*z - 36.0*x*y*y*z + 24.0*x*x*y*y*z + 8.0*y*z*z - 24.0*x*y*z*z + 16.0*x*x*y*z*z - 8.0*y*y*z*z + 24.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
833 S(13,i)= + 4.0*z - 12.0*x*z + 8.0*x*x*z - 12.0*y*z + 36.0*x*y*z - 24.0*x*x*y*z + 8.0*y*y*z - 24.0*x*y*y*z + 16.0*x*x*y*y*z - 4.0*z*z + 12.0*x*z*z - 8.0*x*x*z*z + 12.0*y*z*z - 36.0*x*y*z*z + 24.0*x*x*y*z*z - 8.0*y*y*z*z + 24.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
834 S(14,i)= - 4.0*x*z + 8.0*x*x*z + 12.0*x*y*z - 24.0*x*x*y*z - 8.0*x*y*y*z + 16.0*x*x*y*y*z + 4.0*x*z*z - 8.0*x*x*z*z - 12.0*x*y*z*z + 24.0*x*x*y*z*z + 8.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
835 S(15,i)= + 4.0*x*y*z - 8.0*x*x*y*z - 8.0*x*y*y*z + 16.0*x*x*y*y*z - 4.0*x*y*z*z + 8.0*x*x*y*z*z + 8.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
836 S(16,i)= - 4.0*y*z + 12.0*x*y*z - 8.0*x*x*y*z + 8.0*y*y*z - 24.0*x*y*y*z + 16.0*x*x*y*y*z + 4.0*y*z*z - 12.0*x*y*z*z + 8.0*x*x*y*z*z - 8.0*y*y*z*z + 24.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
837 S(17,i)= - 4.0*x*z + 4.0*x*x*z + 12.0*x*y*z - 12.0*x*x*y*z - 8.0*x*y*y*z + 8.0*x*x*y*y*z + 8.0*x*z*z - 8.0*x*x*z*z - 24.0*x*y*z*z + 24.0*x*x*y*z*z + 16.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
838 S(18,i)= + 4.0*x*y*z - 8.0*x*x*y*z - 4.0*x*y*y*z + 8.0*x*x*y*y*z - 8.0*x*y*z*z + 16.0*x*x*y*z*z + 8.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
839 S(19,i)= + 4.0*x*y*z - 4.0*x*x*y*z - 8.0*x*y*y*z + 8.0*x*x*y*y*z - 8.0*x*y*z*z + 8.0*x*x*y*z*z + 16.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
840 S(20,i)= - 4.0*y*z + 12.0*x*y*z - 8.0*x*x*y*z + 4.0*y*y*z - 12.0*x*y*y*z + 8.0*x*x*y*y*z + 8.0*y*z*z - 24.0*x*y*z*z + 16.0*x*x*y*z*z - 8.0*y*y*z*z + 24.0*x*y*y*z*z - 16.0*x*x*y*y*z*z;
841 S(21,i)= + 16.0*x*y - 16.0*x*x*y - 16.0*x*y*y + 16.0*x*x*y*y - 48.0*x*y*z + 48.0*x*x*y*z + 48.0*x*y*y*z - 48.0*x*x*y*y*z + 32.0*x*y*z*z - 32.0*x*x*y*z*z - 32.0*x*y*y*z*z + 32.0*x*x*y*y*z*z;
842 S(22,i)= + 16.0*x*z - 16.0*x*x*z - 48.0*x*y*z + 48.0*x*x*y*z + 32.0*x*y*y*z - 32.0*x*x*y*y*z - 16.0*x*z*z + 16.0*x*x*z*z + 48.0*x*y*z*z - 48.0*x*x*y*z*z - 32.0*x*y*y*z*z + 32.0*x*x*y*y*z*z;
843 S(23,i)= - 16.0*x*y*z + 32.0*x*x*y*z + 16.0*x*y*y*z - 32.0*x*x*y*y*z + 16.0*x*y*z*z - 32.0*x*x*y*z*z - 16.0*x*y*y*z*z + 32.0*x*x*y*y*z*z;
844 S(24,i)= - 16.0*x*y*z + 16.0*x*x*y*z + 32.0*x*y*y*z - 32.0*x*x*y*y*z + 16.0*x*y*z*z - 16.0*x*x*y*z*z - 32.0*x*y*y*z*z + 32.0*x*x*y*y*z*z;
845 S(25,i)= + 16.0*y*z - 48.0*x*y*z + 32.0*x*x*y*z - 16.0*y*y*z + 48.0*x*y*y*z - 32.0*x*x*y*y*z - 16.0*y*z*z + 48.0*x*y*z*z - 32.0*x*x*y*z*z + 16.0*y*y*z*z - 48.0*x*y*y*z*z + 32.0*x*x*y*y*z*z;
846 S(26,i)= - 16.0*x*y*z + 16.0*x*x*y*z + 16.0*x*y*y*z - 16.0*x*x*y*y*z + 32.0*x*y*z*z - 32.0*x*x*y*z*z - 32.0*x*y*y*z*z + 32.0*x*x*y*y*z*z;
847 S(27,i)= + 64.0*x*y*z - 64.0*x*x*y*z - 64.0*x*y*y*z + 64.0*x*x*y*y*z - 64.0*x*y*z*z + 64.0*x*x*y*z*z + 64.0*x*y*y*z*z - 64.0*x*x*y*y*z*z;
848 DSDV(1,1,i)= - 3.0 + 4.0*x + 9.0*y - 12.0*x*y - 6.0*y*y + 8.0*x*y*y + 9.0*z - 12.0*x*z - 27.0*y*z + 36.0*x*y*z + 18.0*y*y*z - 24.0*x*y*y*z - 6.0*z*z + 8.0*x*z*z + 18.0*y*z*z - 24.0*x*y*z*z - 12.0*y*y*z*z + 16.0*x*y*y*z*z;
849 DSDV(1,2,i)= - 3.0 + 9.0*x - 6.0*x*x + 4.0*y - 12.0*x*y + 8.0*x*x*y + 9.0*z - 27.0*x*z + 18.0*x*x*z - 12.0*y*z + 36.0*x*y*z - 24.0*x*x*y*z - 6.0*z*z + 18.0*x*z*z - 12.0*x*x*z*z + 8.0*y*z*z - 24.0*x*y*z*z + 16.0*x*x*y*z*z;
850 DSDV(1,3,i)= - 3.0 + 9.0*x - 6.0*x*x + 9.0*y - 27.0*x*y + 18.0*x*x*y - 6.0*y*y + 18.0*x*y*y - 12.0*x*x*y*y + 4.0*z - 12.0*x*z + 8.0*x*x*z - 12.0*y*z + 36.0*x*y*z - 24.0*x*x*y*z + 8.0*y*y*z - 24.0*x*y*y*z + 16.0*x*x*y*y*z;
851 DSDV(2,1,i)= - 1.0 + 4.0*x + 3.0*y - 12.0*x*y - 2.0*y*y + 8.0*x*y*y + 3.0*z - 12.0*x*z - 9.0*y*z + 36.0*x*y*z + 6.0*y*y*z - 24.0*x*y*y*z - 2.0*z*z + 8.0*x*z*z + 6.0*y*z*z - 24.0*x*y*z*z - 4.0*y*y*z*z + 16.0*x*y*y*z*z;
852 DSDV(2,2,i)= + 3.0*x - 6.0*x*x - 4.0*x*y + 8.0*x*x*y - 9.0*x*z + 18.0*x*x*z + 12.0*x*y*z - 24.0*x*x*y*z + 6.0*x*z*z - 12.0*x*x*z*z - 8.0*x*y*z*z + 16.0*x*x*y*z*z;
853 DSDV(2,3,i)= + 3.0*x - 6.0*x*x - 9.0*x*y + 18.0*x*x*y + 6.0*x*y*y - 12.0*x*x*y*y - 4.0*x*z + 8.0*x*x*z + 12.0*x*y*z - 24.0*x*x*y*z - 8.0*x*y*y*z + 16.0*x*x*y*y*z;
854 DSDV(3,1,i)= + 1.0*y - 4.0*x*y - 2.0*y*y + 8.0*x*y*y - 3.0*y*z + 12.0*x*y*z + 6.0*y*y*z - 24.0*x*y*y*z + 2.0*y*z*z - 8.0*x*y*z*z - 4.0*y*y*z*z + 16.0*x*y*y*z*z;
855 DSDV(3,2,i)= + 1.0*x - 2.0*x*x - 4.0*x*y + 8.0*x*x*y - 3.0*x*z + 6.0*x*x*z + 12.0*x*y*z - 24.0*x*x*y*z + 2.0*x*z*z - 4.0*x*x*z*z - 8.0*x*y*z*z + 16.0*x*x*y*z*z;
856 DSDV(3,3,i)= - 3.0*x*y + 6.0*x*x*y + 6.0*x*y*y - 12.0*x*x*y*y + 4.0*x*y*z - 8.0*x*x*y*z - 8.0*x*y*y*z + 16.0*x*x*y*y*z;
857 DSDV(4,1,i)= + 3.0*y - 4.0*x*y - 6.0*y*y + 8.0*x*y*y - 9.0*y*z + 12.0*x*y*z + 18.0*y*y*z - 24.0*x*y*y*z + 6.0*y*z*z - 8.0*x*y*z*z - 12.0*y*y*z*z + 16.0*x*y*y*z*z;
858 DSDV(4,2,i)= - 1.0 + 3.0*x - 2.0*x*x + 4.0*y - 12.0*x*y + 8.0*x*x*y + 3.0*z - 9.0*x*z + 6.0*x*x*z - 12.0*y*z + 36.0*x*y*z - 24.0*x*x*y*z - 2.0*z*z + 6.0*x*z*z - 4.0*x*x*z*z + 8.0*y*z*z - 24.0*x*y*z*z + 16.0*x*x*y*z*z;
859 DSDV(4,3,i)= + 3.0*y - 9.0*x*y + 6.0*x*x*y - 6.0*y*y + 18.0*x*y*y - 12.0*x*x*y*y - 4.0*y*z + 12.0*x*y*z - 8.0*x*x*y*z + 8.0*y*y*z - 24.0*x*y*y*z + 16.0*x*x*y*y*z;
860 DSDV(5,1,i)= + 3.0*z - 4.0*x*z - 9.0*y*z + 12.0*x*y*z + 6.0*y*y*z - 8.0*x*y*y*z - 6.0*z*z + 8.0*x*z*z + 18.0*y*z*z - 24.0*x*y*z*z - 12.0*y*y*z*z + 16.0*x*y*y*z*z;
861 DSDV(5,2,i)= + 3.0*z - 9.0*x*z + 6.0*x*x*z - 4.0*y*z + 12.0*x*y*z - 8.0*x*x*y*z - 6.0*z*z + 18.0*x*z*z - 12.0*x*x*z*z + 8.0*y*z*z - 24.0*x*y*z*z + 16.0*x*x*y*z*z;
862 DSDV(5,3,i)= - 1.0 + 3.0*x - 2.0*x*x + 3.0*y - 9.0*x*y + 6.0*x*x*y - 2.0*y*y + 6.0*x*y*y - 4.0*x*x*y*y + 4.0*z - 12.0*x*z + 8.0*x*x*z - 12.0*y*z + 36.0*x*y*z - 24.0*x*x*y*z + 8.0*y*y*z - 24.0*x*y*y*z + 16.0*x*x*y*y*z;
863 DSDV(6,1,i)= + 1.0*z - 4.0*x*z - 3.0*y*z + 12.0*x*y*z + 2.0*y*y*z - 8.0*x*y*y*z - 2.0*z*z + 8.0*x*z*z + 6.0*y*z*z - 24.0*x*y*z*z - 4.0*y*y*z*z + 16.0*x*y*y*z*z;
864 DSDV(6,2,i)= - 3.0*x*z + 6.0*x*x*z + 4.0*x*y*z - 8.0*x*x*y*z + 6.0*x*z*z - 12.0*x*x*z*z - 8.0*x*y*z*z + 16.0*x*x*y*z*z;
865 DSDV(6,3,i)= + 1.0*x - 2.0*x*x - 3.0*x*y + 6.0*x*x*y + 2.0*x*y*y - 4.0*x*x*y*y - 4.0*x*z + 8.0*x*x*z + 12.0*x*y*z - 24.0*x*x*y*z - 8.0*x*y*y*z + 16.0*x*x*y*y*z;
866 DSDV(7,1,i)= - 1.0*y*z + 4.0*x*y*z + 2.0*y*y*z - 8.0*x*y*y*z + 2.0*y*z*z - 8.0*x*y*z*z - 4.0*y*y*z*z + 16.0*x*y*y*z*z;
867 DSDV(7,2,i)= - 1.0*x*z + 2.0*x*x*z + 4.0*x*y*z - 8.0*x*x*y*z + 2.0*x*z*z - 4.0*x*x*z*z - 8.0*x*y*z*z + 16.0*x*x*y*z*z;
868 DSDV(7,3,i)= - 1.0*x*y + 2.0*x*x*y + 2.0*x*y*y - 4.0*x*x*y*y + 4.0*x*y*z - 8.0*x*x*y*z - 8.0*x*y*y*z + 16.0*x*x*y*y*z;
869 DSDV(8,1,i)= - 3.0*y*z + 4.0*x*y*z + 6.0*y*y*z - 8.0*x*y*y*z + 6.0*y*z*z - 8.0*x*y*z*z - 12.0*y*y*z*z + 16.0*x*y*y*z*z;
870 DSDV(8,2,i)= + 1.0*z - 3.0*x*z + 2.0*x*x*z - 4.0*y*z + 12.0*x*y*z - 8.0*x*x*y*z - 2.0*z*z + 6.0*x*z*z - 4.0*x*x*z*z + 8.0*y*z*z - 24.0*x*y*z*z + 16.0*x*x*y*z*z;
871 DSDV(8,3,i)= + 1.0*y - 3.0*x*y + 2.0*x*x*y - 2.0*y*y + 6.0*x*y*y - 4.0*x*x*y*y - 4.0*y*z + 12.0*x*y*z - 8.0*x*x*y*z + 8.0*y*y*z - 24.0*x*y*y*z + 16.0*x*x*y*y*z;
872 DSDV(9,1,i)= + 4.0 - 8.0*x - 12.0*y + 24.0*x*y + 8.0*y*y - 16.0*x*y*y - 12.0*z + 24.0*x*z + 36.0*y*z - 72.0*x*y*z - 24.0*y*y*z + 48.0*x*y*y*z + 8.0*z*z - 16.0*x*z*z - 24.0*y*z*z + 48.0*x*y*z*z + 16.0*y*y*z*z - 32.0*x*y*y*z*z;
873 DSDV(9,2,i)= - 12.0*x + 12.0*x*x + 16.0*x*y - 16.0*x*x*y + 36.0*x*z - 36.0*x*x*z - 48.0*x*y*z + 48.0*x*x*y*z - 24.0*x*z*z + 24.0*x*x*z*z + 32.0*x*y*z*z - 32.0*x*x*y*z*z;
874 DSDV(9,3,i)= - 12.0*x + 12.0*x*x + 36.0*x*y - 36.0*x*x*y - 24.0*x*y*y + 24.0*x*x*y*y + 16.0*x*z - 16.0*x*x*z - 48.0*x*y*z + 48.0*x*x*y*z + 32.0*x*y*y*z - 32.0*x*x*y*y*z;
875 DSDV(10,1,i)= - 4.0*y + 16.0*x*y + 4.0*y*y - 16.0*x*y*y + 12.0*y*z - 48.0*x*y*z - 12.0*y*y*z + 48.0*x*y*y*z - 8.0*y*z*z + 32.0*x*y*z*z + 8.0*y*y*z*z - 32.0*x*y*y*z*z;
876 DSDV(10,2,i)= - 4.0*x + 8.0*x*x + 8.0*x*y - 16.0*x*x*y + 12.0*x*z - 24.0*x*x*z - 24.0*x*y*z + 48.0*x*x*y*z - 8.0*x*z*z + 16.0*x*x*z*z + 16.0*x*y*z*z - 32.0*x*x*y*z*z;
877 DSDV(10,3,i)= + 12.0*x*y - 24.0*x*x*y - 12.0*x*y*y + 24.0*x*x*y*y - 16.0*x*y*z + 32.0*x*x*y*z + 16.0*x*y*y*z - 32.0*x*x*y*y*z;
878 DSDV(11,1,i)= - 4.0*y + 8.0*x*y + 8.0*y*y - 16.0*x*y*y + 12.0*y*z - 24.0*x*y*z - 24.0*y*y*z + 48.0*x*y*y*z - 8.0*y*z*z + 16.0*x*y*z*z + 16.0*y*y*z*z - 32.0*x*y*y*z*z;
879 DSDV(11,2,i)= - 4.0*x + 4.0*x*x + 16.0*x*y - 16.0*x*x*y + 12.0*x*z - 12.0*x*x*z - 48.0*x*y*z + 48.0*x*x*y*z - 8.0*x*z*z + 8.0*x*x*z*z + 32.0*x*y*z*z - 32.0*x*x*y*z*z;
880 DSDV(11,3,i)= + 12.0*x*y - 12.0*x*x*y - 24.0*x*y*y + 24.0*x*x*y*y - 16.0*x*y*z + 16.0*x*x*y*z + 32.0*x*y*y*z - 32.0*x*x*y*y*z;
881 DSDV(12,1,i)= - 12.0*y + 16.0*x*y + 12.0*y*y - 16.0*x*y*y + 36.0*y*z - 48.0*x*y*z - 36.0*y*y*z + 48.0*x*y*y*z - 24.0*y*z*z + 32.0*x*y*z*z + 24.0*y*y*z*z - 32.0*x*y*y*z*z;
882 DSDV(12,2,i)= + 4.0 - 12.0*x + 8.0*x*x - 8.0*y + 24.0*x*y - 16.0*x*x*y - 12.0*z + 36.0*x*z - 24.0*x*x*z + 24.0*y*z - 72.0*x*y*z + 48.0*x*x*y*z + 8.0*z*z - 24.0*x*z*z + 16.0*x*x*z*z - 16.0*y*z*z + 48.0*x*y*z*z - 32.0*x*x*y*z*z;
883 DSDV(12,3,i)= - 12.0*y + 36.0*x*y - 24.0*x*x*y + 12.0*y*y - 36.0*x*y*y + 24.0*x*x*y*y + 16.0*y*z - 48.0*x*y*z + 32.0*x*x*y*z - 16.0*y*y*z + 48.0*x*y*y*z - 32.0*x*x*y*y*z;
884 DSDV(13,1,i)= - 12.0*z + 16.0*x*z + 36.0*y*z - 48.0*x*y*z - 24.0*y*y*z + 32.0*x*y*y*z + 12.0*z*z - 16.0*x*z*z - 36.0*y*z*z + 48.0*x*y*z*z + 24.0*y*y*z*z - 32.0*x*y*y*z*z;
885 DSDV(13,2,i)= - 12.0*z + 36.0*x*z - 24.0*x*x*z + 16.0*y*z - 48.0*x*y*z + 32.0*x*x*y*z + 12.0*z*z - 36.0*x*z*z + 24.0*x*x*z*z - 16.0*y*z*z + 48.0*x*y*z*z - 32.0*x*x*y*z*z;
886 DSDV(13,3,i)= + 4.0 - 12.0*x + 8.0*x*x - 12.0*y + 36.0*x*y - 24.0*x*x*y + 8.0*y*y - 24.0*x*y*y + 16.0*x*x*y*y - 8.0*z + 24.0*x*z - 16.0*x*x*z + 24.0*y*z - 72.0*x*y*z + 48.0*x*x*y*z - 16.0*y*y*z + 48.0*x*y*y*z - 32.0*x*x*y*y*z;
887 DSDV(14,1,i)= - 4.0*z + 16.0*x*z + 12.0*y*z - 48.0*x*y*z - 8.0*y*y*z + 32.0*x*y*y*z + 4.0*z*z - 16.0*x*z*z - 12.0*y*z*z + 48.0*x*y*z*z + 8.0*y*y*z*z - 32.0*x*y*y*z*z;
888 DSDV(14,2,i)= + 12.0*x*z - 24.0*x*x*z - 16.0*x*y*z + 32.0*x*x*y*z - 12.0*x*z*z + 24.0*x*x*z*z + 16.0*x*y*z*z - 32.0*x*x*y*z*z;
889 DSDV(14,3,i)= - 4.0*x + 8.0*x*x + 12.0*x*y - 24.0*x*x*y - 8.0*x*y*y + 16.0*x*x*y*y + 8.0*x*z - 16.0*x*x*z - 24.0*x*y*z + 48.0*x*x*y*z + 16.0*x*y*y*z - 32.0*x*x*y*y*z;
890 DSDV(15,1,i)= + 4.0*y*z - 16.0*x*y*z - 8.0*y*y*z + 32.0*x*y*y*z - 4.0*y*z*z + 16.0*x*y*z*z + 8.0*y*y*z*z - 32.0*x*y*y*z*z;
891 DSDV(15,2,i)= + 4.0*x*z - 8.0*x*x*z - 16.0*x*y*z + 32.0*x*x*y*z - 4.0*x*z*z + 8.0*x*x*z*z + 16.0*x*y*z*z - 32.0*x*x*y*z*z;
892 DSDV(15,3,i)= + 4.0*x*y - 8.0*x*x*y - 8.0*x*y*y + 16.0*x*x*y*y - 8.0*x*y*z + 16.0*x*x*y*z + 16.0*x*y*y*z - 32.0*x*x*y*y*z;
893 DSDV(16,1,i)= + 12.0*y*z - 16.0*x*y*z - 24.0*y*y*z + 32.0*x*y*y*z - 12.0*y*z*z + 16.0*x*y*z*z + 24.0*y*y*z*z - 32.0*x*y*y*z*z;
894 DSDV(16,2,i)= - 4.0*z + 12.0*x*z - 8.0*x*x*z + 16.0*y*z - 48.0*x*y*z + 32.0*x*x*y*z + 4.0*z*z - 12.0*x*z*z + 8.0*x*x*z*z - 16.0*y*z*z + 48.0*x*y*z*z - 32.0*x*x*y*z*z;
895 DSDV(16,3,i)= - 4.0*y + 12.0*x*y - 8.0*x*x*y + 8.0*y*y - 24.0*x*y*y + 16.0*x*x*y*y + 8.0*y*z - 24.0*x*y*z + 16.0*x*x*y*z - 16.0*y*y*z + 48.0*x*y*y*z - 32.0*x*x*y*y*z;
896 DSDV(17,1,i)= - 4.0*z + 8.0*x*z + 12.0*y*z - 24.0*x*y*z - 8.0*y*y*z + 16.0*x*y*y*z + 8.0*z*z - 16.0*x*z*z - 24.0*y*z*z + 48.0*x*y*z*z + 16.0*y*y*z*z - 32.0*x*y*y*z*z;
897 DSDV(17,2,i)= + 12.0*x*z - 12.0*x*x*z - 16.0*x*y*z + 16.0*x*x*y*z - 24.0*x*z*z + 24.0*x*x*z*z + 32.0*x*y*z*z - 32.0*x*x*y*z*z;
898 DSDV(17,3,i)= - 4.0*x + 4.0*x*x + 12.0*x*y - 12.0*x*x*y - 8.0*x*y*y + 8.0*x*x*y*y + 16.0*x*z - 16.0*x*x*z - 48.0*x*y*z + 48.0*x*x*y*z + 32.0*x*y*y*z - 32.0*x*x*y*y*z;
899 DSDV(18,1,i)= + 4.0*y*z - 16.0*x*y*z - 4.0*y*y*z + 16.0*x*y*y*z - 8.0*y*z*z + 32.0*x*y*z*z + 8.0*y*y*z*z - 32.0*x*y*y*z*z;
900 DSDV(18,2,i)= + 4.0*x*z - 8.0*x*x*z - 8.0*x*y*z + 16.0*x*x*y*z - 8.0*x*z*z + 16.0*x*x*z*z + 16.0*x*y*z*z - 32.0*x*x*y*z*z;
901 DSDV(18,3,i)= + 4.0*x*y - 8.0*x*x*y - 4.0*x*y*y + 8.0*x*x*y*y - 16.0*x*y*z + 32.0*x*x*y*z + 16.0*x*y*y*z - 32.0*x*x*y*y*z;
902 DSDV(19,1,i)= + 4.0*y*z - 8.0*x*y*z - 8.0*y*y*z + 16.0*x*y*y*z - 8.0*y*z*z + 16.0*x*y*z*z + 16.0*y*y*z*z - 32.0*x*y*y*z*z;
903 DSDV(19,2,i)= + 4.0*x*z - 4.0*x*x*z - 16.0*x*y*z + 16.0*x*x*y*z - 8.0*x*z*z + 8.0*x*x*z*z + 32.0*x*y*z*z - 32.0*x*x*y*z*z;
904 DSDV(19,3,i)= + 4.0*x*y - 4.0*x*x*y - 8.0*x*y*y + 8.0*x*x*y*y - 16.0*x*y*z + 16.0*x*x*y*z + 32.0*x*y*y*z - 32.0*x*x*y*y*z;
905 DSDV(20,1,i)= + 12.0*y*z - 16.0*x*y*z - 12.0*y*y*z + 16.0*x*y*y*z - 24.0*y*z*z + 32.0*x*y*z*z + 24.0*y*y*z*z - 32.0*x*y*y*z*z;
906 DSDV(20,2,i)= - 4.0*z + 12.0*x*z - 8.0*x*x*z + 8.0*y*z - 24.0*x*y*z + 16.0*x*x*y*z + 8.0*z*z - 24.0*x*z*z + 16.0*x*x*z*z - 16.0*y*z*z + 48.0*x*y*z*z - 32.0*x*x*y*z*z;
907 DSDV(20,3,i)= - 4.0*y + 12.0*x*y - 8.0*x*x*y + 4.0*y*y - 12.0*x*y*y + 8.0*x*x*y*y + 16.0*y*z - 48.0*x*y*z + 32.0*x*x*y*z - 16.0*y*y*z + 48.0*x*y*y*z - 32.0*x*x*y*y*z;
908 DSDV(21,1,i)= + 16.0*y - 32.0*x*y - 16.0*y*y + 32.0*x*y*y - 48.0*y*z + 96.0*x*y*z + 48.0*y*y*z - 96.0*x*y*y*z + 32.0*y*z*z - 64.0*x*y*z*z - 32.0*y*y*z*z + 64.0*x*y*y*z*z;
909 DSDV(21,2,i)= + 16.0*x - 16.0*x*x - 32.0*x*y + 32.0*x*x*y - 48.0*x*z + 48.0*x*x*z + 96.0*x*y*z - 96.0*x*x*y*z + 32.0*x*z*z - 32.0*x*x*z*z - 64.0*x*y*z*z + 64.0*x*x*y*z*z;
910 DSDV(21,3,i)= - 48.0*x*y + 48.0*x*x*y + 48.0*x*y*y - 48.0*x*x*y*y + 64.0*x*y*z - 64.0*x*x*y*z - 64.0*x*y*y*z + 64.0*x*x*y*y*z;
911 DSDV(22,1,i)= + 16.0*z - 32.0*x*z - 48.0*y*z + 96.0*x*y*z + 32.0*y*y*z - 64.0*x*y*y*z - 16.0*z*z + 32.0*x*z*z + 48.0*y*z*z - 96.0*x*y*z*z - 32.0*y*y*z*z + 64.0*x*y*y*z*z;
912 DSDV(22,2,i)= - 48.0*x*z + 48.0*x*x*z + 64.0*x*y*z - 64.0*x*x*y*z + 48.0*x*z*z - 48.0*x*x*z*z - 64.0*x*y*z*z + 64.0*x*x*y*z*z;
913 DSDV(22,3,i)= + 16.0*x - 16.0*x*x - 48.0*x*y + 48.0*x*x*y + 32.0*x*y*y - 32.0*x*x*y*y - 32.0*x*z + 32.0*x*x*z + 96.0*x*y*z - 96.0*x*x*y*z - 64.0*x*y*y*z + 64.0*x*x*y*y*z;
914 DSDV(23,1,i)= - 16.0*y*z + 64.0*x*y*z + 16.0*y*y*z - 64.0*x*y*y*z + 16.0*y*z*z - 64.0*x*y*z*z - 16.0*y*y*z*z + 64.0*x*y*y*z*z;
915 DSDV(23,2,i)= - 16.0*x*z + 32.0*x*x*z + 32.0*x*y*z - 64.0*x*x*y*z + 16.0*x*z*z - 32.0*x*x*z*z - 32.0*x*y*z*z + 64.0*x*x*y*z*z;
916 DSDV(23,3,i)= - 16.0*x*y + 32.0*x*x*y + 16.0*x*y*y - 32.0*x*x*y*y + 32.0*x*y*z - 64.0*x*x*y*z - 32.0*x*y*y*z + 64.0*x*x*y*y*z;
917 DSDV(24,1,i)= - 16.0*y*z + 32.0*x*y*z + 32.0*y*y*z - 64.0*x*y*y*z + 16.0*y*z*z - 32.0*x*y*z*z - 32.0*y*y*z*z + 64.0*x*y*y*z*z;
918 DSDV(24,2,i)= - 16.0*x*z + 16.0*x*x*z + 64.0*x*y*z - 64.0*x*x*y*z + 16.0*x*z*z - 16.0*x*x*z*z - 64.0*x*y*z*z + 64.0*x*x*y*z*z;
919 DSDV(24,3,i)= - 16.0*x*y + 16.0*x*x*y + 32.0*x*y*y - 32.0*x*x*y*y + 32.0*x*y*z - 32.0*x*x*y*z - 64.0*x*y*y*z + 64.0*x*x*y*y*z;
920 DSDV(25,1,i)= - 48.0*y*z + 64.0*x*y*z + 48.0*y*y*z - 64.0*x*y*y*z + 48.0*y*z*z - 64.0*x*y*z*z - 48.0*y*y*z*z + 64.0*x*y*y*z*z;
921 DSDV(25,2,i)= + 16.0*z - 48.0*x*z + 32.0*x*x*z - 32.0*y*z + 96.0*x*y*z - 64.0*x*x*y*z - 16.0*z*z + 48.0*x*z*z - 32.0*x*x*z*z + 32.0*y*z*z - 96.0*x*y*z*z + 64.0*x*x*y*z*z;
922 DSDV(25,3,i)= + 16.0*y - 48.0*x*y + 32.0*x*x*y - 16.0*y*y + 48.0*x*y*y - 32.0*x*x*y*y - 32.0*y*z + 96.0*x*y*z - 64.0*x*x*y*z + 32.0*y*y*z - 96.0*x*y*y*z + 64.0*x*x*y*y*z;
923 DSDV(26,1,i)= - 16.0*y*z + 32.0*x*y*z + 16.0*y*y*z - 32.0*x*y*y*z + 32.0*y*z*z - 64.0*x*y*z*z - 32.0*y*y*z*z + 64.0*x*y*y*z*z;
924 DSDV(26,2,i)= - 16.0*x*z + 16.0*x*x*z + 32.0*x*y*z - 32.0*x*x*y*z + 32.0*x*z*z - 32.0*x*x*z*z - 64.0*x*y*z*z + 64.0*x*x*y*z*z;
925 DSDV(26,3,i)= - 16.0*x*y + 16.0*x*x*y + 16.0*x*y*y - 16.0*x*x*y*y + 64.0*x*y*z - 64.0*x*x*y*z - 64.0*x*y*y*z + 64.0*x*x*y*y*z;
926 DSDV(27,1,i)= + 64.0*y*z - 128.0*x*y*z - 64.0*y*y*z + 128.0*x*y*y*z - 64.0*y*z*z + 128.0*x*y*z*z + 64.0*y*y*z*z - 128.0*x*y*y*z*z;
927 DSDV(27,2,i)= + 64.0*x*z - 64.0*x*x*z - 128.0*x*y*z + 128.0*x*x*y*z - 64.0*x*z*z + 64.0*x*x*z*z + 128.0*x*y*z*z - 128.0*x*x*y*z*z;
928 DSDV(27,3,i)= + 64.0*x*y - 64.0*x*x*y - 64.0*x*y*y + 64.0*x*x*y*y - 128.0*x*y*z + 128.0*x*x*y*z + 128.0*x*y*y*z - 128.0*x*x*y*y*z;
929 }
930 #undef NUMSHAPES
931 #undef DIM
932 }
933
934 /**************************************************************/
935
936 void Finley_Shape_Hex32(int NumV,double* v,double* s,double* dsdv) {
937 #define NUMSHAPES 32
938 #define DIM 3
939 register double x,y,z;
940 int i;
941 #pragma ivdep
942 for (i=0;i<NumV;i++) {
943 x=V(1,i);
944 y=V(2,i);
945 z=V(3,i);
946 S(1,i)=(10.)+(-5.5)*x+(10.)*x*y+(-5.5)*y+(-5.5)*z+(10.)*x*z+(-0.145e2)*x*y*z+(10.)*y*z+(9.)*x*x+(-4.5)*x*x*x+(-9.)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-9.)*x*x*y+(-4.5)*y*y*y+(9.)*y*y+(9.)*z*z+(-9.)*x*z*z+(9.)*x*y*z*z+(-9.)*y*z*z+(-4.5)*z*z*z+(4.5)*x*z*z*z+(-4.5)*x*y*z*z*z+(4.5)*y*z*z*z+(-9.)*x*x*z+(4.5)*x*x*x*z+(9.)*x*y*y*z+(-4.5)*x*y*y*y*z+(-4.5)*x*x*x*y*z+(9.)*x*x*y*z+(4.5)*y*y*y*z+(-9.)*y*y*z;
947 S(2,i)=(10.)*x+(-5.5)*x*y+(-5.5)*x*z+(10.)*x*y*z+(-.45e1)*x*x+(4.5)*x*x*x+(9.)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(4.5)*x*x*y+(9.)*x*z*z+(-9.)*x*y*z*z+(-4.5)*x*z*z*z+(4.5)*x*y*z*z*z+(4.5)*x*x*z+(-4.5)*x*x*x*z+(-9.)*x*y*y*z+(4.5)*x*y*y*y*z+(4.5)*x*x*x*y*z+(-4.5)*x*x*y*z;
948 S(3,i)=(10.)*x*y+(-5.5)*x*y*z+(-4.5)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-4.5)*x*x*y+(9.)*x*y*z*z+(-4.5)*x*y*z*z*z+(4.5)*x*y*y*z+(-4.5)*x*y*y*y*z+(-4.5)*x*x*x*y*z+(4.5)*x*x*y*z;
949 S(4,i)=(-5.5)*x*y+(10.)*y+(10.)*x*y*z+(-5.5)*y*z+(.45e1)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(9.)*x*x*y+(4.5)*y*y*y+(-4.5)*y*y+(-9.)*x*y*z*z+(9.)*y*z*z+(4.5)*x*y*z*z*z+(-4.5)*y*z*z*z+(-4.5)*x*y*y*z+(4.5)*x*y*y*y*z+(4.5)*x*x*x*y*z+(-9.)*x*x*y*z+(-4.5)*y*y*y*z+(4.5)*y*y*z;
950 S(5,i)=(10.)*z+(-5.5)*x*z+(10.)*x*y*z+(-5.5)*y*z+(-.45e1)*z*z+(4.5)*x*z*z+(-4.5)*x*y*z*z+(4.5)*y*z*z+(4.5)*z*z*z+(-4.5)*x*z*z*z+(4.5)*x*y*z*z*z+(-4.5)*y*z*z*z+(9.)*x*x*z+(-4.5)*x*x*x*z+(-9.)*x*y*y*z+(4.5)*x*y*y*y*z+(4.5)*x*x*x*y*z+(-9.)*x*x*y*z+(-4.5)*y*y*y*z+(9.)*y*y*z;
951 S(6,i)=(10.)*x*z+(-5.5)*x*y*z+(-4.5)*x*z*z+(4.5)*x*y*z*z+(4.5)*x*z*z*z+(-4.5)*x*y*z*z*z+(-4.5)*x*x*z+(4.5)*x*x*x*z+(9.)*x*y*y*z+(-.45+01)*x*y*y*y*z+(-4.5)*x*x*x*y*z+(4.5)*x*x*y*z;
952 S(7,i)=(10.)*x*y*z+(-4.5)*x*y*z*z+(4.5)*x*y*z*z*z+(-4.5)*x*y*y*z+(4.5)*x*y*y*y*z+(4.5)*x*x*x*y*z+(-4.5)*x*x*y*z;
953 S(8,i)=(-5.5)*x*y*z+(10.)*y*z+(4.5)*x*y*z*z+(-4.5)*y*z*z+(-4.5)*x*y*z*z*z+(4.5)*y*z*z*z+(4.5)*x*y*y*z+(-4.5)*x*y*y*y*z+(-4.5)*x*x*x*y*z+(9.)*x*x*y*z+(4.5)*y*y*y*z+(-4.5)*y*y*z;
954 S(9,i)=(9.)*x+(-9.)*x*y+(-9.)*x*z+(9.)*x*y*z+(-.225e2)*x*x+(13.5)*x*x*x+(-13.5)*x*x*x*y+(22.5)*x*x*y+(22.5)*x*x*z+(-13.5)*x*x*x*z+(13.5)*x*x*x*y*z+(-22.5)*x*x*y*z;
955 S(10,i)=(-4.5)*x+(4.5)*x*y+(4.5)*x*z+(-4.5)*x*y*z+(18.)*x*x+(-13.5)*x*x*x+(13.5)*x*x*x*y+(-18.)*x*x*y+(-18.)*x*x*z+(13.5)*x*x*x*z+(-13.5)*x*x*x*y*z+(18.)*x*x*y*z;
956 S(11,i)=(9.)*x*y+(-9.)*x*y*z+(-22.5)*x*y*y+(13.5)*x*y*y*y+(22.5)*x*y*y*z+(-13.5)*x*y*y*y*z;
957 S(12,i)=(-4.5)*x*y+(4.5)*x*y*z+(18.)*x*y*y+(-13.5)*x*y*y*y+(-18.)*x*y*y*z+(13.5)*x*y*y*y*z;
958 S(13,i)=(-4.5)*x*y+(4.5)*x*y*z+(-13.5)*x*x*x*y+(18.)*x*x*y+(13.5)*x*x*x*y*z+(-18.)*x*x*y*z;
959 S(14,i)=(9.)*x*y+(-9.)*x*y*z+(13.5)*x*x*x*y+(-22.5)*x*x*y+(-13.5)*x*x*x*y*z+(22.5)*x*x*y*z;
960 S(15,i)=(4.5)*x*y+(-4.5)*y+(-4.5)*x*y*z+(4.5)*y*z+(-18.)*x*y*y+(13.5)*x*y*y*y+(-13.5)*y*y*y+(18.)*y*y+(18.)*x*y*y*z+(-13.5)*x*y*y*y*z+(.135e2)*y*y*y*z+(-18.)*y*y*z;
961 S(16,i)=(-9.)*x*y+(9.)*y+(9.)*x*y*z+(-9.)*y*z+(.225e2)*x*y*y+(-13.5)*x*y*y*y+(13.5)*y*y*y+(-22.5)*y*y+(-22.5)*x*y*y*z+(13.5)*x*y*y*y*z+(-13.5)*y*y*y*z+(22.5)*y*y*z;
962 S(17,i)=(9.)*z+(-9.)*x*z+(9.)*x*y*z+(-9.)*y*z+(-.225e2)*z*z+(22.5)*x*z*z+(-22.5)*x*y*z*z+(22.5)*y*z*z+(13.5)*z*z*z+(-13.5)*x*z*z*z+(13.5)*x*y*z*z*z+(-13.5)*y*z*z*z;
963 S(18,i)=(9.)*x*z+(-9.)*x*y*z+(-22.5)*x*z*z+(22.5)*x*y*z*z+(13.5)*x*z*z*z+(-13.5)*x*y*z*z*z;
964 S(19,i)=(9.)*x*y*z+(-22.5)*x*y*z*z+(13.5)*x*y*z*z*z;
965 S(20,i)=(-9.)*x*y*z+(9.)*y*z+(22.5)*x*y*z*z+(-22.5)*y*z*z+(-13.5)*x*y*z*z*z+(13.5)*y*z*z*z;
966 S(21,i)=(-4.5)*z+(4.5)*x*z+(-4.5)*x*y*z+(4.5)*y*z+(18.)*z*z+(-18.)*x*z*z+(18.)*x*y*z*z+(-18.)*y*z*z+(-13.5)*z*z*z+(13.5)*x*z*z*z+(-13.5)*x*y*z*z*z+(13.5)*y*z*z*z;
967 S(22,i)=(-4.5)*x*z+(4.5)*x*y*z+(18.)*x*z*z+(-18.)*x*y*z*z+(-13.5)*x*z*z*z+(13.5)*x*y*z*z*z;
968 S(23,i)=(-4.5)*x*y*z+(18.)*x*y*z*z+(-13.5)*x*y*z*z*z;
969 S(24,i)=(4.5)*x*y*z+(-4.5)*y*z+(-18.)*x*y*z*z+(18.)*y*z*z+(13.5)*x*y*z*z*z+(-13.5)*y*z*z*z;
970 S(25,i)=(9.)*x*z+(-9.)*x*y*z+(-22.5)*x*x*z+(13.5)*x*x*x*z+(-13.5)*x*x*x*y*z+(22.5)*x*x*y*z;
971 S(26,i)=(-4.5)*x*z+(4.5)*x*y*z+(18.)*x*x*z+(-13.5)*x*x*x*z+(13.5)*x*x*x*y*z+(-18.)*x*x*y*z;
972 S(27,i)=(9.)*x*y*z+(-22.5)*x*y*y*z+(13.5)*x*y*y*y*z;
973 S(28,i)=(-4.5)*x*y*z+(18.)*x*y*y*z+(-13.5)*x*y*y*y*z;
974 S(29,i)=(-4.5)*x*y*z+(-13.5)*x*x*x*y*z+(18.)*x*x*y*z;
975 S(30,i)=(9.)*x*y*z+(13.5)*x*x*x*y*z+(-22.5)*x*x*y*z;
976 S(31,i)=(4.5)*x*y*z+(-4.5)*y*z+(-18.)*x*y*y*z+(13.5)*x*y*y*y*z+(-13.5)*y*y*y*z+(18.)*y*y*z;
977 S(32,i)=(-9.)*x*y*z+(9.)*y*z+(22.5)*x*y*y*z+(-13.5)*x*y*y*y*z+(13.5)*y*y*y*z+(-22.5)*y*y*z;
978 DSDV(1, 1,i)=(-5.5)+(10.)*y+(10.)*z+(-0.145e2)*y*z+(18.)*x+(-13.5)*x*x+(-9.)*y*y+(4.5)*y*y*y+(13.5)*x*x*y+(-18.)*x*y+(-9.)*z*z+(9.)*y*z*z+(4.5)*z*z*z+(-4.5)*y*z*z*z+(-18.)*x*z+(13.5)*x*x*z+(9.)*y*y*z+(-4.5)*y*y*y*z+(-13.5)*x*x*y*z+(.18e2)*x*y*z;
979 DSDV(2, 1,i)=(10.)+(-5.5)*y+(-5.5)*z+(10.)*y*z+(-9.)*x+(13.5)*x*x+(9.)*y*y+(-4.5)*y*y*y+(-13.5)*x*x*y+(9.)*x*y+(9.)*z*z+(-9.)*y*z*z+(-4.5)*z*z*z+(.45e1)*y*z*z*z+(9.)*x*z+(-13.5)*x*x*z+(-9.)*y*y*z+(4.5)*y*y*y*z+(13.5)*x*x*y*z+(-.9e1)*x*y*z;
980 DSDV(3, 1,i)=(10.)*y+(-5.5)*y*z+(-4.5)*y*y+(4.5)*y*y*y+(13.5)*x*x*y+(-9.)*x*y+(9.)*y*z*z+(-4.5)*y*z*z*z+(4.5)*y*y*z+(-4.5)*y*y*y*z+(-13.5)*x*x*y*z+(.9e1)*x*y*z;
981 DSDV(4, 1,i)=(-5.5)*y+(10.)*y*z+(4.5)*y*y+(-4.5)*y*y*y+(-13.5)*x*x*y+(18.)*x*y+(-9.)*y*z*z+(4.5)*y*z*z*z+(-4.5)*y*y*z+(4.5)*y*y*y*z+(13.5)*x*x*y*z+(-18.)*x*y*z;
982 DSDV(5, 1,i)=(-5.5)*z+(10.)*y*z+(4.5)*z*z+(-4.5)*y*z*z+(-.45e1)*z*z*z+(4.5)*y*z*z*z+(18.)*x*z+(-13.5)*x*x*z+(-9.)*y*y*z+(4.5)*y*y*y*z+(13.5)*x*x*y*z+(-.18e2)*x*y*z;
983 DSDV(6, 1,i)=(10.)*z+(-5.5)*y*z+(-4.5)*z*z+(4.5)*y*z*z+(.45e1)*z*z*z+(-4.5)*y*z*z*z+(-9.)*x*z+(13.5)*x*x*z+(9.)*y*y*z+(-4.5)*y*y*y*z+(-13.5)*x*x*y*z+(9.)*x*y*z;
984 DSDV(7, 1,i)=(10.)*y*z+(-4.5)*y*z*z+(4.5)*y*z*z*z+(-4.5)*y*y*z+(4.5)*y*y*y*z+(13.5)*x*x*y*z+(-9.)*x*y*z;
985 DSDV(8, 1,i)=(-5.5)*y*z+(4.5)*y*z*z+(-4.5)*y*z*z*z+(4.5)*y*y*z+(-4.5)*y*y*y*z+(-13.5)*x*x*y*z+(18.)*x*y*z;
986 DSDV(9, 1,i)=(9.)+(-9.)*y+(-9.)*z+(9.)*y*z+(-45.)*x+(0.405e2)*x*x+(-0.405e2)*x*x*y+(45.)*x*y+(45.)*x*z+(-0.405e2)*x*x*z+(0.405e2)*x*x*y*z+(-45.)*x*y*z;
987 DSDV(10, 1,i)=(-4.5)+(4.5)*y+(4.5)*z+(-4.5)*y*z+(36.)*x+(-.405e2)*x*x+(0.405e2)*x*x*y+(-36.)*x*y+(-36.)*x*z+(0.405e2)*x*x*z+(-0.405e2)*x*x*y*z+(36.)*x*y*z;
988 DSDV(11, 1,i)=(9.)*y+(-9.)*y*z+(-22.5)*y*y+(13.5)*y*y*y+(22.5)*y*y*z+(-13.5)*y*y*y*z;
989 DSDV(12, 1,i)=(-4.5)*y+(4.5)*y*z+(18.)*y*y+(-13.5)*y*y*y+(-18.)*y*y*z+(13.5)*y*y*y*z;
990 DSDV(13, 1,i)=(-4.5)*y+(4.5)*y*z+(-0.405e2)*x*x*y+(36.)*x*y+(0.405e2)*x*x*y*z+(-36.)*x*y*z;
991 DSDV(14, 1,i)=(9.)*y+(-9.)*y*z+(0.405e2)*x*x*y+(-45.)*x*y+(-0.405e2)*x*x*y*z+(45.)*x*y*z;
992 DSDV(15, 1,i)=(4.5)*y+(-4.5)*y*z+(-18.)*y*y+(13.5)*y*y*y+(18.)*y*y*z+(-13.5)*y*y*y*z;
993 DSDV(16, 1,i)=(-9.)*y+(9.)*y*z+(22.5)*y*y+(-13.5)*y*y*y+(-22.5)*y*y*z+(13.5)*y*y*y*z;
994 DSDV(17, 1,i)=(-9.)*z+(9.)*y*z+(22.5)*z*z+(-22.5)*y*z*z+(-13.5)*z*z*z+(13.5)*y*z*z*z;
995 DSDV(18, 1,i)=(9.)*z+(-9.)*y*z+(-22.5)*z*z+(22.5)*y*z*z+(.135e2)*z*z*z+(-13.5)*y*z*z*z;
996 DSDV(19, 1,i)=(9.)*y*z+(-22.5)*y*z*z+(13.5)*y*z*z*z;
997 DSDV(20, 1,i)=(-9.)*y*z+(22.5)*y*z*z+(-13.5)*y*z*z*z;
998 DSDV(21, 1,i)=(4.5)*z+(-4.5)*y*z+(-18.)*z*z+(18.)*y*z*z+(.135e2)*z*z*z+(-13.5)*y*z*z*z;
999 DSDV(22, 1,i)=(-4.5)*z+(4.5)*y*z+(18.)*z*z+(-18.)*y*z*z+(-13.5)*z*z*z+(13.5)*y*z*z*z;
1000 DSDV(23, 1,i)=(-4.5)*y*z+(18.)*y*z*z+(-13.5)*y*z*z*z;
1001 DSDV(24, 1,i)=(4.5)*y*z+(-18.)*y*z*z+(13.5)*y*z*z*z;
1002 DSDV(25, 1,i)=(9.)*z+(-9.)*y*z+(-45.)*x*z+(0.405e2)*x*x*z+(-0.405e2)*x*x*y*z+(45.)*x*y*z;
1003 DSDV(26, 1,i)=(-4.5)*z+(4.5)*y*z+(36.)*x*z+(-0.405e2)*x*x*z+(0.405e2)*x*x*y*z+(-36.)*x*y*z;
1004 DSDV(27, 1,i)=(9.)*y*z+(-22.5)*y*y*z+(13.5)*y*y*y*z;
1005 DSDV(28, 1,i)=(-4.5)*y*z+(18.)*y*y*z+(-13.5)*y*y*y*z;
1006 DSDV(29, 1,i)=(-4.5)*y*z+(-0.405e2)*x*x*y*z+(36.)*x*y*z;
1007 DSDV(30, 1,i)=(9.)*y*z+(0.405e2)*x*x*y*z+(-45.)*x*y*z;
1008 DSDV(31, 1,i)=(4.5)*y*z+(-18.)*y*y*z+(13.5)*y*y*y*z;
1009 DSDV(32, 1,i)=(-9.)*y*z+(22.5)*y*y*z+(-13.5)*y*y*y*z;
1010 DSDV(1, 2,i)=(10.)*x+(-5.5)+(-0.145e2)*x*z+(10.)*z+(-18.)*x*y+(13.5)*x*y*y+(4.5)*x*x*x+(-9.)*x*x+(-13.5)*y*y+(18.)*y+(9.)*x*z*z+(-9.)*z*z+(-4.5)*x*z*z*z+(4.5)*z*z*z+(18.)*x*y*z+(-13.5)*x*y*y*z+(-4.5)*x*x*x*z+(9.)*x*x*z+(.135e2)*y*y*z+(-18.)*y*z;
1011 DSDV(2, 2,i)=(-5.5)*x+(10.)*x*z+(18.)*x*y+(-13.5)*x*y*y+(-4.5)*x*x*x+(4.5)*x*x+(-9.)*x*z*z+(4.5)*x*z*z*z+(-18.)*x*y*z+(13.5)*x*y*y*z+(4.5)*x*x*x*z+(-4.5)*x*x*z;
1012 DSDV(3, 2,i)=(10.)*x+(-5.5)*x*z+(-9.)*x*y+(13.5)*x*y*y+(4.5)*x*x*x+(-4.5)*x*x+(9.)*x*z*z+(-4.5)*x*z*z*z+(9.)*x*y*z+(-13.5)*x*y*y*z+(-4.5)*x*x*x*z+(4.5)*x*x*z;
1013 DSDV(4, 2,i)=(-5.5)*x+(10.)+(10.)*x*z+(-5.5)*z+(9.)*x*y+(-13.5)*x*y*y+(-4.5)*x*x*x+(9.)*x*x+(13.5)*y*y+(-9.)*y+(-9.)*x*z*z+(9.)*z*z+(4.5)*x*z*z*z+(-4.5)*z*z*z+(-9.)*x*y*z+(13.5)*x*y*y*z+(4.5)*x*x*x*z+(-9.)*x*x*z+(-.135e2)*y*y*z+(9.)*y*z;
1014 DSDV(5, 2,i)=(10.)*x*z+(-5.5)*z+(-4.5)*x*z*z+(4.5)*z*z+(.45e1)*x*z*z*z+(-4.5)*z*z*z+(-18.)*x*y*z+(13.5)*x*y*y*z+(4.5)*x*x*x*z+(-9.)*x*x*z+(-.135e2)*y*y*z+(18.)*y*z;
1015 DSDV(6, 2,i)=(-5.5)*x*z+(4.5)*x*z*z+(-4.5)*x*z*z*z+(18.)*x*y*z+(-13.5)*x*y*y*z+(-4.5)*x*x*x*z+(4.5)*x*x*z;
1016 DSDV(7, 2,i)=(10.)*x*z+(-4.5)*x*z*z+(4.5)*x*z*z*z+(-9.)*x*y*z+(13.5)*x*y*y*z+(4.5)*x*x*x*z+(-4.5)*x*x*z;
1017 DSDV(8, 2,i)=(-5.5)*x*z+(10.)*z+(4.5)*x*z*z+(-4.5)*z*z+(-.45e1)*x*z*z*z+(4.5)*z*z*z+(9.)*x*y*z+(-13.5)*x*y*y*z+(-4.5)*x*x*x*z+(9.)*x*x*z+(.135e2)*y*y*z+(-9.)*y*z;
1018 DSDV(9, 2,i)=(-9.)*x+(9.)*x*z+(-13.5)*x*x*x+(22.5)*x*x+(13.5)*x*x*x*z+(-22.5)*x*x*z;
1019 DSDV(10, 2,i)=(4.5)*x+(-4.5)*x*z+(13.5)*x*x*x+(-18.)*x*x+(-13.5)*x*x*x*z+(18.)*x*x*z;
1020 DSDV(11, 2,i)=(9.)*x+(-9.)*x*z+(-45.)*x*y+(0.405e2)*x*y*y+(45.)*x*y*z+(-0.405e2)*x*y*y*z;
1021 DSDV(12, 2,i)=(-4.5)*x+(4.5)*x*z+(36.)*x*y+(-0.405e2)*x*y*y+(-36.)*x*y*z+(0.405e2)*x*y*y*z;
1022 DSDV(13, 2,i)=(-4.5)*x+(4.5)*x*z+(-13.5)*x*x*x+(18.)*x*x+(13.5)*x*x*x*z+(-18.)*x*x*z;
1023 DSDV(14, 2,i)=(9.)*x+(-9.)*x*z+(13.5)*x*x*x+(-22.5)*x*x+(-13.5)*x*x*x*z+(22.5)*x*x*z;
1024 DSDV(15, 2,i)=(4.5)*x+(-4.5)+(-4.5)*x*z+(4.5)*z+(-36.)*x*y+(0.405e2)*x*y*y+(-0.405e2)*y*y+(36.)*y+(36.)*x*y*z+(-0.405e2)*x*y*y*z+(0.405e2)*y*y*z+(-36.)*y*z;
1025 DSDV(16, 2,i)=(-9.)*x+(9.)+(9.)*x*z+(-9.)*z+(45.)*x*y+(-0.405e2)*x*y*y+(0.405e2)*y*y+(-45.)*y+(-45.)*x*y*z+(0.405e2)*x*y*y*z+(-0.405e2)*y*y*z+(45.)*y*z;
1026 DSDV(17, 2,i)=(9.)*x*z+(-9.)*z+(-22.5)*x*z*z+(22.5)*z*z+(13.5)*x*z*z*z+(-13.5)*z*z*z;
1027 DSDV(18, 2,i)=(-9.)*x*z+(22.5)*x*z*z+(-13.5)*x*z*z*z;
1028 DSDV(19, 2,i)=(9.)*x*z+(-22.5)*x*z*z+(13.5)*x*z*z*z;
1029 DSDV(20, 2,i)=(-9.)*x*z+(9.)*z+(22.5)*x*z*z+(-22.5)*z*z+(-13.5)*x*z*z*z+(13.5)*z*z*z;
1030 DSDV(21, 2,i)=(-4.5)*x*z+(4.5)*z+(18.)*x*z*z+(-18.)*z*z+(-13.5)*x*z*z*z+(13.5)*z*z*z;
1031 DSDV(22, 2,i)=(4.5)*x*z+(-18.)*x*z*z+(13.5)*x*z*z*z;
1032 DSDV(23, 2,i)=(-4.5)*x*z+(18.)*x*z*z+(-13.5)*x*z*z*z;
1033 DSDV(24, 2,i)=(4.5)*x*z+(-4.5)*z+(-18.)*x*z*z+(18.)*z*z+(13.5)*x*z*z*z+(-13.5)*z*z*z;
1034 DSDV(25, 2,i)=(-9.)*x*z+(-13.5)*x*x*x*z+(22.5)*x*x*z;
1035 DSDV(26, 2,i)=(4.5)*x*z+(13.5)*x*x*x*z+(-18.)*x*x*z;
1036 DSDV(27, 2,i)=(9.)*x*z+(-45.)*x*y*z+(0.405e2)*x*y*y*z;
1037 DSDV(28, 2,i)=(-4.5)*x*z+(36.)*x*y*z+(-0.405e2)*x*y*y*z;
1038 DSDV(29, 2,i)=(-4.5)*x*z+(-13.5)*x*x*x*z+(18.)*x*x*z;
1039 DSDV(30, 2,i)=(9.)*x*z+(13.5)*x*x*x*z+(-22.5)*x*x*z;
1040 DSDV(31, 2,i)=(4.5)*x*z+(-4.5)*z+(-36.)*x*y*z+(0.405e2)*x*y*y*z+(-0.405e2)*y*y*z+(36.)*y*z;
1041 DSDV(32, 2,i)=(-9.)*x*z+(9.)*z+(45.)*x*y*z+(-0.405e2)*x*y*y*z+(0.405e2)*y*y*z+(-45.)*y*z;
1042 DSDV(1, 3,i)=(-5.5)+(10.)*x+(-0.145e2)*x*y+(10.)*y+(18.)*z+(-18.)*x*z+(18.)*x*y*z+(-18.)*y*z+(-13.5)*z*z+(13.5)*x*z*z+(-13.5)*x*y*z*z+(13.5)*y*z*z+(-9.)*x*x+(4.5)*x*x*x+(9.)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(9.)*x*x*y+(4.5)*y*y*y+(-9.)*y*y;
1043 DSDV(2, 3,i)=(-5.5)*x+(10.)*x*y+(18.)*x*z+(-18.)*x*y*z+(-13.5)*x*z*z+(13.5)*x*y*z*z+(4.5)*x*x+(-4.5)*x*x*x+(-9.)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-4.5)*x*x*y;
1044 DSDV(3, 3,i)=(-5.5)*x*y+(18.)*x*y*z+(-13.5)*x*y*z*z+(4.5)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(4.5)*x*x*y;
1045 DSDV(4, 3,i)=(10.)*x*y+(-5.5)*y+(-18.)*x*y*z+(18.)*y*z+(13.5)*x*y*z*z+(-13.5)*y*z*z+(-4.5)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-9.)*x*x*y+(-4.5)*y*y*y+(4.5)*y*y;
1046 DSDV(5, 3,i)=(10.)+(-5.5)*x+(10.)*x*y+(-5.5)*y+(-9.)*z+(9.)*x*z+(-9.)*x*y*z+(9.)*y*z+(13.5)*z*z+(-13.5)*x*z*z+(13.5)*x*y*z*z+(-13.5)*y*z*z+(9.)*x*x+(-4.5)*x*x*x+(-9.)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-9.)*x*x*y+(-4.5)*y*y*y+(9.)*y*y;
1047 DSDV(6, 3,i)=(10.)*x+(-5.5)*x*y+(-9.)*x*z+(9.)*x*y*z+(13.5)*x*z*z+(-13.5)*x*y*z*z+(-4.5)*x*x+(4.5)*x*x*x+(9.)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(4.5)*x*x*y;
1048 DSDV(7, 3,i)=(10.)*x*y+(-9.)*x*y*z+(13.5)*x*y*z*z+(-4.5)*x*y*y+(4.5)*x*y*y*y+(4.5)*x*x*x*y+(-4.5)*x*x*y;
1049 DSDV(8, 3,i)=(-5.5)*x*y+(10.)*y+(9.)*x*y*z+(-9.)*y*z+(-13.5)*x*y*z*z+(13.5)*y*z*z+(4.5)*x*y*y+(-4.5)*x*y*y*y+(-4.5)*x*x*x*y+(9.)*x*x*y+(4.5)*y*y*y+(-4.5)*y*y;
1050 DSDV(9, 3,i)=(-9.)*x+(9.)*x*y+(22.5)*x*x+(-13.5)*x*x*x+(13.5)*x*x*x*y+(-22.5)*x*x*y;
1051 DSDV(10, 3,i)=(4.5)*x+(-4.5)*x*y+(-18.)*x*x+(13.5)*x*x*x+(-13.5)*x*x*x*y+(18.)*x*x*y;
1052 DSDV(11, 3,i)=(-9.)*x*y+(22.5)*x*y*y+(-13.5)*x*y*y*y;
1053 DSDV(12, 3,i)=(4.5)*x*y+(-18.)*x*y*y+(13.5)*x*y*y*y;
1054 DSDV(13, 3,i)=(4.5)*x*y+(13.5)*x*x*x*y+(-18.)*x*x*y;
1055 DSDV(14, 3,i)=(-9.)*x*y+(-13.5)*x*x*x*y+(22.5)*x*x*y;
1056 DSDV(15, 3,i)=(-4.5)*x*y+(4.5)*y+(18.)*x*y*y+(-13.5)*x*y*y*y+(13.5)*y*y*y+(-18.)*y*y;
1057 DSDV(16, 3,i)=(9.)*x*y+(-9.)*y+(-22.5)*x*y*y+(13.5)*x*y*y*y+(-13.5)*y*y*y+(22.5)*y*y;
1058 DSDV(17, 3,i)=(9.)+(-9.)*x+(9.)*x*y+(-9.)*y+(-45.)*z+(45.)*x*z+(-45.)*x*y*z+(45.)*y*z+(0.405e2)*z*z+(-0.405e2)*x*z*z+(0.405e2)*x*y*z*z+(-0.405e2)*y*z*z;
1059 DSDV(18, 3,i)=(9.)*x+(-9.)*x*y+(-45.)*x*z+(45.)*x*y*z+(0.405e2)*x*z*z+(-0.405e2)*x*y*z*z;
1060 DSDV(19, 3,i)=(9.)*x*y+(-45.)*x*y*z+(0.405e2)*x*y*z*z;
1061 DSDV(20, 3,i)=(-9.)*x*y+(9.)*y+(45.)*x*y*z+(-45.)*y*z+(-0.405e2)*x*y*z*z+(0.405e2)*y*z*z;
1062 DSDV(21, 3,i)=(-4.5)+(4.5)*x+(-4.5)*x*y+(4.5)*y+(36.)*z+(-36.)*x*z+(36.)*x*y*z+(-36.)*y*z+(-0.405e2)*z*z+(0.405e2)*x*z*z+(-0.405e2)*x*y*z*z+(0.405e2)*y*z*z;
1063 DSDV(22, 3,i)=(-4.5)*x+(4.5)*x*y+(36.)*x*z+(-36.)*x*y*z+(-0.405e2)*x*z*z+(0.405e2)*x*y*z*z;
1064 DSDV(23, 3,i)=(-4.5)*x*y+(36.)*x*y*z+(-0.405e2)*x*y*z*z;
1065 DSDV(24, 3,i)=(4.5)*x*y+(-4.5)*y+(-36.)*x*y*z+(36.)*y*z+(0.405e2)*x*y*z*z+(-0.405e2)*y*z*z;
1066 DSDV(25, 3,i)=(9.)*x+(-9.)*x*y+(-22.5)*x*x+(13.5)*x*x*x+(-13.5)*x*x*x*y+(22.5)*x*x*y;
1067 DSDV(26, 3,i)=(-4.5)*x+(4.5)*x*y+(18.)*x*x+(-13.5)*x*x*x+(13.5)*x*x*x*y+(-18.)*x*x*y;
1068 DSDV(27, 3,i)=(9.)*x*y+(-22.5)*x*y*y+(13.5)*x*y*y*y;
1069 DSDV(28, 3,i)=(-4.5)*x*y+(18.)*x*y*y+(-13.5)*x*y*y*y;
1070 DSDV(29, 3,i)=(-4.5)*x*y+(-13.5)*x*x*x*y+(18.)*x*x*y;
1071 DSDV(30, 3,i)=(9.)*x*y+(13.5)*x*x*x*y+(-22.5)*x*x*y;
1072 DSDV(31, 3,i)=(4.5)*x*y+(-4.5)*y+(-18.)*x*y*y+(13.5)*x*y*y*y+(-13.5)*y*y*y+(18.)*y*y;
1073 DSDV(32, 3,i)=(-9.)*x*y+(9.)*y+(22.5)*x*y*y+(-13.5)*x*y*y*y+(13.5)*y*y*y+(-22.5)*y*y;
1074 }
1075 #undef NUMSHAPES
1076 #undef DIM
1077 }
1078 #undef V
1079 #undef S
1080 #undef DSDV
1081
1082 /*
1083 * $Log$
1084 * Revision 1.2 2005/09/15 03:44:23 jgs
1085 * Merge of development branch dev-02 back to main trunk on 2005-09-15
1086 *
1087 * Revision 1.1.1.1.6.1 2005/09/07 06:26:21 gross
1088 * the solver from finley are put into the standalone package paso now
1089 *
1090 * Revision 1.1.1.1 2004/10/26 06:53:57 jgs
1091 * initial import of project esys2
1092 *
1093 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
1094 * Initial version of eys using boost-python.
1095 *
1096 *
1097 */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26