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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26