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