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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 82 - (show annotations)
Tue Oct 26 06:53:54 2004 UTC (15 years ago) by jgs
Original Path: trunk/esys2/finley/src/finleyC/ShapeFunctions.c
File MIME type: text/plain
File size: 51227 byte(s)
Initial revision

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26