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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 201 - (hide annotations)
Wed Nov 23 04:10:21 2005 UTC (14 years ago) by jgs
Original Path: trunk/finley/src/finley/ShapeFunctions.c
File MIME type: text/plain
File size: 52273 byte(s)
copy finleyC and CPPAdapter to finley and finley/CPPAdapter to
facilitate scons builds

1 jgs 150 /*
2     ******************************************************************************
3     * *
4     * COPYRIGHT ACcESS 2003,2004,2005 - All Rights Reserved *
5     * *
6     * This software is the property of ACcESS. No part of this code *
7     * may be copied in any form or by any means without the expressed written *
8     * consent of ACcESS. Copying, use or modification of this software *
9     * by any unauthorised person is illegal unless that person has a software *
10     * license agreement with ACcESS. *
11     * *
12     ******************************************************************************
13     */
14 jgs 82
15     /**************************************************************/
16    
17     /* Finley: Shape functions */
18    
19     /**************************************************************/
20    
21     /* Author: gross@access.edu.au */
22     /* Version: $Id$ */
23    
24     /**************************************************************/
25    
26     #include "ShapeFunctions.h"
27    
28     /**************************************************************/
29    
30     #define V(_K_,_I_) v[INDEX2((_K_)-1,(_I_),DIM)]
31     #define S(_J_,_I_) s[S_INDEX((_J_)-1,(_I_),NUMSHAPES)]
32     #define DSDV(_J_,_K_,_I_) dsdv[DSDV_INDEX((_J_)-1,(_K_)-1,(_I_),NUMSHAPES,DIM)]
33    
34     /**************************************************************/
35    
36     void Finley_Shape_Point1(int NumV,double* v,double* s,double* dsdv) {
37     #define NUMSHAPES 1
38     #define DIM 0
39     int i;
40     for (i=0;i<NumV;i++) {
41     S(1,i)=1.;
42     }
43     #undef NUMSHAPES
44     #undef DIM
45     }
46    
47     /**************************************************************/
48    
49     void Finley_Shape_Line2(int NumV,double* v,double* s,double* dsdv) {
50     #define NUMSHAPES 2
51     #define DIM 1
52     double x;
53     int i;
54     for (i=0;i<NumV;i++) {
55     x=V(1,i);
56     S(1,i)=1.-x;
57     S(2,i)= x;
58     DSDV(1,1,i)=-1.;
59     DSDV(2,1,i)= 1.;
60     }
61     #undef NUMSHAPES
62     #undef DIM
63     }
64    
65     /**************************************************************/
66    
67     void Finley_Shape_Line3(int NumV,double* v,double* s,double* dsdv) {
68     #define NUMSHAPES 3
69     #define DIM 1
70     double x;
71     int i;
72     for (i=0;i<NumV;i++) {
73     x=V(1,i);
74     S(1,i)=(2.*x -1. )*(x -1.);
75     S(2,i)=(2.*x -1.)*x;
76     S(3,i)= 4.*x*(1. -x );
77     DSDV(1,1,i)= 4.*x -3.;
78     DSDV(2,1,i)= 4.*x -1.;
79     DSDV(3,1,i)=-8.*x+4.;
80     }
81     #undef NUMSHAPES
82     #undef DIM
83     }
84    
85     /**************************************************************/
86    
87     void Finley_Shape_Line4(int NumV,double* v,double* s,double* dsdv) {
88     #define NUMSHAPES 4
89     #define DIM 1
90     double x;
91     int i;
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     double x,y;
113     int i;
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     double x,y;
137     int i;
138     for (i=0;i<NumV;i++) {
139     x=V(1,i);
140     y=V(2,i);
141     S(1,i)= (1. -x -y)*(1. -2.*x -2.* y);
142     S(2,i)= x*(2.* x -1.);
143     S(3,i)= y*(2.* y -1.);
144     S(4,i)= (1. -x -y)*4.* x;
145     S(5,i)= 4.*x*y;
146     S(6,i)= (1. -x -y)*4.* y;
147     DSDV(1,1,i)= -3.+4.*x+4.*y;
148     DSDV(1,2,i)= -3.+4.*x+4.*y;
149     DSDV(2,1,i)= -1.+4.*x;
150     DSDV(2,2,i)= 0.;
151     DSDV(3,1,i)= 0.;
152     DSDV(3,2,i)= -1. +4.*y;
153     DSDV(4,1,i)= 4. -8.*x -4.*y;
154     DSDV(4,2,i)= -4.*x;
155     DSDV(5,1,i)= 4.*y;
156     DSDV(5,2,i)= 4.*x;
157     DSDV(6,1,i)= -4.*y;
158     DSDV(6,2,i)= 4. -4.*x -8.*y;
159     }
160     #undef NUMSHAPES
161     #undef DIM
162     }
163    
164     /**************************************************************/
165    
166     void Finley_Shape_Tri9(int NumV,double* v,double* s,double* dsdv) {
167     #define NUMSHAPES 9
168     #define DIM 2
169     double x,y;
170     int i;
171     for (i=0;i<NumV;i++) {
172     x=V(1,i);
173     y=V(2,i);
174     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;
175     S(2,i)=(10.)*x+(-4.5)*x*x+(4.5)*x*x*x;
176     S(3,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y;
177     S(4,i)=(9.)*x+(-22.5)*x*x+(13.5)*x*x*x+(-9.)*x*y*y+(4.5)*x*x*y;
178     S(5,i)=(-4.5)*x+(18.)*x*x+(-13.5)*x*x*x+(4.5)*x*y*y+(-9.)*x*x*y;
179     S(6,i)=(-4.5)*x*y*y+(9.)*x*x*y;
180     S(7,i)=(9.)*x*y*y+(-4.5)*x*x*y;
181     S(8,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y+(-9.)*x*y*y+(4.5)*x*x*y;
182     S(9,i)=(9.)*y+(-22.5)*y*y+(13.5)*y*y*y+(4.5)*x*y*y+(-9.)*x*x*y;
183     DSDV(1, 1,i)=(-5.5)+(18.)*x+(-13.5)*x*x+(4.5)*y*y+(9.)*x*y;
184     DSDV(2, 1,i)=(10.)+(-9.)*x+(13.5)*x*x;
185     DSDV(3, 1,i)= 0.;
186     DSDV(4, 1,i)=(9.)+(-45.)*x+(0.405e2)*x*x+(-9.)*y*y+(9.)*x*y;
187     DSDV(5, 1,i)=(-4.5)+(36.)*x+(-0.405e2)*x*x+(4.5)*y*y+(-18.)*x*y;
188     DSDV(6, 1,i)=(-4.5)*y*y+(18.)*x*y;
189     DSDV(7, 1,i)=(9.)*y*y+(-9.)*x*y;
190     DSDV(8, 1,i)=(-9.)*y*y+(9.)*x*y;
191     DSDV(9, 1,i)=(4.5)*y*y+(-18.)*x*y;
192     DSDV(1, 2,i)=(-5.5)+(18.)*y+(-13.5)*y*y+(9.)*x*y+(4.5)*x*x;
193     DSDV(2, 2,i)= 0.;
194     DSDV(3, 2,i)=(10.)+(-9.)*y+(13.5)*y*y;
195     DSDV(4, 2,i)=(-18.)*x*y+(4.5)*x*x;
196     DSDV(5, 2,i)=(9.)*x*y+(-9.)*x*x;
197     DSDV(6, 2,i)=(-9.)*x*y+(9.)*x*x;
198     DSDV(7, 2,i)=(18.)*x*y+(-4.5)*x*x;
199     DSDV(8, 2,i)=(-4.5)+(36.)*y+(-0.405e2)*y*y+(-18.)*x*y+(4.5)*x*x;
200     DSDV(9, 2,i)=(9.)+(-45.)*y+(0.405e2)*y*y+(9.)*x*y+(-9.)*x*x;
201     }
202     #undef NUMSHAPES
203     #undef DIM
204     }
205    
206     /**************************************************************/
207    
208     void Finley_Shape_Tri10(int NumV,double* v,double* s,double* dsdv) {
209     #define NUMSHAPES 10
210     #define DIM 2
211     double x,y;
212     int i;
213     for (i=0;i<NumV;i++) {
214     x=V(1,i);
215     y=V(2,i);
216     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;
217     S(2,i)=(10.)*x+(-4.5)*x*x+(4.5)*x*x*x;
218     S(3,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y;
219     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;
220     S(5,i)=(-4.5)*x+(18.)*x*x+(-13.5)*x*x*x+(-13.5)*x*x*y+(4.5)*x*y;
221     S(6,i)=(13.5)*x*x*y+(-4.5)*x*y;
222     S(7,i)=(13.5)*x*y*y+(-4.5)*x*y;
223     S(8,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y+(-13.5)*x*y*y+(4.5)*x*y;
224     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;
225     S(10,i)=(-0.27e2)*x*y*y+(-0.27e2)*x*x*y+(0.27e2)*x*y;
226     DSDV(1, 1,i)=(-5.5)+(18.)*x+(-13.5)*x*x+(-13.5)*y*y+(-0.27e2)*x*y+(18.)*y;
227     DSDV(2, 1,i)=(10.)+(-9.)*x+(13.5)*x*x;
228     DSDV(3, 1,i)= 0.;
229     DSDV(4, 1,i)=(9.)+(-45.)*x+(0.405e2)*x*x+(13.5)*y*y+(0.54e2)*x*y+(-22.5)*y;
230     DSDV(5, 1,i)=(-4.5)+(36.)*x+(-0.405e2)*x*x+(-0.27e2)*x*y+(4.5)*y;
231     DSDV(6, 1,i)=(0.27e2)*x*y+(-4.5)*y;
232     DSDV(7, 1,i)=(13.5)*y*y+(-4.5)*y;
233     DSDV(8, 1,i)=(-13.5)*y*y+(4.5)*y;
234     DSDV(9, 1,i)=(0.27e2)*y*y+(0.27e2)*x*y+(-22.5)*y;
235     DSDV(10, 1,i)=(-0.27e2)*y*y+(-0.54e2)*x*y+(0.27e2)*y;
236     DSDV(1, 2,i)=(-5.5)+(18.)*y+(-13.5)*y*y+(-0.27e2)*x*y+(-13.5)*x*x+(18.)*x;
237     DSDV(2, 2,i)=0.;
238     DSDV(3, 2,i)=(10.)+(-9.)*y+(13.5)*y*y;
239     DSDV(4, 2,i)=(0.27e2)*x*y+(0.27e2)*x*x+(-22.5)*x;
240     DSDV(5, 2,i)=(-13.5)*x*x+(4.5)*x;
241     DSDV(6, 2,i)=(13.5)*x*x+(-4.5)*x;
242     DSDV(7, 2,i)=(0.27e2)*x*y+(-4.5)*x;
243     DSDV(8, 2,i)=(-4.5)+(36.)*y+(-0.405e2)*y*y+(-0.27e2)*x*y+(4.5)*x;
244     DSDV(9, 2,i)=(9.)+(-45.)*y+(0.405e2)*y*y+(0.54e2)*x*y+(13.5)*x*x+(-22.5)*x;
245     DSDV(10, 2,i)=(-0.54e2)*x*y+(-0.27e2)*x*x+(0.27e2)*x;
246     }
247     #undef NUMSHAPES
248     #undef DIM
249     }
250    
251     /**************************************************************/
252    
253     void Finley_Shape_Rec4(int NumV,double* v,double* s,double* dsdv) {
254     #define NUMSHAPES 4
255     #define DIM 2
256     double x,y;
257     int i;
258     for (i=0;i<NumV;i++) {
259     x=V(1,i);
260     y=V(2,i);
261     S(1,i)=(1.-x)*(1.-y);
262     S(2,i)= x*(1.-y);
263     S(3,i)= x*y;
264     S(4,i)= (1.-x)*y;
265     DSDV(1,1,i)=y-1.;
266     DSDV(1,2,i)=x-1.;
267     DSDV(2,1,i)= 1.-y;
268     DSDV(2,2,i)=-x;
269     DSDV(3,1,i)= y;
270     DSDV(3,2,i)= x;
271     DSDV(4,1,i)=-y;
272     DSDV(4,2,i)= 1.-x;
273     }
274     #undef NUMSHAPES
275     #undef DIM
276     }
277    
278     /**************************************************************/
279    
280     void Finley_Shape_Rec8(int NumV,double* v,double* s,double* dsdv) {
281     #define NUMSHAPES 8
282     #define DIM 2
283     double x,y;
284     int i;
285     for (i=0;i<NumV;i++) {
286     x=V(1,i);
287     y=V(2,i);
288     S(1,i)= 1. -3.*(x+y )+2.*x*x*(1. -y )+2.*y*y*(1. -x )+5.*x*y;
289     S(2,i)= x*(-1. -y+2.*x+2.*y*y -2.*x*y );
290     S(3,i)= x*y*(-3.+2.*(x+y ));
291     S(4,i)= y*(-1. -x+2.*y+2.*x*x -2.*x*y );
292     S(5,i)=4.*x*(1. -x -y+x* y);
293     S(6,i)= 4.*x*y*(1. -y );
294     S(7,i)= 4.*x*y*(1. -x );
295     S(8,i)=4.*y*(1. -x -y+x* y);
296     DSDV(1,1,i)=-3.+4.*x*(1. -y )+y*(5. -2.*y );
297     DSDV(1,2,i)=-3.+4.*y*(1. -x )+x*(5. -2.*x );
298     DSDV(2,1,i)=-1.+4.*x*(1. -y )+y*(-1.+2.*y );
299     DSDV(2,2,i)= x*(-1. -2.*x+4.*y);
300     DSDV(3,1,i)= y*(-3.+4.*x+2.*y);
301     DSDV(3,2,i)= x*(-3.+4.*y+2.*x);
302     DSDV(4,1,i)= y*(-1. -2.*y+4.*x);
303     DSDV(4,2,i)=-1.+4.*y*(1. -x )+x*(-1.+2.*x );
304     DSDV(5,1,i)= 4.*(1. -y )+8.*x*(y -1. );
305     DSDV(5,2,i)= 4.*x*(x -1.);
306     DSDV(6,1,i)= 4.*y*(1. -y );
307     DSDV(6,2,i)= 4.*x*(1. -2.*y );
308     DSDV(7,1,i)= 4.*y*(1. -2.*x );
309     DSDV(7,2,i)= 4.*x*(1. -x );
310     DSDV(8,1,i)= 4.*y*(y -1.);
311     DSDV(8,2,i)= 4.*(1. -x )+8.*y*(x -1. );
312     }
313     #undef NUMSHAPES
314     #undef DIM
315     }
316    
317     /**************************************************************/
318    
319     void Finley_Shape_Rec9(int NumV,double* v,double* s,double* dsdv) {
320     #define NUMSHAPES 9
321     #define DIM 2
322     double x,y;
323     int i;
324     for (i=0;i<NumV;i++) {
325     x=V(1,i);
326     y=V(2,i);
327     S(1,i)=(10.)+(-3.)*x+(9.)*x*y+(-3.)*y+(2.)*x*x+(-0.6e1)*x*y*y+(-0.6e1)*x*x*y+(2.)*y*y+(4.)*x*x*y*y;
328     S(2,i)=(-10.)*x+(3.)*x*y+(2.)*x*x+(-2.)*x*y*y+(-0.6e1)*x*x*y+(4.)*x*x*y*y;
329     S(3,i)=(10.)*x*y+(-2.)*x*y*y+(-2.)*x*x*y+(4.)*x*x*y*y;
330     S(4,i)=(3.)*x*y+(-10.)*y+(-0.6e1)*x*y*y+(-2.)*x*x*y+(2.)*y*y+(4.)*x*x*y*y;
331     S(5,i)=(4.)*x+(-0.12e2)*x*y+(-4.)*x*x+(8.)*x*y*y+(0.12e2)*x*x*y+(-8.)*x*x*y*y;
332     S(6,i)=(-4.)*x*y+(4.)*x*y*y+(8.)*x*x*y+(-8.)*x*x*y*y;
333     S(7,i)=(-4.)*x*y+(8.)*x*y*y+(4.)*x*x*y+(-8.)*x*x*y*y;
334     S(8,i)=(-0.12e2)*x*y+(4.)*y+(0.12e2)*x*y*y+(8.)*x*x*y+(-4.) *y*y+(-8.)*x*x*y*y;
335     S(9,i)=(0.16e2)*x*y+(-0.16e2)*x*y*y+(-0.16e2)*x*x*y+(0.16e2)*x*x*y*y;
336     DSDV(1, 1,i)=(-3.)+(9.)*y+(4.)*x+(-0.6e1)*y*y+(-0.12e2)*x*y+(8.)*x*y*y;
337     DSDV(2, 1,i)=(-10.)+(3.)*y+(4.)*x+(-2.)*y*y+(-0.12e2)*x*y+(8.)*x*y*y;
338     DSDV(3, 1,i)=(10.)*y+(-2.)*y*y+(-4.)*x*y+(8.)*x*y*y;
339     DSDV(4, 1,i)=(3.)*y+(-0.6e1)*y*y+(-4.)*x*y+(8.)*x*y*y;
340     DSDV(5, 1,i)=(4.)+(-0.12e2)*y+(-8.)*x+(8.)*y*y+(0.24e2)*x*y+(-0.16e2)*x*y*y;
341     DSDV(6, 1,i)=(-4.)*y+(4.)*y*y+(0.16e2)*x*y+(-0.16e2)*x*y*y;
342     DSDV(7, 1,i)=(-4.)*y+(8.)*y*y+(8.)*x*y+(-0.16e2)*x*y*y;
343     DSDV(8, 1,i)=(-0.12e2)*y+(0.12e2)*y*y+(0.16e2)*x*y+(-0.16e2)*x*y*y;
344     DSDV(9, 1,i)=(0.16e2)*y+(-0.16e2)*y*y+(-0.32e2)*x*y+(0.32e2)*x*y*y;
345     DSDV(1, 2,i)=(9.)*x+(-3.)+(-0.12e2)*x*y+(-0.6e1)*x*x+(4.)*y+(8.)*x*x*y;
346     DSDV(2, 2,i)=(3.)*x+(-4.)*x*y+(-0.6e1)*x*x+(8.)*x*x*y;
347     DSDV(3, 2,i)=(10.)*x+(-4.)*x*y+(-2.)*x*x+(8.)*x*x*y;
348     DSDV(4, 2,i)=(3.)*x+(-10.)+(-0.12e2)*x*y+(-2.)*x*x+(4.)*y+(8.)*x*x*y;
349     DSDV(5, 2,i)=(-0.12e2)*x+(0.16e2)*x*y+(0.12e2)*x*x+(-0.16e2)*x*x*y;
350     DSDV(6, 2,i)=(-4.)*x+(8.)*x*y+(8.)*x*x+(-0.16e2)*x*x*y;
351     DSDV(7, 2,i)=(-4.)*x+(0.16e2)*x*y+(4.)*x*x+(-0.16e2)*x*x*y;
352     DSDV(8, 2,i)=(-0.12e2)*x+(4.)+(0.24e2)*x*y+(8.)*x*x+(-8.)*y+(-0.16e2)*x*x*y;
353     DSDV(9, 2,i)=(0.16e2)*x+(-0.32e2)*x*y+(-0.16e2)*x*x+(0.32e2)*x*x*y;
354     }
355     #undef NUMSHAPES
356     #undef DIM
357     }
358    
359     /**************************************************************/
360    
361     void Finley_Shape_Rec12(int NumV,double* v,double* s,double* dsdv) {
362     #define NUMSHAPES 12
363     #define DIM 2
364     double x,y;
365     int i;
366     for (i=0;i<NumV;i++) {
367     x=V(1,i);
368     y=V(2,i);
369     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;
370     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;
371     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;
372     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;
373     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;
374     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;
375     S(7,i)=(9.)*x*y+(-22.5)*x*y*y+(13.5)*x*y*y*y;
376     S(8,i)=(-4.5)*x*y+(18.)*x*y*y+(-13.5)*x*y*y*y;
377     S(9,i)=(-4.5)*x*y+(-13.5)*x*x*x*y+(18.)*x*x*y;
378     S(10,i)=(9.)*x*y+(13.5)*x*x*x*y+(-22.5)*x*x*y;
379     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;
380     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;
381     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;
382     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;
383     DSDV(3,1,i)=(10.)*y+(-4.5)*y*y+(4.5)*y*y*y+(13.5)*x*x*y+(-9.)*x*y;
384     DSDV(4,1,i)=(-5.5)*y+(4.5)*y*y+(-4.5)*y*y*y+(-13.5)*x*x*y+(18.)*x*y;
385     DSDV(5,1,i)=(9.)+(-9.)*y+(-45.)*x+(0.405e2)*x*x+(-0.405e2)*x*x*y+(45.)*x*y;
386     DSDV(6,1,i)=(-4.5)+(4.5)*y+(36.)*x+(-0.405e2)*x*x+(0.405e2)*x*x*y+(-36.)*x*y;
387     DSDV(7,1,i)=(9.)*y+(-22.5)*y*y+(13.5)*y*y*y;
388     DSDV(8,1,i)=(-4.5)*y+(18.)*y*y+(-13.5)*y*y*y;
389     DSDV(9,1,i)=(-4.5)*y+(-0.405e2)*x*x*y+(36.)*x*y;
390     DSDV(10,1,i)=(9.)*y+(0.405e2)*x*x*y+(-45.)*x*y;
391     DSDV(11,1,i)=(4.5)*y+(-18.)*y*y+(13.5)*y*y*y;
392     DSDV(12,1,i)=(-9.)*y+(22.5)*y*y+(-13.5)*y*y*y;
393     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;
394     DSDV(2,2,i)=(-5.5)*x+(18.)*x*y+(-13.5)*x*y*y+(-4.5)*x*x*x+(4.5)*x*x;
395     DSDV(3,2,i)=(10.)*x+(-9.)*x*y+(13.5)*x*y*y+(4.5)*x*x*x+(-4.5)*x*x;
396     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;
397     DSDV(5,2,i)=(-9.)*x+(-13.5)*x*x*x+(22.5)*x*x;
398     DSDV(6,2,i)=(4.5)*x+(13.5)*x*x*x+(-18.)*x*x;
399     DSDV(7,2,i)=(9.)*x+(-45.)*x*y+(0.405e2)*x*y*y;
400     DSDV(8,2,i)=(-4.5)*x+(36.)*x*y+(-0.405e2)*x*y*y;
401     DSDV(9,2,i)=(-4.5)*x+(-13.5)*x*x*x+(18.)*x*x;
402     DSDV(10,2,i)=(9.)*x+(13.5)*x*x*x+(-22.5)*x*x;
403     DSDV(11,2,i)=(4.5)*x+(-4.5)+(-36.)*x*y+(0.405e2)*x*y*y+(-0.405e2)*y*y+(36.)*y;
404     DSDV(12,2,i)=(-9.)*x+(9.)+(45.)*x*y+(-0.405e2)*x*y*y+(0.405e2)*y*y+(-45.)*y;
405     }
406     #undef NUMSHAPES
407     #undef DIM
408     }
409    
410     /**************************************************************/
411    
412     void Finley_Shape_Rec16(int NumV,double* v,double* s,double* dsdv) {
413     #define NUMSHAPES 16
414     #define DIM 2
415     double x,y;
416     int i;
417     for (i=0;i<NumV;i++) {
418     x=V(1,i);
419     y=V(2,i);
420     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;
421     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;
422     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;
423     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;
424     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;
425     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;
426     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;
427     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;
428     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;
429     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;
430     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;
431     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;
432     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;
433     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;
434     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;
435     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;
436     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;
437     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;
438     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;
439     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;
440     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;
441     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;
442     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;
443     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;
444     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;
445     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;
446     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;
447     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;
448     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;
449     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;
450     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;
451     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;
452     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;
453     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;
454     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;
455     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;
456     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;
457     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;
458     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;
459     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;
460     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;
461     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;
462     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;
463     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;
464     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;
465     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;
466     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;
467     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;
468     }
469     #undef NUMSHAPES
470     #undef DIM
471     }
472    
473     /**************************************************************/
474    
475     void Finley_Shape_Tet4(int NumV,double* v,double* s,double* dsdv) {
476     #define NUMSHAPES 4
477     #define DIM 3
478     double x,y,z;
479     int i;
480     for (i=0;i<NumV;i++) {
481     x=V(1,i);
482     y=V(2,i);
483     z=V(3,i);
484     S(1,i)=1.-x-y-z;
485     S(2,i)=x;
486     S(3,i)=y;
487     S(4,i)=z;
488     DSDV(1,1,i)=-1.;
489     DSDV(1,2,i)=-1.;
490     DSDV(1,3,i)=-1.;
491     DSDV(2,1,i)= 1.;
492     DSDV(2,2,i)= 0.;
493     DSDV(2,3,i)= 0.;
494     DSDV(3,1,i)= 0.;
495     DSDV(3,2,i)= 1.;
496     DSDV(3,3,i)= 0.;
497     DSDV(4,1,i)= 0.;
498     DSDV(4,2,i)= 0.;
499     DSDV(4,3,i)= 1.;
500     }
501     #undef NUMSHAPES
502     #undef DIM
503     }
504    
505     /**************************************************************/
506    
507     void Finley_Shape_Tet10(int NumV,double* v,double* s,double* dsdv) {
508     #define NUMSHAPES 10
509     #define DIM 3
510     double x,y,z;
511     int i;
512     for (i=0;i<NumV;i++) {
513     x=V(1,i);
514     y=V(2,i);
515     z=V(3,i);
516     S(1,i) = (1.-x-y-z)*(1.-2.*x-2.*y-2.*z);
517     S(2,i) = x*(2.*x-1.);
518     S(3,i) = y*(2.*y-1.);
519     S(4,i) = z*(2.*z-1.);
520     S(5,i) = (1.-x-y-z)*4.*x;
521     S(6,i) = 4.*x*y;
522     S(7,i) = (1.-x-y-z)*4.*y;
523     S(8,i) = (1.-x-y-z)*4.*z;
524     S(9,i) = 4.*x*z;
525     S(10,i)= 4.*y*z;
526     DSDV(1,1,i)= -3.+4.*x+4.*y+4.*z;
527     DSDV(1,2,i)= -3.+4.*x+4.*y+4.*z;
528     DSDV(1,3,i)= -3.+4.*x+4.*y+4.*z;
529     DSDV(2,1,i)= -1.+4.*x;
530     DSDV(2,2,i)= 0.;
531     DSDV(2,3,i)= 0.;
532     DSDV(3,1,i)= 0.;
533     DSDV(3,2,i)= -1. +4.*y;
534     DSDV(3,3,i)= 0.;
535     DSDV(4,1,i)= 0.;
536     DSDV(4,2,i)= 0.;
537     DSDV(4,3,i)= -1. +4.*z;
538     DSDV(5,1,i)= 4. -8.*x -4.*y -4.*z;
539     DSDV(5,2,i)= -4.*x;
540     DSDV(5,3,i)= -4.*x;
541     DSDV(6,1,i)= 4.*y;
542     DSDV(6,2,i)= 4.*x;
543     DSDV(6,3,i)= 0.;
544     DSDV(7,1,i)= -4.*y;
545     DSDV(7,2,i)= 4. -4.*x -8.*y -4.*z;
546     DSDV(7,3,i)= -4.*y;
547     DSDV(8,1,i)= -4.*z;
548     DSDV(8,2,i)= -4.*z;
549     DSDV(8,3,i)= 4. -4.*x -4.*y -8.*z;
550     DSDV(9,1,i)= 4.*z;
551     DSDV(9,2,i)= 0.;
552     DSDV(9,3,i)= 4.*x;
553     DSDV(10,1,i)= 0.;
554     DSDV(10,2,i)= 4.*z;
555     DSDV(10,3,i)= 4.*y;
556     }
557     #undef NUMSHAPES
558     #undef DIM
559     }
560    
561     /**************************************************************/
562    
563     void Finley_Shape_Tet16(int NumV,double* v,double* s,double* dsdv) {
564     #define NUMSHAPES 16
565     #define DIM 3
566     double x,y,z;
567     int i;
568     for (i=0;i<NumV;i++) {
569     x=V(1,i);
570     y=V(2,i);
571     z=V(3,i);
572     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;
573     S(2,i)=(1.e0)*x+(-4.5)*x*x+(4.5)*x*x*x;
574     S(3,i)=(1.e0)*y+(4.5)*y*y*y+(-4.5)*y*y;
575     S(4,i)=(1.e0)*z+(-4.5)*z*z+(4.5)*z*z*z;
576     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;
577     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;
578     S(7,i)=(9.)*x*x*y+(-4.5)*x*y*y;
579     S(8,i)=(-4.5)*x*x*y+(9.)*x*y*y;
580     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;
581     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;
582     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;
583     S(12,i)=(9.)*x*x*z+(-4.5)*x*z*z;
584     S(13,i)=(9.)*y*y*z+(-4.5)*y*z*z;
585     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;
586     S(15,i)=(-4.5)*x*x*z+(9.)*x*z*z;
587     S(16,i)=(-4.5)*y*y*z+(9.)*y*z*z;
588     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;
589     DSDV(2, 1,i)=(1.e0)+(-9.)*x+(13.5)*x*x;
590     DSDV(3, 1,i)= 0.;
591     DSDV(4, 1,i)= 0.;
592     DSDV(5, 1,i)=(9.)+(-45.)*x+(0.405e2)*x*x+(9.)*x*y+(-9.)*y*y+(9.)*x*z+(-9.)*z*z;
593     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;
594     DSDV(7, 1,i)=(18.)*x*y+(-4.5)*y*y;
595     DSDV(8, 1,i)=(-9.)*x*y+(9.)*y*y;
596     DSDV(9, 1,i)=(9.)*x*y+(-9.)*y*y;
597     DSDV(10, 1,i)=(-18.)*x*y+(4.5)*y*y;
598     DSDV(11, 1,i)=(-18.)*x*z+(4.5)*z*z;
599     DSDV(12, 1,i)=(18.)*x*z+(-4.5)*z*z;
600     DSDV(13, 1,i)=0.;
601     DSDV(14, 1,i)=(9.)*x*z+(-9.)*z*z;
602     DSDV(15, 1,i)=(-9.)*x*z+(9.)*z*z;
603     DSDV(16, 1,i)=0.;
604     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;
605     DSDV(2, 2,i)=0.;
606     DSDV(3, 2,i)=(1.e0)+(13.5)*y*y+(-9.)*y;
607     DSDV(4, 2,i)=0.;
608     DSDV(5, 2,i)=(4.5)*x*x+(-18.)*x*y;
609     DSDV(6, 2,i)=(-9.)*x*x+(9.)*x*y;
610     DSDV(7, 2,i)=(9.)*x*x+(-9.)*x*y;
611     DSDV(8, 2,i)=(-4.5)*x*x+(18.)*x*y;
612     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;
613     DSDV(10, 2,i)=(9.)+(-9.)*x*x+(9.)*x*y+(0.405e2)*y*y+(-45.)*y+(9.)*y*z+(-9.)*z*z;
614     DSDV(11, 2,i)=(-18.)*y*z+(4.5)*z*z;
615     DSDV(12, 2,i)=0.;
616     DSDV(13, 2,i)=(18.)*y*z+(-4.5)*z*z;
617     DSDV(14, 2,i)=(9.)*y*z+(-9.)*z*z;
618     DSDV(15, 2,i)=0.;
619     DSDV(16, 2,i)=(-9.)*y*z+(9.)*z*z;
620     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;
621     DSDV(2, 3,i)= 0.;
622     DSDV(3, 3,i)= 0.;
623     DSDV(4, 3,i)=(1.e0)+(-9.)*z+(13.5)*z*z;
624     DSDV(5, 3,i)=(4.5)*x*x+(-18.)*x*z;
625     DSDV(6, 3,i)=(-9.)*x*x+(9.)*x*z;
626     DSDV(7, 3,i)= 0.;
627     DSDV(8, 3,i)= 0.;
628     DSDV(9, 3,i)=(-9.)*y*y+(9.)*y*z;
629     DSDV(10, 3,i)=(4.5)*y*y+(-18.)*y*z;
630     DSDV(11, 3,i)=(9.)+(-45.)*z+(-9.)*x*x+(-9.)*y*y+(0.405e2)*z*z+(.9e1)*x*z+(9.)*y*z;
631     DSDV(12, 3,i)=(9.)*x*x+(-9.)*x*z;
632     DSDV(13, 3,i)=(9.)*y*y+(-9.)*y*z;
633     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;
634     DSDV(15, 3,i)=(-4.5)*x*x+(18.)*x*z;
635     DSDV(16, 3,i)=(-4.5)*y*y+(18.)*y*z;
636     }
637     #undef NUMSHAPES
638     #undef DIM
639     }
640    
641     /**************************************************************/
642    
643     void Finley_Shape_Hex8(int NumV,double* v,double* s,double* dsdv) {
644     #define NUMSHAPES 8
645     #define DIM 3
646     double x,y,z;
647     int i;
648     for (i=0;i<NumV;i++) {
649     x=V(1,i);
650     y=V(2,i);
651     z=V(3,i);
652     S(1,i)=(1.-x)*(1.-y)*(1.-z);
653     S(2,i)= x*(1.-z)*(1.-y);
654     S(3,i)= x*(1.-z)*y;
655     S(4,i)= (1.-z)*(1.-x)*y;
656     S(5,i)= (1.-x)*z*(1.-y);
657     S(6,i)= x*z*(1.-y);
658     S(7,i)= x*y*z;
659     S(8,i)= y*z*(1.-x);
660     DSDV(1,1,i)= (1.-z)*(y-1.);
661     DSDV(1,2,i)= (1.-x)*(z-1.);
662     DSDV(1,3,i)= (1.-x)*(y-1.);
663     DSDV(2,1,i)= (1.-z)*(1.-y);
664     DSDV(2,2,i)= (z-1.)*x;
665     DSDV(2,3,i)= (y-1.)*x;
666     DSDV(3,1,i)= (1.-z)*y;
667     DSDV(3,2,i)= (1.-z)*x;
668     DSDV(3,3,i)=-y*x;
669     DSDV(4,1,i)= y*(z-1.);
670     DSDV(4,2,i)= (1.-z)*(1.-x);
671     DSDV(4,3,i)= y*(x-1.);
672     DSDV(5,1,i)= z*(y-1.);
673     DSDV(5,2,i)= z*(x-1.);
674     DSDV(5,3,i)= (x-1.)*(y-1.);
675     DSDV(6,1,i)= z*(1.-y);
676     DSDV(6,2,i)= -x*z;
677     DSDV(6,3,i)= (1.-y)*x;
678     DSDV(7,1,i)= y*z;
679     DSDV(7,2,i)= x*z;
680     DSDV(7,3,i)= x*y;
681     DSDV(8,1,i)=-y*z;
682     DSDV(8,2,i)= z*(1.-x);
683     DSDV(8,3,i)= y*(1.-x);
684     }
685     #undef NUMSHAPES
686     #undef DIM
687     }
688    
689     /**************************************************************/
690    
691     void Finley_Shape_Hex20(int NumV,double* v,double* s,double* dsdv) {
692     #define NUMSHAPES 20
693     #define DIM 3
694     double x,y,z;
695     int i;
696     for (i=0;i<NumV;i++) {
697     x=V(1,i);
698     y=V(2,i);
699     z=V(3,i);
700     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;
701     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;
702     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;
703     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;
704     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;
705     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;
706     S(7,i)=(-5.)*x*y*z+(2.)*x*x*y*z+(2.)*x*y*y*z+(2.)*x*y*z*z;
707     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;
708     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;
709     S(10,i)=(4.)*x*y+(-4.)*x*y*y+(-4.)*x*y*z+(4.)*x*y*y*z;
710     S(11,i)=(4.)*x*y+(-4.)*x*x*y+(-4.)*x*y*z+(4.)*x*x*y*z;
711     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;
712     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;
713     S(14,i)=(4.)*x*z+(-4.)*x*z*z+(-4.)*x*y*z+(4.)*x*y*z*z;
714     S(15,i)=(4.)*x*y*z+(-4.)*x*y*z*z;
715     S(16,i)=(4.)*y*z+(-4.)*y*z*z+(-4.)*x*y*z+(4.)*x*y*z*z;
716     S(17,i)=(4.)*x*z+(-4.)*x*x*z+(-4.)*x*y*z+(4.)*x*x*y*z;
717     S(18,i)=(4.)*x*y*z+(-4.)*x*y*y*z;
718     S(19,i)=(4.)*x*y*z+(-4.)*x*x*y*z;
719     S(20,i)=(4.)*y*z+(-4.)*y*y*z+(-4.)*x*y*z+(4.)*x*y*y*z;
720     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;
721     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;
722     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;
723     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;
724     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;
725     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;
726     DSDV(7,1,i)=(-5.)*y*z+(4.)*x*y*z+(2.)*y*y*z+(2.)*y*z*z;
727     DSDV(8,1,i)=1.*y*z+(4.)*x*y*z+(-2.)*y*y*z+(-2.)*y*z*z;
728     DSDV(9,1,i)=(4.)+(-4.)*y+(-4.)*z+(-8.)*x+(8.)*x*y+(8.)*x*z+(4.)*y*z+(-8.)*x*y*z;
729     DSDV(10,1,i)=(4.)*y+(-4.)*y*y+(-4.)*y*z+(4.)*y*y*z;
730     DSDV(11,1,i)=(4.)*y+(-8.)*x*y+(-4.)*y*z+(8.)*x*y*z;
731     DSDV(12,1,i)=(-4.)*y+(4.)*y*y+(4.)*y*z+(-4.)*y*y*z;
732     DSDV(13,1,i)=(-4.)*z+(4.)*z*z+(4.)*y*z+(-4.)*y*z*z;
733     DSDV(14,1,i)=(4.)*z+(-4.)*z*z+(-4.)*y*z+(4.)*y*z*z;
734     DSDV(15,1,i)=(4.)*y*z+(-4.)*y*z*z;
735     DSDV(16,1,i)=(-4.)*y*z+(4.)*y*z*z;
736     DSDV(17,1,i)=(4.)*z+(-8.)*x*z+(-4.)*y*z+(8.)*x*y*z;
737     DSDV(18,1,i)=(4.)*y*z+(-4.)*y*y*z;
738     DSDV(19,1,i)=(4.)*y*z+(-8.)*x*y*z;
739     DSDV(20,1,i)=(-4.)*y*z+(4.)*y*y*z;
740     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;
741     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;
742     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;
743     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;
744     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;
745     DSDV(6,2,i)=1.*x*z+(-2.)*x*x*z+(4.)*x*y*z+(-2.)*x*z*z;
746     DSDV(7,2,i)=(-5.)*x*z+(2.)*x*x*z+(4.)*x*y*z+(2.)*x*z*z;
747     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;
748     DSDV(9,2,i)=(-4.)*x+(4.)*x*x+(4.)*x*z+(-4.)*x*x*z;
749     DSDV(10,2,i)=(4.)*x+(-8.)*x*y+(-4.)*x*z+(8.)*x*y*z;
750     DSDV(11,2,i)=(4.)*x+(-4.)*x*x+(-4.)*x*z+(4.)*x*x*z;
751     DSDV(12,2,i)=(4.)+(-4.)*x+(-4.)*z+(-8.)*y+(8.)*x*y+(8.)*y*z+(4.)*x*z+(-8.)*x*y*z;
752     DSDV(13,2,i)=(-4.)*z+(4.)*z*z+(4.)*x*z+(-4.)*x*z*z;
753     DSDV(14,2,i)=(-4.)*x*z+(4.)*x*z*z;
754     DSDV(15,2,i)=(4.)*x*z+(-4.)*x*z*z;
755     DSDV(16,2,i)=(4.)*z+(-4.)*z*z+(-4.)*x*z+(4.)*x*z*z;
756     DSDV(17,2,i)=(-4.)*x*z+(4.)*x*x*z;
757     DSDV(18,2,i)=(4.)*x*z+(-8.)*x*y*z;
758     DSDV(19,2,i)=(4.)*x*z+(-4.)*x*x*z;
759     DSDV(20,2,i)=(4.)*z+(-8.)*y*z+(-4.)*x*z+(8.)*x*y*z;
760     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;
761     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;
762     DSDV(3,3,i)=1.*x*y+(-2.)*x*x*y+(-2.)*x*y*y+(4.)*x*y*z;
763     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;
764     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;
765     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;
766     DSDV(7,3,i)=(-5.)*x*y+(2.)*x*x*y+(2.)*x*y*y+(4.)*x*y*z;
767     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;
768     DSDV(9,3,i)=(-4.)*x+(4.)*x*x+(4.)*x*y+(-4.)*x*x*y;
769     DSDV(10,3,i)=(-4.)*x*y+(4.)*x*y*y;
770     DSDV(11,3,i)=(-4.)*x*y+(4.)*x*x*y;
771     DSDV(12,3,i)=(-4.)*y+(4.)*y*y+(4.)*x*y+(-4.)*x*y*y;
772     DSDV(13,3,i)=(4.)+(-4.)*x+(-4.)*y+(-8.)*z+(8.)*x*z+(8.)*y*z+(4.)*x*y+(-8.)*x*y*z;
773     DSDV(14,3,i)=(4.)*x+(-8.)*x*z+(-4.)*x*y+(8.)*x*y*z;
774     DSDV(15,3,i)=(4.)*x*y+(-8.)*x*y*z;
775     DSDV(16,3,i)=(4.)*y+(-8.)*y*z+(-4.)*x*y+(8.)*x*y*z;
776     DSDV(17,3,i)=(4.)*x+(-4.)*x*x+(-4.)*x*y+(4.)*x*x*y;
777     DSDV(18,3,i)=(4.)*x*y+(-4.)*x*y*y;
778     DSDV(19,3,i)=(4.)*x*y+(-4.)*x*x*y;
779     DSDV(20,3,i)=(4.)*y+(-4.)*y*y+(-4.)*x*y+(4.)*x*y*y;
780     }
781     #undef NUMSHAPES
782     #undef DIM
783     }
784    
785     /**************************************************************/
786    
787     void Finley_Shape_Hex32(int NumV,double* v,double* s,double* dsdv) {
788     #define NUMSHAPES 32
789     #define DIM 3
790     double x,y,z;
791     int i;
792     for (i=0;i<NumV;i++) {
793     x=V(1,i);
794     y=V(2,i);
795     z=V(3,i);
796     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;
797     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;
798     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;
799     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;
800     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;
801     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;
802     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;
803     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;
804     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;
805     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;
806     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;
807     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;
808     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;
809     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;
810     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;
811     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;
812     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;
813     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;
814     S(19,i)=(9.)*x*y*z+(-22.5)*x*y*z*z+(13.5)*x*y*z*z*z;
815     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;
816     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;
817     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;
818     S(23,i)=(-4.5)*x*y*z+(18.)*x*y*z*z+(-13.5)*x*y*z*z*z;
819     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;
820     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;
821     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;
822     S(27,i)=(9.)*x*y*z+(-22.5)*x*y*y*z+(13.5)*x*y*y*y*z;
823     S(28,i)=(-4.5)*x*y*z+(18.)*x*y*y*z+(-13.5)*x*y*y*y*z;
824     S(29,i)=(-4.5)*x*y*z+(-13.5)*x*x*x*y*z+(18.)*x*x*y*z;
825     S(30,i)=(9.)*x*y*z+(13.5)*x*x*x*y*z+(-22.5)*x*x*y*z;
826     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;
827     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;
828     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;
829     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;
830     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;
831     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;
832     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;
833     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;
834     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;
835     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;
836     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;
837     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;
838     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;
839     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;
840     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;
841     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;
842     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;
843     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;
844     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;
845     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;
846     DSDV(19, 1,i)=(9.)*y*z+(-22.5)*y*z*z+(13.5)*y*z*z*z;
847     DSDV(20, 1,i)=(-9.)*y*z+(22.5)*y*z*z+(-13.5)*y*z*z*z;
848     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;
849     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;
850     DSDV(23, 1,i)=(-4.5)*y*z+(18.)*y*z*z+(-13.5)*y*z*z*z;
851     DSDV(24, 1,i)=(4.5)*y*z+(-18.)*y*z*z+(13.5)*y*z*z*z;
852     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;
853     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;
854     DSDV(27, 1,i)=(9.)*y*z+(-22.5)*y*y*z+(13.5)*y*y*y*z;
855     DSDV(28, 1,i)=(-4.5)*y*z+(18.)*y*y*z+(-13.5)*y*y*y*z;
856     DSDV(29, 1,i)=(-4.5)*y*z+(-0.405e2)*x*x*y*z+(36.)*x*y*z;
857     DSDV(30, 1,i)=(9.)*y*z+(0.405e2)*x*x*y*z+(-45.)*x*y*z;
858     DSDV(31, 1,i)=(4.5)*y*z+(-18.)*y*y*z+(13.5)*y*y*y*z;
859     DSDV(32, 1,i)=(-9.)*y*z+(22.5)*y*y*z+(-13.5)*y*y*y*z;
860     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;
861     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;
862     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;
863     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;
864     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;
865     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;
866     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;
867     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;
868     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;
869     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;
870     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;
871     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;
872     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;
873     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;
874     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;
875     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;
876     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;
877     DSDV(18, 2,i)=(-9.)*x*z+(22.5)*x*z*z+(-13.5)*x*z*z*z;
878     DSDV(19, 2,i)=(9.)*x*z+(-22.5)*x*z*z+(13.5)*x*z*z*z;
879     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;
880     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;
881     DSDV(22, 2,i)=(4.5)*x*z+(-18.)*x*z*z+(13.5)*x*z*z*z;
882     DSDV(23, 2,i)=(-4.5)*x*z+(18.)*x*z*z+(-13.5)*x*z*z*z;
883     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;
884     DSDV(25, 2,i)=(-9.)*x*z+(-13.5)*x*x*x*z+(22.5)*x*x*z;
885     DSDV(26, 2,i)=(4.5)*x*z+(13.5)*x*x*x*z+(-18.)*x*x*z;
886     DSDV(27, 2,i)=(9.)*x*z+(-45.)*x*y*z+(0.405e2)*x*y*y*z;
887     DSDV(28, 2,i)=(-4.5)*x*z+(36.)*x*y*z+(-0.405e2)*x*y*y*z;
888     DSDV(29, 2,i)=(-4.5)*x*z+(-13.5)*x*x*x*z+(18.)*x*x*z;
889     DSDV(30, 2,i)=(9.)*x*z+(13.5)*x*x*x*z+(-22.5)*x*x*z;
890     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;
891     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;
892     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;
893     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;
894     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;
895     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;
896     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;
897     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;
898     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;
899     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;
900     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;
901     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;
902     DSDV(11, 3,i)=(-9.)*x*y+(22.5)*x*y*y+(-13.5)*x*y*y*y;
903     DSDV(12, 3,i)=(4.5)*x*y+(-18.)*x*y*y+(13.5)*x*y*y*y;
904     DSDV(13, 3,i)=(4.5)*x*y+(13.5)*x*x*x*y+(-18.)*x*x*y;
905     DSDV(14, 3,i)=(-9.)*x*y+(-13.5)*x*x*x*y+(22.5)*x*x*y;
906     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;
907     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;
908     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;
909     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;
910     DSDV(19, 3,i)=(9.)*x*y+(-45.)*x*y*z+(0.405e2)*x*y*z*z;
911     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;
912     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;
913     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;
914     DSDV(23, 3,i)=(-4.5)*x*y+(36.)*x*y*z+(-0.405e2)*x*y*z*z;
915     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;
916     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;
917     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;
918     DSDV(27, 3,i)=(9.)*x*y+(-22.5)*x*y*y+(13.5)*x*y*y*y;
919     DSDV(28, 3,i)=(-4.5)*x*y+(18.)*x*y*y+(-13.5)*x*y*y*y;
920     DSDV(29, 3,i)=(-4.5)*x*y+(-13.5)*x*x*x*y+(18.)*x*x*y;
921     DSDV(30, 3,i)=(9.)*x*y+(13.5)*x*x*x*y+(-22.5)*x*x*y;
922     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;
923     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;
924     }
925     #undef NUMSHAPES
926     #undef DIM
927     }
928     #undef V
929     #undef S
930     #undef DSDV
931    
932     /*
933     * $Log$
934 jgs 150 * Revision 1.2 2005/09/15 03:44:23 jgs
935     * Merge of development branch dev-02 back to main trunk on 2005-09-15
936 jgs 82 *
937 jgs 150 * Revision 1.1.1.1.6.1 2005/09/07 06:26:21 gross
938     * the solver from finley are put into the standalone package paso now
939     *
940     * Revision 1.1.1.1 2004/10/26 06:53:57 jgs
941     * initial import of project esys2
942     *
943 jgs 82 * Revision 1.1.1.1 2004/06/24 04:00:40 johng
944     * Initial version of eys using boost-python.
945     *
946     *
947     */

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26