ParMooN
 All Classes Functions Variables Friends Pages
BF_N_Q_Q3_2D.h
1 // ***********************************************************************
2 // Q3 element, nonconforming, 2D
3 // ***********************************************************************
4 
5 // base function values
6 static void N_Q_Q3_2D_Funct(double xi, double eta, double *values)
7 {
8  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
9  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
10  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
11  double t42, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55;
12  double t58, t59, t63, t65;
13 
14  switch(TDatabase::ParamDB->NC_TYPE)
15  {
16  case 2: // G. Matthies, many differences, family 2
17  t1 = 3.0/4.0*eta;
18  t2 = xi*xi;
19  t3 = 7.0/8.0*t2;
20  t4 = eta*eta;
21  t5 = t4*eta;
22  t6 = 5.0/4.0*t5;
23  t7 = t4*t4;
24  t8 = 35.0/24.0*t7;
25  t10 = -1.0/2.0+3.0/2.0*t2;
26  t12 = -1.0/2.0+3.0/2.0*t4;
27  t13 = t10*t12;
28  t14 = t13/6.0;
29  t15 = t2*t2;
30  t16 = 35.0/48.0*t15;
31  t18 = 3.0/4.0*xi;
32  t19 = 7.0/8.0*t4;
33  t20 = t2*xi;
34  t21 = 5.0/4.0*t20;
35  t22 = 35.0/48.0*t7;
36  t23 = 35.0/24.0*t15;
37  t27 = xi/8.0;
38  t29 = xi*eta/4.0;
39  t30 = xi*t4;
40  t31 = 3.0/8.0*t30;
41  t32 = 5.0/2.0*t5;
42  t34 = t32-3.0/2.0*eta;
43  t36 = xi*t34/4.0;
44  t37 = 5.0/2.0*t20;
45  t39 = t37-3.0/2.0*xi;
46  t41 = t39*eta/4.0;
47  t45 = xi*(3.0/8.0+35.0/8.0*t7-15.0/4.0*t4);
48  t46 = t45/4.0;
49  t47 = t39*t12;
50  t48 = t47/4.0;
51  t50 = eta/8.0;
52  t51 = t2*eta;
53  t52 = 3.0/8.0*t51;
54  t53 = t10*t34;
55  t54 = t53/4.0;
56  t58 = (3.0/8.0+35.0/8.0*t15-15.0/4.0*t2)*eta;
57  t59 = t58/4.0;
58  t63 = 7.0/4.0*t2;
59  t65 = 7.0/4.0*t4;
60 
61  values[0] = -5.0/48.0+t1+t3-t4-t6+t8-t14-t16;
62  values[1] = -5.0/48.0-t18-t2+t19+t21-t22-t14+t23;
63  values[2] = -5.0/48.0-t1+t3-t4+t6+t8-t14-t16;
64  values[3] = -5.0/48.0+t18-t2+t19-t21-t22-t14+t23;
65  values[4] = -t27-t29+t31-t36+t41+t46-t48;
66  values[5] = -t50+t29+t52-t36+t41-t54+t59;
67  values[6] = t27-t29-t31-t36+t41-t46+t48;
68  values[7] = t50+t29-t52-t36+t41+t54-t59;
69  values[8] = -7.0/48.0+t50+t63-t19-t52+t22+t14-t23-t54+t59;
70  values[9] = -7.0/48.0-t27-t3+t65+t31-t8+t14+t16-t46+t48;
71  values[10] = -7.0/48.0-t50+t63-t19+t52+t22+t14-t23+t54-t59;
72  values[11] = -7.0/48.0+t27-t3+t65-t31-t8+t14+t16+t46-t48;
73  values[12] = 17.0/12.0+t2/4.0+t4/4.0-t8+2.0/3.0*t13-t23;
74  values[13] = 11.0/4.0*xi-t37-3.0/4.0*t30-t45/2.0+t47/2.0;
75  values[14] = 11.0/4.0*eta-3.0/4.0*t51-t32+t53/2.0-t58/2.0;
76  break;
77 
78  case 3: // G. Matthies, only one difference, family 3
79  t1 = 3.0/4.0*eta;
80  t2 = eta*eta;
81  t3 = t2*eta;
82  t4 = 5.0/4.0*t3;
83  t5 = t2*t2;
84  t6 = 35.0/16.0*t5;
85  t7 = 15.0/8.0*t2;
86  t9 = 3.0/4.0*xi;
87  t10 = xi*xi;
88  t11 = t10*xi;
89  t12 = 5.0/4.0*t11;
90  t13 = t10*t10;
91  t14 = 35.0/16.0*t13;
92  t15 = 15.0/8.0*t10;
93  t20 = xi*eta/4.0;
94  t21 = 5.0/2.0*t3;
95  t25 = xi*(t21-3.0/2.0*eta)/4.0;
96  t26 = 5.0/2.0*t11;
97  t30 = (t26-3.0/2.0*xi)*eta/4.0;
98  t31 = 35.0/8.0*t5;
99  t32 = 15.0/4.0*t2;
100  t34 = xi*(3.0/8.0+t31-t32);
101  t35 = t34/2.0;
102  t37 = 35.0/8.0*t13;
103  t38 = 15.0/4.0*t10;
104  t40 = (3.0/8.0+t37-t38)*eta;
105  t41 = t40/2.0;
106  t45 = eta/4.0;
107  t46 = 21.0/8.0*t10;
108  t48 = 3.0/4.0*t10*eta;
109  t50 = xi/4.0;
110  t51 = 21.0/8.0*t2;
111  t53 = 3.0/4.0*xi*t2;
112 
113  values[0] = 3.0/16.0+t1-t4+t6-t7;
114  values[1] = 3.0/16.0-t9+t12+t14-t15;
115  values[2] = 3.0/16.0-t1+t4+t6-t7;
116  values[3] = 3.0/16.0+t9-t12+t14-t15;
117  values[4] = -t20-t25+t30+t35;
118  values[5] = t20-t25+t30+t41;
119  values[6] = -t20-t25+t30-t35;
120  values[7] = t20-t25+t30-t41;
121  values[8] = -7.0/16.0+t45+t46-t48-t14+t41;
122  values[9] = -7.0/16.0-t50+t51+t53-t6-t35;
123  values[10] = -7.0/16.0-t45+t46+t48-t14-t41;
124  values[11] = -7.0/16.0+t50+t51-t53-t6+t35;
125  values[12] = 1.0/4.0-t31+t32-t37+t38;
126  values[13] = 5.0/2.0*xi-t26-t34;
127  values[14] = 5.0/2.0*eta-t21-t40;
128  break;
129 
130  case 4: // Apel, Matthies, anisotrop, family 4
131  t1 = 3.0/4.0*eta;
132  t2 = xi*xi;
133  t3 = 21.0/8.0*t2;
134  t4 = eta*eta;
135  t5 = 3.0/4.0*t4;
136  t6 = t4*eta;
137  t7 = 5.0/4.0*t6;
138  t8 = 3.0/2.0*t2;
139  t10 = 3.0/2.0*t4;
140  t11 = -1.0/2.0+t10;
141  t12 = (-1.0/2.0+t8)*t11;
142  t13 = t12/2.0;
143  t14 = t2*t2;
144  t15 = 35.0/16.0*t14;
145  t17 = 3.0/4.0*xi;
146  t18 = t2*xi;
147  t19 = 5.0/4.0*t18;
148  t20 = 15.0/8.0*t2;
149  t24 = xi/4.0;
150  t26 = xi*eta/2.0;
151  t27 = xi*t4;
152  t28 = 3.0/4.0*t27;
153  t29 = 5.0/2.0*t18;
154  t31 = t29-3.0/2.0*xi;
155  t32 = t31*eta;
156  t33 = t32/2.0;
157  t34 = t31*t11;
158  t35 = t34/2.0;
159  t40 = (3.0/8.0+35.0/8.0*t14-15.0/4.0*t2)*eta;
160  t44 = eta/4.0;
161  t46 = 3.0/4.0*t2*eta;
162  t47 = t40/2.0;
163 
164  values[0] = -11.0/16.0+t1+t3+t5-t7-t13-t15;
165  values[1] = 3.0/16.0-t17+t19+t15-t20;
166  values[2] = -11.0/16.0-t1+t3+t5+t7-t13-t15;
167  values[3] = 3.0/16.0+t17-t19+t15-t20;
168  values[4] = -t24-t26+t28+t33-t35;
169  values[5] = t32/2.0+t40/2.0;
170  values[6] = t24-t26-t28+t33+t35;
171  values[7] = t32/2.0-t40/2.0;
172  values[8] = -7.0/16.0+t44+t3-t46-t15+t47;
173  values[9] = 7.0/16.0-t3+t13+t15+t35;
174  values[10] = -7.0/16.0-t44+t3+t46-t15-t47;
175  values[11] = 7.0/16.0-t3+t13+t15-t35;
176  values[12] = 2.0-t8-t10+t12;
177  values[13] = 3.0*xi-t29-3.0/2.0*t27+t34;
178  values[14] = 5.0/2.0*eta-5.0/2.0*t6-t40;
179  break;
180 
181  case 1: // Hennart, Jaffr'e, Roberts, 1988
182  t1 = 3.0/4.0*eta;
183  t2 = eta*eta;
184  t3 = 3.0/4.0*t2;
185  t4 = t2*eta;
186  t5 = 5.0/4.0*t4;
187  t6 = xi*xi;
188  t7 = 3.0/2.0*t6;
189  t8 = -1.0/2.0+t7;
190  t9 = 3.0/2.0*t2;
191  t10 = -1.0/2.0+t9;
192  t11 = t8*t10;
193  t12 = t11/4.0;
194  t13 = t6*t6;
195  t18 = (3.0/8.0+35.0/8.0*t13-15.0/4.0*t6)*t10/4.0;
196  t19 = t2*t2;
197  t24 = t8*(3.0/8.0+35.0/8.0*t19-15.0/4.0*t2)/4.0;
198  t26 = 3.0/4.0*xi;
199  t27 = 3.0/4.0*t6;
200  t28 = t6*xi;
201  t29 = 5.0/4.0*t28;
202  t33 = xi/4.0;
203  t35 = xi*eta/4.0;
204  t36 = xi*t2;
205  t37 = 3.0/4.0*t36;
206  t38 = 5.0/2.0*t28;
207  t40 = t38-3.0/2.0*xi;
208  t41 = t40*t10;
209  t42 = t41/2.0;
210  t44 = t40*eta/4.0;
211  t45 = 5.0/2.0*t4;
212  t47 = t45-3.0/2.0*eta;
213  t49 = xi*t47/4.0;
214  t51 = eta/4.0;
215  t52 = t6*eta;
216  t53 = 3.0/4.0*t52;
217  t54 = t8*t47;
218  t55 = t54/2.0;
219 
220  values[0] = -1.0/4.0+t1+t3-t5-t12-t18+t24;
221  values[1] = -1.0/4.0-t26+t27+t29-t12+t18-t24;
222  values[2] = -1.0/4.0-t1+t3+t5-t12-t18+t24;
223  values[3] = -1.0/4.0+t26+t27-t29-t12+t18-t24;
224  values[4] = -t33-t35+t37-t42+t44-t49;
225  values[5] = -t51+t35+t53-t55+t44-t49;
226  values[6] = t33-t35-t37+t42+t44-t49;
227  values[7] = t51+t35-t53+t55+t44-t49;
228  values[8] = t12-t55-t18+t24;
229  values[9] = t12+t42+t18-t24;
230  values[10] = t12+t55-t18+t24;
231  values[11] = t12-t42+t18-t24;
232  values[12] = 2.0-t7-t9+t11;
233  values[13] = 3.0*xi-t38-3.0/2.0*t36+t41;
234  values[14] = 3.0*eta-3.0/2.0*t52-t45+t54;
235  break;
236 
237  default:
238  OutPut("unknown NC_TYPE: " << TDatabase::ParamDB->NC_TYPE << endl);
239  }
240 }
241 
242 static void N_Q_Q3_2D_DeriveXi(double xi, double eta, double *values)
243 {
244  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t15, t16;
245  double t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29;
246  double t30, t31, t32, t33, t34, t35, t36, t37, t40, t41, t42, t45, t47;
247 
248  switch(TDatabase::ParamDB->NC_TYPE)
249  {
250  case 2: // G. Matthies, many differences, family 2
251  t1 = 7.0/4.0*xi;
252  t2 = eta*eta;
253  t4 = -1.0/2.0+3.0/2.0*t2;
254  t5 = xi*t4;
255  t6 = t5/2.0;
256  t7 = xi*xi;
257  t8 = t7*xi;
258  t9 = 35.0/12.0*t8;
259  t10 = t1-t6-t9;
260  t11 = 2.0*xi;
261  t12 = 15.0/4.0*t7;
262  t13 = 35.0/6.0*t8;
263  t16 = eta/8.0;
264  t17 = 9.0/16.0*t2;
265  t18 = t2*eta;
266  t19 = 5.0/8.0*t18;
267  t20 = 15.0/2.0*t7;
268  t21 = t20-3.0/2.0;
269  t23 = t21*eta/4.0;
270  t24 = t2*t2;
271  t25 = 35.0/32.0*t24;
272  t26 = t21*t4;
273  t27 = t26/4.0;
274  t29 = 5.0/8.0*eta;
275  t30 = xi*eta;
276  t31 = 3.0/4.0*t30;
277  t35 = xi*(5.0/2.0*t18-3.0/2.0*eta);
278  t36 = 3.0/4.0*t35;
279  t40 = (35.0/2.0*t8-15.0/2.0*xi)*eta;
280  t41 = t40/4.0;
281  t45 = 7.0/2.0*xi;
282  t47 = 21.0/16.0*t2;
283 
284  values[0] = t10;
285  values[1] = -3.0/4.0-t11+t12-t6+t13;
286  values[2] = t10;
287  values[3] = 3.0/4.0-t11-t12-t6+t13;
288  values[4] = -1.0/32.0+t16-t17-t19+t23+t25-t27;
289  values[5] = t29+t31-t19+t23-t36+t41;
290  values[6] = 1.0/32.0+t16+t17-t19+t23-t25+t27;
291  values[7] = t29-t31-t19+t23+t36-t41;
292  values[8] = t45-t31+t6-t13-t36+t41;
293  values[9] = -7.0/32.0-t1+t47+t6+t9-t25+t27;
294  values[10] = t45+t31+t6-t13+t36-t41;
295  values[11] = 7.0/32.0-t1-t47+t6+t9+t25-t27;
296  values[12] = xi/2.0+2.0*t5-t13;
297  values[13] = 41.0/16.0-t20+9.0/8.0*t2-35.0/16.0*t24+t26/2.0;
298  values[14] = -3.0/2.0*t30+3.0/2.0*t35-t40/2.0;
299  break;
300 
301  case 3: // G. Matthies, only one difference, family 3
302  t1 = xi*xi;
303  t2 = 15.0/4.0*t1;
304  t3 = t1*xi;
305  t4 = 35.0/4.0*t3;
306  t5 = 15.0/4.0*xi;
307  t8 = eta/8.0;
308  t9 = eta*eta;
309  t11 = 5.0/8.0*t9*eta;
310  t12 = 15.0/2.0*t1;
311  t15 = (t12-3.0/2.0)*eta/4.0;
312  t16 = t9*t9;
313  t17 = 35.0/16.0*t16;
314  t18 = 15.0/8.0*t9;
315  t20 = 5.0/8.0*eta;
316  t23 = 35.0/2.0*t3-15.0/2.0*xi;
317  t24 = t23*eta;
318  t25 = t24/2.0;
319  t29 = 21.0/4.0*xi;
320  t31 = 3.0/2.0*xi*eta;
321  t34 = -7.0/16.0+21.0/8.0*t9-t17;
322 
323  values[0] = 0.0;
324  values[1] = -3.0/4.0+t2+t4-t5;
325  values[2] = 0.0;
326  values[3] = 3.0/4.0-t2+t4-t5;
327  values[4] = t8-t11+t15+3.0/16.0+t17-t18;
328  values[5] = t20-t11+t15+t25;
329  values[6] = t8-t11+t15-3.0/16.0-t17+t18;
330  values[7] = t20-t11+t15-t25;
331  values[8] = t29-t31-t4+t25;
332  values[9] = t34;
333  values[10] = t29+t31-t4-t25;
334  values[11] = -t34;
335  values[12] = -t23;
336  values[13] = 17.0/8.0-t12-35.0/8.0*t16+15.0/4.0*t9;
337  values[14] = -t24;
338  break;
339 
340  case 4: // Apel, Matthies, anisotrop, family 4
341  t1 = 21.0/4.0*xi;
342  t2 = eta*eta;
343  t3 = 3.0/2.0*t2;
344  t4 = -1.0/2.0+t3;
345  t5 = xi*t4;
346  t6 = 3.0/2.0*t5;
347  t7 = xi*xi;
348  t8 = t7*xi;
349  t9 = 35.0/4.0*t8;
350  t10 = t1-t6-t9;
351  t11 = 15.0/4.0*t7;
352  t12 = 15.0/4.0*xi;
353  t15 = eta/2.0;
354  t16 = 3.0/4.0*t2;
355  t17 = 15.0/2.0*t7;
356  t18 = t17-3.0/2.0;
357  t19 = t18*eta;
358  t20 = t19/2.0;
359  t21 = t18*t4;
360  t22 = t21/2.0;
361  t27 = (35.0/2.0*t8-15.0/2.0*xi)*eta;
362  t32 = 3.0/2.0*xi*eta;
363  t33 = t27/2.0;
364 
365  values[0] = t10;
366  values[1] = -3.0/4.0+t11+t9-t12;
367  values[2] = t10;
368  values[3] = 3.0/4.0-t11+t9-t12;
369  values[4] = -1.0/4.0-t15+t16+t20-t22;
370  values[5] = t19/2.0+t27/2.0;
371  values[6] = 1.0/4.0-t15-t16+t20+t22;
372  values[7] = t19/2.0-t27/2.0;
373  values[8] = t1-t32-t9+t33;
374  values[9] = -t1+t6+t9+t22;
375  values[10] = t1+t32-t9-t33;
376  values[11] = -t1+t6+t9-t22;
377  values[12] = -3.0*xi+3.0*t5;
378  values[13] = 3.0-t17-t3+t21;
379  values[14] = -t27;
380  break;
381 
382  case 1: // Hennart, Jaffr'e, Roberts, 1988
383  t1 = eta*eta;
384  t2 = 3.0/2.0*t1;
385  t3 = -1.0/2.0+t2;
386  t4 = xi*t3;
387  t5 = 3.0/4.0*t4;
388  t6 = xi*xi;
389  t12 = (35.0/2.0*t6*xi-15.0/2.0*xi)*t3/4.0;
390  t13 = t1*t1;
391  t18 = 3.0/4.0*xi*(3.0/8.0+35.0/8.0*t13-15.0/4.0*t1);
392  t19 = -t5-t12+t18;
393  t20 = 3.0/2.0*xi;
394  t21 = 15.0/4.0*t6;
395  t24 = eta/8.0;
396  t25 = 3.0/4.0*t1;
397  t26 = 15.0/2.0*t6;
398  t27 = t26-3.0/2.0;
399  t28 = t27*t3;
400  t29 = t28/2.0;
401  t31 = t27*eta/4.0;
402  t32 = t1*eta;
403  t33 = 5.0/8.0*t32;
404  t35 = 5.0/8.0*eta;
405  t36 = xi*eta;
406  t37 = 3.0/2.0*t36;
407  t41 = xi*(5.0/2.0*t32-3.0/2.0*eta);
408  t42 = 3.0/2.0*t41;
409 
410  values[0] = t19;
411  values[1] = -3.0/4.0+t20+t21-t5+t12-t18;
412  values[2] = t19;
413  values[3] = 3.0/4.0+t20-t21-t5+t12-t18;
414  values[4] = -1.0/4.0+t24+t25-t29+t31-t33;
415  values[5] = t35+t37-t42+t31-t33;
416  values[6] = 1.0/4.0+t24-t25+t29+t31-t33;
417  values[7] = t35-t37+t42+t31-t33;
418  values[8] = t5-t42-t12+t18;
419  values[9] = t5+t29+t12-t18;
420  values[10] = t5+t42-t12+t18;
421  values[11] = t5-t29+t12-t18;
422  values[12] = -3.0*xi+3.0*t4;
423  values[13] = 3.0-t26-t2+t28;
424  values[14] = -3.0*t36+3.0*t41;
425  break;
426 
427  default:
428  OutPut("unknown NC_TYPE: " << TDatabase::ParamDB->NC_TYPE << endl);
429  }
430 }
431 
432 static void N_Q_Q3_2D_DeriveEta(double xi, double eta, double *values)
433 {
434  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
435  double t16, t17, t18, t19, t20, t22, t23, t24, t25, t26, t27, t28, t29;
436  double t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42;
437  double t45, t47;
438 
439  switch(TDatabase::ParamDB->NC_TYPE)
440  {
441  case 2: // G. Matthies, many differences, family 2
442  t1 = 2.0*eta;
443  t2 = eta*eta;
444  t3 = 15.0/4.0*t2;
445  t4 = t2*eta;
446  t5 = 35.0/6.0*t4;
447  t6 = xi*xi;
448  t8 = -1.0/2.0+3.0/2.0*t6;
449  t9 = t8*eta;
450  t10 = t9/2.0;
451  t12 = 7.0/4.0*eta;
452  t13 = 35.0/12.0*t4;
453  t14 = t12-t13-t10;
454  t16 = 5.0/8.0*xi;
455  t17 = xi*eta;
456  t18 = 3.0/4.0*t17;
457  t19 = 15.0/2.0*t2;
458  t20 = t19-3.0/2.0;
459  t22 = xi*t20/4.0;
460  t23 = t6*xi;
461  t24 = 5.0/8.0*t23;
462  t28 = xi*(35.0/2.0*t4-15.0/2.0*eta);
463  t29 = t28/4.0;
464  t33 = (5.0/2.0*t23-3.0/2.0*xi)*eta;
465  t34 = 3.0/4.0*t33;
466  t36 = xi/8.0;
467  t37 = 9.0/16.0*t6;
468  t38 = t8*t20;
469  t39 = t38/4.0;
470  t40 = t6*t6;
471  t41 = 35.0/32.0*t40;
472  t45 = 21.0/16.0*t6;
473  t47 = 7.0/2.0*eta;
474 
475  values[0] = 3.0/4.0-t1-t3+t5-t10;
476  values[1] = t14;
477  values[2] = -3.0/4.0-t1+t3+t5-t10;
478  values[3] = t14;
479  values[4] = -t16+t18-t22+t24+t29-t34;
480  values[5] = -1.0/32.0-t36-t37-t22+t24-t39+t41;
481  values[6] = -t16-t18-t22+t24-t29+t34;
482  values[7] = 1.0/32.0-t36+t37-t22+t24+t39-t41;
483  values[8] = 7.0/32.0-t12-t45+t13+t10-t39+t41;
484  values[9] = t47+t18-t5+t10-t29+t34;
485  values[10] = -7.0/32.0-t12+t45+t13+t10+t39-t41;
486  values[11] = t47-t18-t5+t10+t29-t34;
487  values[12] = eta/2.0-t5+2.0*t9;
488  values[13] = -3.0/2.0*t17-t28/2.0+3.0/2.0*t33;
489  values[14] = 41.0/16.0+9.0/8.0*t6-t19+t38/2.0-35.0/16.0*t40;
490  break;
491 
492  case 3: // G. Matthies, only one difference, family 3
493  t1 = eta*eta;
494  t2 = 15.0/4.0*t1;
495  t3 = t1*eta;
496  t4 = 35.0/4.0*t3;
497  t5 = 15.0/4.0*eta;
498  t8 = 5.0/8.0*xi;
499  t9 = 15.0/2.0*t1;
500  t12 = xi*(t9-3.0/2.0)/4.0;
501  t13 = xi*xi;
502  t15 = 5.0/8.0*t13*xi;
503  t18 = 35.0/2.0*t3-15.0/2.0*eta;
504  t19 = xi*t18;
505  t20 = t19/2.0;
506  t22 = xi/8.0;
507  t23 = t13*t13;
508  t24 = 35.0/16.0*t23;
509  t25 = 15.0/8.0*t13;
510  t30 = 7.0/16.0-21.0/8.0*t13+t24;
511  t31 = 21.0/4.0*eta;
512  t33 = 3.0/2.0*xi*eta;
513 
514  values[0] = 3.0/4.0-t2+t4-t5;
515  values[1] = 0.0;
516  values[2] = -3.0/4.0+t2+t4-t5;
517  values[3] = 0.0;
518  values[4] = -t8-t12+t15+t20;
519  values[5] = -t22-t12+t15+3.0/16.0+t24-t25;
520  values[6] = -t8-t12+t15-t20;
521  values[7] = -t22-t12+t15-3.0/16.0-t24+t25;
522  values[8] = t30;
523  values[9] = t31+t33-t4-t20;
524  values[10] = -t30;
525  values[11] = t31-t33-t4+t20;
526  values[12] = -t18;
527  values[13] = -t19;
528  values[14] = 17.0/8.0-t9-35.0/8.0*t23+15.0/4.0*t13;
529  break;
530 
531  case 4: // Apel, Matthies, anisotrop, family 4
532  t1 = 3.0/2.0*eta;
533  t2 = eta*eta;
534  t3 = 15.0/4.0*t2;
535  t4 = xi*xi;
536  t7 = (-1.0/2.0+3.0/2.0*t4)*eta;
537  t8 = 3.0/2.0*t7;
538  t11 = 5.0/4.0*xi;
539  t12 = xi*eta;
540  t13 = 3.0/2.0*t12;
541  t14 = xi*t4;
542  t15 = 5.0/4.0*t14;
543  t19 = (5.0/2.0*t14-3.0/2.0*xi)*eta;
544  t20 = 3.0/2.0*t19;
545  t22 = 3.0/4.0*xi;
546  t23 = t4*t4;
547  t24 = 35.0/16.0*t23;
548  t25 = 15.0/8.0*t4;
549  t30 = 7.0/16.0-21.0/8.0*t4+t24;
550 
551  values[0] = 3.0/4.0+t1-t3-t8;
552  values[1] = 0.0;
553  values[2] = -3.0/4.0+t1+t3-t8;
554  values[3] = 0.0;
555  values[4] = -t11+t13+t15-t20;
556  values[5] = 3.0/16.0-t22+t15+t24-t25;
557  values[6] = -t11-t13+t15+t20;
558  values[7] = t15-t22-3.0/16.0-t24+t25;
559  values[8] = t30;
560  values[9] = 3.0/2.0*t7+3.0/2.0*t19;
561  values[10] = -t30;
562  values[11] = 3.0/2.0*t7-3.0/2.0*t19;
563  values[12] = -3.0*eta+3.0*t7;
564  values[13] = -3.0*t12+3.0*t19;
565  values[14] = 17.0/8.0-15.0/2.0*t2-35.0/8.0*t23+15.0/4.0*t4;
566  break;
567 
568  case 1: // Hennart, Jaffr'e, Roberts, 1988
569  t1 = 3.0/2.0*eta;
570  t2 = eta*eta;
571  t3 = 15.0/4.0*t2;
572  t4 = xi*xi;
573  t5 = 3.0/2.0*t4;
574  t6 = -1.0/2.0+t5;
575  t7 = t6*eta;
576  t8 = 3.0/4.0*t7;
577  t9 = t4*t4;
578  t14 = 3.0/4.0*(3.0/8.0+35.0/8.0*t9-15.0/4.0*t4)*eta;
579  t20 = t6*(35.0/2.0*t2*eta-15.0/2.0*eta)/4.0;
580  t22 = -t8+t14-t20;
581  t24 = 5.0/8.0*xi;
582  t25 = xi*eta;
583  t26 = 3.0/2.0*t25;
584  t27 = t4*xi;
585  t31 = (5.0/2.0*t27-3.0/2.0*xi)*eta;
586  t32 = 3.0/2.0*t31;
587  t33 = 5.0/8.0*t27;
588  t34 = 15.0/2.0*t2;
589  t35 = t34-3.0/2.0;
590  t37 = xi*t35/4.0;
591  t39 = xi/8.0;
592  t40 = 3.0/4.0*t4;
593  t41 = t6*t35;
594  t42 = t41/2.0;
595 
596  values[0] = 3.0/4.0+t1-t3-t8-t14+t20;
597  values[1] = t22;
598  values[2] = -3.0/4.0+t1+t3-t8-t14+t20;
599  values[3] = t22;
600  values[4] = -t24+t26-t32+t33-t37;
601  values[5] = -1.0/4.0-t39+t40-t42+t33-t37;
602  values[6] = -t24-t26+t32+t33-t37;
603  values[7] = 1.0/4.0-t39-t40+t42+t33-t37;
604  values[8] = t8-t42-t14+t20;
605  values[9] = t8+t32+t14-t20;
606  values[10] = t8+t42-t14+t20;
607  values[11] = t8-t32+t14-t20;
608  values[12] = -3.0*eta+3.0*t7;
609  values[13] = -3.0*t25+3.0*t31;
610  values[14] = 3.0-t5-t34+t41;
611  break;
612 
613  default:
614  OutPut("unknown NC_TYPE: " << TDatabase::ParamDB->NC_TYPE << endl);
615  }
616 }
617 
618 static void N_Q_Q3_2D_DeriveXiXi(double xi, double eta, double *values)
619 {
620  double t1, t2, t3, t4, t5, t6, t7, t9, t10, t11, t12, t13, t14, t15, t16;
621  double t17, t18, t19, t20, t21, t22, t24, t26, t27, t28;
622 
623  switch(TDatabase::ParamDB->NC_TYPE)
624  {
625  case 2: // G. Matthies, many differences, family 2
626  t1 = eta*eta;
627  t2 = 3.0/4.0*t1;
628  t3 = xi*xi;
629  t4 = 35.0/4.0*t3;
630  t5 = 2.0-t2-t4;
631  t6 = 15.0/2.0*xi;
632  t7 = 35.0/2.0*t3;
633  t10 = xi*eta;
634  t13 = xi*(-1.0/2.0+3.0/2.0*t1);
635  t15 = 15.0/8.0*eta;
636  t16 = 15.0/4.0*t10;
637  t17 = t1*eta;
638  t18 = 15.0/8.0*t17;
639  t21 = (105.0/2.0*t3-15.0/2.0)*eta;
640  t22 = t21/4.0;
641  t26 = 3.0/8.0*eta;
642  t28 = 15.0/4.0*t13;
643 
644  values[0] = t5;
645  values[1] = -7.0/4.0+t6-t2+t7;
646  values[2] = t5;
647  values[3] = -7.0/4.0-t6-t2+t7;
648  values[4] = 15.0/4.0*t10-15.0/4.0*t13;
649  values[5] = t15+t16-t18+t22;
650  values[6] = 15.0/4.0*t10+15.0/4.0*t13;
651  values[7] = -t15+t16+t18-t22;
652  values[8] = 13.0/4.0+t26+t2-t7-t18+t22;
653  values[9] = -2.0+t2+t4+t28;
654  values[10] = 13.0/4.0-t26+t2-t7+t18-t22;
655  values[11] = -2.0+t2+t4-t28;
656  values[12] = -1.0/2.0+3.0*t1-t7;
657  values[13] = -15.0*xi+15.0/2.0*t13;
658  values[14] = -15.0/4.0*eta+15.0/4.0*t17-t21/2.0;
659  break;
660 
661  case 3: // G. Matthies, only one difference, family 3
662  t1 = 15.0/2.0*xi;
663  t2 = xi*xi;
664  t3 = 105.0/4.0*t2;
665  t7 = 15.0/4.0*xi*eta;
666  t9 = 105.0/2.0*t2-15.0/2.0;
667  t10 = t9*eta;
668  t11 = t10/2.0;
669  t14 = 3.0/2.0*eta;
670 
671  values[0] = 0.0;
672  values[1] = t1+t3-15.0/4.0;
673  values[2] = 0.0;
674  values[3] = -t1+t3-15.0/4.0;
675  values[4] = t7;
676  values[5] = t7+t11;
677  values[6] = t7;
678  values[7] = t7-t11;
679  values[8] = 21.0/4.0-t14-t3+t11;
680  values[9] = 0.0;
681  values[10] = 21.0/4.0+t14-t3-t11;
682  values[11] = 0.0;
683  values[12] = -t9;
684  values[13] = -15.0*xi;
685  values[14] = -t10;
686  break;
687 
688  case 4: // Apel, Matthies, anisotrop, family 4
689  t1 = eta*eta;
690  t2 = 9.0/4.0*t1;
691  t3 = xi*xi;
692  t4 = 105.0/4.0*t3;
693  t5 = 6.0-t2-t4;
694  t6 = 15.0/2.0*xi;
695  t9 = xi*eta;
696  t12 = xi*(-1.0/2.0+3.0/2.0*t1);
697  t14 = 15.0/2.0*t9;
698  t17 = (105.0/2.0*t3-15.0/2.0)*eta;
699  t18 = t17/2.0;
700  t22 = 3.0/2.0*eta;
701  t24 = 15.0/2.0*t12;
702 
703  values[0] = t5;
704  values[1] = t6+t4-15.0/4.0;
705  values[2] = t5;
706  values[3] = -t6+t4-15.0/4.0;
707  values[4] = 15.0/2.0*t9-15.0/2.0*t12;
708  values[5] = t14+t18;
709  values[6] = 15.0/2.0*t9+15.0/2.0*t12;
710  values[7] = t14-t18;
711  values[8] = 21.0/4.0-t22-t4+t18;
712  values[9] = -6.0+t2+t4+t24;
713  values[10] = 21.0/4.0+t22-t4-t18;
714  values[11] = -6.0+t2+t4-t24;
715  values[12] = -9.0/2.0+9.0/2.0*t1;
716  values[13] = -15.0*xi+15.0*t12;
717  values[14] = -t17;
718  break;
719 
720  case 1: // Hennart, Jaffr'e, Roberts, 1988
721  t1 = eta*eta;
722  t2 = 63.0/16.0*t1;
723  t3 = xi*xi;
724  t7 = -1.0/2.0+3.0/2.0*t1;
725  t9 = (105.0/2.0*t3-15.0/2.0)*t7/4.0;
726  t10 = t1*t1;
727  t11 = 105.0/32.0*t10;
728  t12 = 21.0/32.0-t2-t9+t11;
729  t13 = 15.0/2.0*xi;
730  t14 = 27.0/16.0*t1;
731  t17 = xi*t7;
732  t18 = 15.0/2.0*t17;
733  t19 = xi*eta;
734  t20 = 15.0/4.0*t19;
735  t22 = t1*eta;
736  t26 = 15.0/4.0*t22;
737  t27 = 9.0/4.0*eta;
738 
739  values[0] = t12;
740  values[1] = 51.0/32.0+t13+t14+t9-t11;
741  values[2] = t12;
742  values[3] = 51.0/32.0-t13+t14+t9-t11;
743  values[4] = -t18+t20;
744  values[5] = 15.0/4.0*eta-15.0/4.0*t22+15.0/4.0*t19;
745  values[6] = t18+t20;
746  values[7] = -15.0/4.0*eta+15.0/4.0*t22+15.0/4.0*t19;
747  values[8] = -3.0/32.0-t14-t26+t27-t9+t11;
748  values[9] = -21.0/32.0+t2+t18+t9-t11;
749  values[10] = -3.0/32.0-t14+t26-t27-t9+t11;
750  values[11] = -21.0/32.0+t2-t18+t9-t11;
751  values[12] = -9.0/2.0+9.0/2.0*t1;
752  values[13] = -15.0*xi+15.0*t17;
753  values[14] = -15.0/2.0*eta+15.0/2.0*t22;
754  break;
755 
756  default:
757  OutPut("unknown NC_TYPE: " << TDatabase::ParamDB->NC_TYPE << endl);
758  }
759 }
760 
761 static void N_Q_Q3_2D_DeriveXiEta(double xi, double eta, double *values)
762 {
763  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t15, t16;
764  double t17, t18, t19, t20, t21, t22, t23, t24, t25, t27, t30, t31;
765 
766  switch(TDatabase::ParamDB->NC_TYPE)
767  {
768  case 2: // G. Matthies, many differences, family 2
769  t1 = xi*eta;
770  t2 = 3.0/2.0*t1;
771  t3 = 9.0/8.0*eta;
772  t4 = eta*eta;
773  t5 = 15.0/8.0*t4;
774  t6 = xi*xi;
775  t7 = 15.0/8.0*t6;
776  t8 = t4*eta;
777  t9 = 35.0/8.0*t8;
778  t12 = (15.0/2.0*t6-3.0/2.0)*eta;
779  t13 = 3.0/4.0*t12;
780  t15 = 9.0/8.0*xi;
781  t18 = xi*(15.0/2.0*t4-3.0/2.0);
782  t19 = 3.0/4.0*t18;
783  t20 = t6*xi;
784  t21 = 35.0/8.0*t20;
785  t25 = 21.0/8.0*xi;
786  t27 = 21.0/8.0*eta;
787 
788  values[0] = -t2;
789  values[1] = -t2;
790  values[2] = -t2;
791  values[3] = -t2;
792  values[4] = -1.0/4.0-t3-t5+t7+t9-t13;
793  values[5] = 1.0/4.0-t15-t5+t7-t19+t21;
794  values[6] = -1.0/4.0+t3-t5+t7-t9+t13;
795  values[7] = 1.0/4.0+t15-t5+t7+t19-t21;
796  values[8] = -t25+t2-t19+t21;
797  values[9] = t27+t2-t9+t13;
798  values[10] = t25+t2+t19-t21;
799  values[11] = -t27+t2+t9-t13;
800  values[12] = 6.0*t1;
801  values[13] = 9.0/4.0*eta-35.0/4.0*t8+3.0/2.0*t12;
802  values[14] = 9.0/4.0*xi+3.0/2.0*t18-35.0/4.0*t20;
803  break;
804 
805  case 3: // G. Matthies, only one difference, family 3
806  t1 = eta*eta;
807  t2 = 15.0/8.0*t1;
808  t3 = xi*xi;
809  t4 = 15.0/8.0*t3;
810  t5 = t1*eta;
811  t6 = 35.0/4.0*t5;
812  t7 = 15.0/4.0*eta;
813  t9 = t3*xi;
814  t10 = 35.0/4.0*t9;
815  t11 = 15.0/4.0*xi;
816  t16 = -21.0/4.0*xi+t10;
817  t18 = 21.0/4.0*eta-t6;
818 
819  values[0] = 0.0;
820  values[1] = 0.0;
821  values[2] = 0.0;
822  values[3] = 0.0;
823  values[4] = -1.0/4.0-t2+t4+t6-t7;
824  values[5] = 1.0/4.0-t2+t4+t10-t11;
825  values[6] = -1.0/4.0-t2+t4-t6+t7;
826  values[7] = 1.0/4.0-t2+t4-t10+t11;
827  values[8] = t16;
828  values[9] = t18;
829  values[10] = -t16;
830  values[11] = -t18;
831  values[12] = 0.0;
832  values[13] = -35.0/2.0*t5+15.0/2.0*eta;
833  values[14] = -35.0/2.0*t9+15.0/2.0*xi;
834  break;
835 
836  case 4: // Apel, Matthies, anisotrop, family 4
837  t1 = xi*eta;
838  t2 = 9.0/2.0*t1;
839  t3 = 3.0/2.0*eta;
840  t4 = xi*xi;
841  t5 = 15.0/4.0*t4;
842  t8 = (15.0/2.0*t4-3.0/2.0)*eta;
843  t9 = 3.0/2.0*t8;
844  t11 = xi*t4;
845  t12 = 35.0/4.0*t11;
846  t13 = 15.0/4.0*xi;
847  t18 = -21.0/4.0*xi+t12;
848 
849  values[0] = -t2;
850  values[1] = 0.0;
851  values[2] = -t2;
852  values[3] = 0.0;
853  values[4] = -5.0/4.0+t3+t5-t9;
854  values[5] = -3.0/4.0+t5+t12-t13;
855  values[6] = -5.0/4.0-t3+t5+t9;
856  values[7] = t5-3.0/4.0-t12+t13;
857  values[8] = t18;
858  values[9] = t2+t9;
859  values[10] = -t18;
860  values[11] = t2-t9;
861  values[12] = 9.0*t1;
862  values[13] = -3.0*eta+3.0*t8;
863  values[14] = -35.0/2.0*t11+15.0/2.0*xi;
864  break;
865 
866  case 1: // Hennart, Jaffr'e, Roberts, 1988
867  t1 = xi*eta;
868  t2 = 9.0/4.0*t1;
869  t3 = xi*xi;
870  t9 = 3.0/4.0*(35.0/2.0*t3*xi-15.0/2.0*xi)*eta;
871  t10 = eta*eta;
872  t16 = 3.0/4.0*xi*(35.0/2.0*t10*eta-15.0/2.0*eta);
873  t17 = -t2-t9+t16;
874  t18 = -t2+t9-t16;
875  t19 = 3.0/2.0*eta;
876  t22 = (15.0/2.0*t3-3.0/2.0)*eta;
877  t23 = 3.0/2.0*t22;
878  t24 = 15.0/8.0*t3;
879  t25 = 15.0/8.0*t10;
880  t27 = 3.0/2.0*xi;
881  t30 = xi*(15.0/2.0*t10-3.0/2.0);
882  t31 = 3.0/2.0*t30;
883 
884  values[0] = t17;
885  values[1] = t18;
886  values[2] = t17;
887  values[3] = t18;
888  values[4] = -1.0/4.0+t19-t23+t24-t25;
889  values[5] = 1.0/4.0+t27-t31+t24-t25;
890  values[6] = -1.0/4.0-t19+t23+t24-t25;
891  values[7] = 1.0/4.0-t27+t31+t24-t25;
892  values[8] = t2-t31-t9+t16;
893  values[9] = t2+t23+t9-t16;
894  values[10] = t2+t31-t9+t16;
895  values[11] = t2-t23+t9-t16;
896  values[12] = 9.0*t1;
897  values[13] = -3.0*eta+3.0*t22;
898  values[14] = -3.0*xi+3.0*t30;
899  break;
900 
901  default:
902  OutPut("unknown NC_TYPE: " << TDatabase::ParamDB->NC_TYPE << endl);
903  }
904 }
905 
906 static void N_Q_Q3_2D_DeriveEtaEta(double xi, double eta, double *values)
907 {
908  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t14, t15, t16;
909  double t17, t18, t20, t21, t22, t26, t27, t28;
910 
911  switch(TDatabase::ParamDB->NC_TYPE)
912  {
913  case 2: // G. Matthies, many differences, family 2
914  t1 = 15.0/2.0*eta;
915  t2 = eta*eta;
916  t3 = 35.0/2.0*t2;
917  t4 = xi*xi;
918  t5 = 3.0/4.0*t4;
919  t7 = 35.0/4.0*t2;
920  t8 = 2.0-t7-t5;
921  t10 = 15.0/8.0*xi;
922  t11 = xi*eta;
923  t12 = 15.0/4.0*t11;
924  t15 = xi*(105.0/2.0*t2-15.0/2.0);
925  t16 = t15/4.0;
926  t17 = xi*t4;
927  t18 = 15.0/8.0*t17;
928  t22 = (-1.0/2.0+3.0/2.0*t4)*eta;
929  t26 = 15.0/4.0*t22;
930  t28 = 3.0/8.0*xi;
931 
932  values[0] = -7.0/4.0-t1+t3-t5;
933  values[1] = t8;
934  values[2] = -7.0/4.0+t1+t3-t5;
935  values[3] = t8;
936  values[4] = t10-t12+t16-t18;
937  values[5] = -15.0/4.0*t11-15.0/4.0*t22;
938  values[6] = -t10-t12-t16+t18;
939  values[7] = -15.0/4.0*t11+15.0/4.0*t22;
940  values[8] = -2.0+t7+t5-t26;
941  values[9] = 13.0/4.0-t28-t3+t5-t16+t18;
942  values[10] = -2.0+t7+t5+t26;
943  values[11] = 13.0/4.0+t28-t3+t5+t16-t18;
944  values[12] = -1.0/2.0-t3+3.0*t4;
945  values[13] = -15.0/4.0*xi-t15/2.0+15.0/4.0*t17;
946  values[14] = -15.0*eta+15.0/2.0*t22;
947  break;
948 
949  case 3: // G. Matthies, only one difference, family 3
950  t1 = 15.0/2.0*eta;
951  t2 = eta*eta;
952  t3 = 105.0/4.0*t2;
953  t7 = 15.0/4.0*xi*eta;
954  t9 = 105.0/2.0*t2-15.0/2.0;
955  t10 = xi*t9;
956  t11 = t10/2.0;
957  t14 = 3.0/2.0*xi;
958 
959  values[0] = -t1+t3-15.0/4.0;
960  values[1] = 0.0;
961  values[2] = t1+t3-15.0/4.0;
962  values[3] = 0.0;
963  values[4] = -t7+t11;
964  values[5] = -t7;
965  values[6] = -t7-t11;
966  values[7] = -t7;
967  values[8] = 0.0;
968  values[9] = 21.0/4.0+t14-t3-t11;
969  values[10] = 0.0;
970  values[11] = 21.0/4.0-t14-t3+t11;
971  values[12] = -t9;
972  values[13] = -t10;
973  values[14] = -15.0*eta;
974  break;
975 
976  case 4: // Apel, Matthies, anisotrop, family 4
977  t1 = 15.0/2.0*eta;
978  t2 = xi*xi;
979  t3 = 9.0/4.0*t2;
980  t6 = t2*xi;
981  t7 = xi-t6;
982  t8 = 15.0/4.0*t6;
983  t9 = 9.0/4.0*xi;
984 
985  values[0] = 9.0/4.0-t1-t3;
986  values[1] = 0.0;
987  values[2] = 9.0/4.0+t1-t3;
988  values[3] = 0.0;
989  values[4] = 15.0/4.0*t7;
990  values[5] = 0.0;
991  values[6] = -15.0/4.0*t7;
992  values[7] = 0.0;
993  values[8] = 0.0;
994  values[9] = -3.0/4.0+t3+t8-t9;
995  values[10] = 0.0;
996  values[11] = -3.0/4.0+t3-t8+t9;
997  values[12] = -9.0/2.0+9.0/2.0*t2;
998  values[13] = -15.0/2.0*t7;
999  values[14] = -15.0*eta;
1000  break;
1001 
1002  case 1: // Hennart, Jaffr'e, Roberts, 1988
1003  t1 = 15.0/2.0*eta;
1004  t2 = xi*xi;
1005  t3 = 27.0/16.0*t2;
1006  t4 = t2*t2;
1007  t5 = 105.0/32.0*t4;
1008  t7 = -1.0/2.0+3.0/2.0*t2;
1009  t8 = eta*eta;
1010  t12 = t7*(105.0/2.0*t8-15.0/2.0)/4.0;
1011  t14 = 63.0/16.0*t2;
1012  t15 = 21.0/32.0-t14+t5-t12;
1013  t17 = t2*xi;
1014  t18 = xi*eta;
1015  t20 = t7*eta;
1016  t21 = 15.0/2.0*t20;
1017  t22 = 15.0/4.0*t18;
1018  t27 = 15.0/4.0*t17;
1019  t28 = 9.0/4.0*xi;
1020 
1021  values[0] = 51.0/32.0-t1+t3-t5+t12;
1022  values[1] = t15;
1023  values[2] = 51.0/32.0+t1+t3-t5+t12;
1024  values[3] = t15;
1025  values[4] = 15.0/4.0*xi-15.0/4.0*t17-15.0/4.0*t18;
1026  values[5] = -t21-t22;
1027  values[6] = -15.0/4.0*xi+15.0/4.0*t17-15.0/4.0*t18;
1028  values[7] = t21-t22;
1029  values[8] = -21.0/32.0+t14-t21-t5+t12;
1030  values[9] = -3.0/32.0-t3+t27-t28+t5-t12;
1031  values[10] = -21.0/32.0+t14+t21-t5+t12;
1032  values[11] = -3.0/32.0-t3-t27+t28+t5-t12;
1033  values[12] = -9.0/2.0+9.0/2.0*t2;
1034  values[13] = -15.0/2.0*xi+15.0/2.0*t17;
1035  values[14] = -15.0*eta+15.0*t20;
1036  break;
1037 
1038  default:
1039  OutPut("unknown NC_TYPE: " << TDatabase::ParamDB->NC_TYPE << endl);
1040  }
1041 }
1042 
1043 static int N_Q_Q3_2D_ChangeJ0[1] = { 4 };
1044 static int N_Q_Q3_2D_ChangeJ1[1] = { 5 };
1045 static int N_Q_Q3_2D_ChangeJ2[1] = { 6 };
1046 static int N_Q_Q3_2D_ChangeJ3[1] = { 7 };
1047 
1048 static int *N_Q_Q3_2D_Change[4] = { N_Q_Q3_2D_ChangeJ0, N_Q_Q3_2D_ChangeJ1,
1049  N_Q_Q3_2D_ChangeJ2, N_Q_Q3_2D_ChangeJ3 };
1050 
1051 // ***********************************************************************
1052 
1053 TBaseFunct2D *BF_N_Q_Q3_2D_Obj = new TBaseFunct2D
1054  (15, BF_N_Q_Q3_2D, BFUnitSquare,
1055  N_Q_Q3_2D_Funct, N_Q_Q3_2D_DeriveXi,
1056  N_Q_Q3_2D_DeriveEta, N_Q_Q3_2D_DeriveXiXi,
1057  N_Q_Q3_2D_DeriveXiEta, N_Q_Q3_2D_DeriveEtaEta, 4, 3,
1058  1, N_Q_Q3_2D_Change);
Definition: BaseFunct2D.h:27
static TParamDB * ParamDB
Definition: Database.h:1134