ParMooN
 All Classes Functions Variables Friends Pages
BF_C_H_UL1_3D.h
1 // ***********************************************************************
2 // Q1 element with bubble, conforming, 3D
3 // ***********************************************************************
4 
5 static void C_H_UL1_3D_Funct(double xi, double eta, double zeta,
6  double *values)
7 {
8  double t1, t2, t4, t5, t7, t8, t9, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33;
9 
10  t1 = zeta/8.0;
11  t2 = eta/8.0;
12  t4 = eta*zeta/8.0;
13  t5 = xi/8.0;
14  t7 = xi*zeta/8.0;
15  t8 = xi*eta;
16  t9 = t8/8.0;
17  t11 = t8*zeta/8.0;
18  t12 = zeta*zeta;
19  t13 = 27.0/64.0*t12;
20  t14 = eta*eta;
21  t15 = 27.0/64.0*t14;
22  t16 = t14*t12;
23  t17 = 27.0/64.0*t16;
24  t18 = xi*xi;
25  t19 = 27.0/64.0*t18;
26  t20 = t18*t12;
27  t21 = 27.0/64.0*t20;
28  t22 = t18*t14;
29  t23 = 27.0/64.0*t22;
30  t24 = t22*t12;
31  t25 = 27.0/64.0*t24;
32  t26 = -19.0/64.0-t1-t2+t4-t5+t7+t9-t11+t13+t15-t17+t19-t21-t23+t25;
33  t27 = -19.0/64.0-t1-t2+t4+t5-t7-t9+t11+t13+t15-t17+t19-t21-t23+t25;
34  t28 = -19.0/64.0-t1+t2-t4-t5+t7-t9+t11+t13+t15-t17+t19-t21-t23+t25;
35  t29 = -19.0/64.0-t1+t2-t4+t5-t7+t9-t11+t13+t15-t17+t19-t21-t23+t25;
36  t30 = -19.0/64.0+t1-t2-t4-t5-t7+t9+t11+t13+t15-t17+t19-t21-t23+t25;
37  t31 = -19.0/64.0+t1-t2-t4+t5+t7-t9-t11+t13+t15-t17+t19-t21-t23+t25;
38  t32 = -19.0/64.0+t1+t2+t4-t5-t7-t9-t11+t13+t15-t17+t19-t21-t23+t25;
39  t33 = -19.0/64.0+t1+t2+t4+t5+t7+t9+t11+t13+t15-t17+t19-t21-t23+t25;
40  values[0] = t26;
41  values[1] = t27;
42  values[2] = t28;
43  values[3] = t29;
44  values[4] = t30;
45  values[5] = t31;
46  values[6] = t32;
47  values[7] = t33;
48  values[8] = 27.0/64.0-27.0/64.0*t12-27.0/64.0*t14+27.0/64.0*t16-27.0/64.0*t18+
49 27.0/64.0*t20+27.0/64.0*t22-27.0/64.0*t24;
50 
51 }
52 
53 static void C_H_UL1_3D_DeriveXi(double xi, double eta, double zeta,
54  double *values)
55 {
56  double t1, t2, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13;
57 
58  t1 = zeta/8.0;
59  t2 = eta/8.0;
60  t4 = eta*zeta/8.0;
61  t5 = 27.0/32.0*xi;
62  t6 = zeta*zeta;
63  t7 = xi*t6;
64  t8 = 27.0/32.0*t7;
65  t9 = eta*eta;
66  t10 = xi*t9;
67  t11 = 27.0/32.0*t10;
68  t12 = t10*t6;
69  t13 = 27.0/32.0*t12;
70  values[0] = -1.0/8.0+t1+t2-t4+t5-t8-t11+t13;
71  values[1] = 1.0/8.0-t1-t2+t4+t5-t8-t11+t13;
72  values[2] = -1.0/8.0+t1-t2+t4+t5-t8-t11+t13;
73  values[3] = 1.0/8.0-t1+t2-t4+t5-t8-t11+t13;
74  values[4] = -1.0/8.0-t1+t2+t4+t5-t8-t11+t13;
75  values[5] = 1.0/8.0+t1-t2-t4+t5-t8-t11+t13;
76  values[6] = -1.0/8.0-t1-t2-t4+t5-t8-t11+t13;
77  values[7] = 1.0/8.0+t1+t2+t4+t5-t8-t11+t13;
78  values[8] = -27.0/32.0*xi+27.0/32.0*t7+27.0/32.0*t10-27.0/32.0*t12;
79 }
80 
81 static void C_H_UL1_3D_DeriveEta(double xi, double eta, double zeta,
82  double *values)
83 {
84  double t1, t2, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13;
85 
86  t1 = zeta/8.0;
87  t2 = xi/8.0;
88  t4 = xi*zeta/8.0;
89  t5 = 27.0/32.0*eta;
90  t6 = zeta*zeta;
91  t7 = eta*t6;
92  t8 = 27.0/32.0*t7;
93  t9 = xi*xi;
94  t10 = t9*eta;
95  t11 = 27.0/32.0*t10;
96  t12 = t10*t6;
97  t13 = 27.0/32.0*t12;
98  values[0] = -1.0/8.0+t1+t2-t4+t5-t8-t11+t13;
99  values[1] = -1.0/8.0+t1-t2+t4+t5-t8-t11+t13;
100  values[2] = 1.0/8.0-t1-t2+t4+t5-t8-t11+t13;
101  values[3] = 1.0/8.0-t1+t2-t4+t5-t8-t11+t13;
102  values[4] = -1.0/8.0-t1+t2+t4+t5-t8-t11+t13;
103  values[5] = -1.0/8.0-t1-t2-t4+t5-t8-t11+t13;
104  values[6] = 1.0/8.0+t1-t2-t4+t5-t8-t11+t13;
105  values[7] = 1.0/8.0+t1+t2+t4+t5-t8-t11+t13;
106  values[8] = -27.0/32.0*eta+27.0/32.0*t7+27.0/32.0*t10-27.0/32.0*t12;
107 }
108 
109 static void C_H_UL1_3D_DeriveZeta(double xi, double eta, double zeta,
110  double *values)
111 {
112  double t1, t2, t4, t5, t6, t7, t8, t9, t10, t11, t13, t14;
113 
114  t1 = eta/8.0;
115  t2 = xi/8.0;
116  t4 = xi*eta/8.0;
117  t5 = 27.0/32.0*zeta;
118  t6 = eta*eta;
119  t7 = t6*zeta;
120  t8 = 27.0/32.0*t7;
121  t9 = xi*xi;
122  t10 = t9*zeta;
123  t11 = 27.0/32.0*t10;
124  t13 = t9*t6*zeta;
125  t14 = 27.0/32.0*t13;
126  values[0] = -1.0/8.0+t1+t2-t4+t5-t8-t11+t14;
127  values[1] = -1.0/8.0+t1-t2+t4+t5-t8-t11+t14;
128  values[2] = -1.0/8.0-t1+t2+t4+t5-t8-t11+t14;
129  values[3] = -1.0/8.0-t1-t2-t4+t5-t8-t11+t14;
130  values[4] = 1.0/8.0-t1-t2+t4+t5-t8-t11+t14;
131  values[5] = 1.0/8.0-t1+t2-t4+t5-t8-t11+t14;
132  values[6] = 1.0/8.0+t1-t2-t4+t5-t8-t11+t14;
133  values[7] = 1.0/8.0+t1+t2+t4+t5-t8-t11+t14;
134  values[8] = -27.0/32.0*zeta+27.0/32.0*t7+27.0/32.0*t10-27.0/32.0*t13;
135 }
136 
137 static void C_H_UL1_3D_DeriveXiXi(double xi, double eta, double zeta,
138  double *values)
139 {
140  double t1, t2, t4;
141 
142  t1 = zeta*zeta;
143  t2 = eta*eta;
144  t4 = 1.0-t1-t2+t2*t1;
145  values[0] = 27.0/32.0*t4;
146  values[1] = 27.0/32.0*t4;
147  values[2] = 27.0/32.0*t4;
148  values[3] = 27.0/32.0*t4;
149  values[4] = 27.0/32.0*t4;
150  values[5] = 27.0/32.0*t4;
151  values[6] = 27.0/32.0*t4;
152  values[7] = 27.0/32.0*t4;
153  values[8] = -27.0/32.0*t4;
154 }
155 
156 static void C_H_UL1_3D_DeriveXiEta(double xi, double eta, double zeta,
157  double *values)
158 {
159  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10;
160 
161  t1 = zeta/8.0;
162  t2 = xi*eta;
163  t3 = 27.0/16.0*t2;
164  t4 = zeta*zeta;
165  t5 = t2*t4;
166  t6 = 27.0/16.0*t5;
167  t7 = 1.0/8.0-t1-t3+t6;
168  t8 = -1.0/8.0+t1-t3+t6;
169  t9 = 1.0/8.0+t1-t3+t6;
170  t10 = -1.0/8.0-t1-t3+t6;
171  values[0] = t7;
172  values[1] = t8;
173  values[2] = t8;
174  values[3] = t7;
175  values[4] = t9;
176  values[5] = t10;
177  values[6] = t10;
178  values[7] = t9;
179  values[8] = 27.0/16.0*t2-27.0/16.0*t5;
180 }
181 
182 static void C_H_UL1_3D_DeriveXiZeta(double xi, double eta, double zeta,
183  double *values)
184 {
185  double t1, t2, t3, t4, t6, t7, t8, t9, t10, t11;
186 
187  t1 = eta/8.0;
188  t2 = xi*zeta;
189  t3 = 27.0/16.0*t2;
190  t4 = eta*eta;
191  t6 = xi*t4*zeta;
192  t7 = 27.0/16.0*t6;
193  t8 = 1.0/8.0-t1-t3+t7;
194  t9 = -1.0/8.0+t1-t3+t7;
195  t10 = 1.0/8.0+t1-t3+t7;
196  t11 = -1.0/8.0-t1-t3+t7;
197  values[0] = t8;
198  values[1] = t9;
199  values[2] = t10;
200  values[3] = t11;
201  values[4] = t9;
202  values[5] = t8;
203  values[6] = t11;
204  values[7] = t10;
205  values[8] = 27.0/16.0*t2-27.0/16.0*t6;
206 }
207 
208 static void C_H_UL1_3D_DeriveEtaEta(double xi, double eta, double zeta,
209  double *values)
210 {
211  double t1, t2, t4;
212 
213  t1 = zeta*zeta;
214  t2 = xi*xi;
215  t4 = 1.0-t1-t2+t2*t1;
216  values[0] = 27.0/32.0*t4;
217  values[1] = 27.0/32.0*t4;
218  values[2] = 27.0/32.0*t4;
219  values[3] = 27.0/32.0*t4;
220  values[4] = 27.0/32.0*t4;
221  values[5] = 27.0/32.0*t4;
222  values[6] = 27.0/32.0*t4;
223  values[7] = 27.0/32.0*t4;
224  values[8] = -27.0/32.0*t4;
225 }
226 
227 static void C_H_UL1_3D_DeriveEtaZeta(double xi, double eta, double zeta,
228  double *values)
229 {
230  double t1, t2, t3, t4, t6, t7, t8, t9, t10, t11;
231 
232  t1 = xi/8.0;
233  t2 = eta*zeta;
234  t3 = 27.0/16.0*t2;
235  t4 = xi*xi;
236  t6 = t4*eta*zeta;
237  t7 = 27.0/16.0*t6;
238  t8 = 1.0/8.0-t1-t3+t7;
239  t9 = 1.0/8.0+t1-t3+t7;
240  t10 = -1.0/8.0+t1-t3+t7;
241  t11 = -1.0/8.0-t1-t3+t7;
242  values[0] = t8;
243  values[1] = t9;
244  values[2] = t10;
245  values[3] = t11;
246  values[4] = t10;
247  values[5] = t11;
248  values[6] = t8;
249  values[7] = t9;
250  values[8] = 27.0/16.0*t2-27.0/16.0*t6;
251 }
252 
253 static void C_H_UL1_3D_DeriveZetaZeta(double xi, double eta, double zeta,
254  double *values)
255 {
256  double t1, t2, t4;
257 
258  t1 = eta*eta;
259  t2 = xi*xi;
260  t4 = 1.0-t1-t2+t2*t1;
261  values[0] = 27.0/32.0*t4;
262  values[1] = 27.0/32.0*t4;
263  values[2] = 27.0/32.0*t4;
264  values[3] = 27.0/32.0*t4;
265  values[4] = 27.0/32.0*t4;
266  values[5] = 27.0/32.0*t4;
267  values[6] = 27.0/32.0*t4;
268  values[7] = 27.0/32.0*t4;
269  values[8] = -27.0/32.0*t4;
270 }
271 
272 TBaseFunct3D *BF_C_H_UL1_3D_Obj =
273 new TBaseFunct3D(9, BF_C_H_UL1_3D, BFUnitHexahedron,
274  C_H_UL1_3D_Funct, C_H_UL1_3D_DeriveXi,
275  C_H_UL1_3D_DeriveEta, C_H_UL1_3D_DeriveZeta,
276  C_H_UL1_3D_DeriveXiXi, C_H_UL1_3D_DeriveXiEta,
277  C_H_UL1_3D_DeriveXiZeta, C_H_UL1_3D_DeriveEtaEta,
278  C_H_UL1_3D_DeriveEtaZeta, C_H_UL1_3D_DeriveZetaZeta,
279  2, 1,
280  0, NULL);
Definition: BaseFunct3D.h:27