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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26