ParMooN
 All Classes Functions Variables Friends Pages
NF_D_T_P3_3D.h
1 // ***********************************************************************
2 // P3 element, discontinuous, 3D
3 //
4 // Author: Markus Wolff
5 //
6 // ***********************************************************************
7 
8 /* for all functionals */
9 static double NF_D_T_P3_3D_Xi[] = {
10  0.25,
11  0.206829931610673204083980900024961,
12  0.206829931610673204083980900024961,
13  0.379510205167980387748057299925117,
14  0.206829931610673204083980900024961,
15  0.821035883105467230906058078714215e-1,
16  0.821035883105467230906058078714215e-1,
17  0.753689235068359830728182576385735,
18  0.821035883105467230906058078714215e-1,
19  0.578195050519799725317663886414270e-2,
20  0.578195050519799725317663886414270e-2,
21  0.982654148484406008240470083407572,
22  0.578195050519799725317663886414270e-2,
23  0.50532740018894224425624528557907e-1,
24  0.449467259981105775574375471442092,
25  0.50532740018894224425624528557907e-1,
26  0.449467259981105775574375471442092,
27  0.50532740018894224425624528557907e-1,
28  0.449467259981105775574375471442092,
29  0.229066536116811139600408854554753,
30  0.356395827885340437169173969506114e-1,
31  0.229066536116811139600408854554753,
32  0.356395827885340437169173969506114e-1,
33  0.229066536116811139600408854554753,
34  0.229066536116811139600408854554753,
35  0.506227344977843677082264893939883,
36  0.506227344977843677082264893939883,
37  0.506227344977843677082264893939883,
38  0.229066536116811139600408854554753,
39  0.229066536116811139600408854554753,
40  0.356395827885340437169173969506114e-1,
41  0.366077495531974236787738546327104e-1,
42  0.190486041934633455699433285315099,
43  0.366077495531974236787738546327104e-1,
44  0.366077495531974236787738546327104e-1,
45  0.366077495531974236787738546327104e-1,
46  0.190486041934633455699433285315099,
47  0.736298458958971696943019005419480,
48  0.736298458958971696943019005419480,
49  0.736298458958971696943019005419480,
50  0.366077495531974236787738546327104e-1,
51  0.366077495531974236787738546327104e-1,
52  0.190486041934633455699433285315099
53 };
54 static double NF_D_T_P3_3D_Eta[] = {
55  0.25,
56  0.206829931610673204083980900024961,
57  0.379510205167980387748057299925117,
58  0.206829931610673204083980900024961,
59  0.206829931610673204083980900024961,
60  0.821035883105467230906058078714215e-1,
61  0.753689235068359830728182576385735,
62  0.821035883105467230906058078714215e-1,
63  0.821035883105467230906058078714215e-1,
64  0.578195050519799725317663886414270e-2,
65  0.982654148484406008240470083407572,
66  0.578195050519799725317663886414270e-2,
67  0.578195050519799725317663886414270e-2,
68  0.449467259981105775574375471442092,
69  0.50532740018894224425624528557907e-1,
70  0.50532740018894224425624528557907e-1,
71  0.449467259981105775574375471442092,
72  0.449467259981105775574375471442092,
73  0.50532740018894224425624528557907e-1,
74  0.356395827885340437169173969506114e-1,
75  0.229066536116811139600408854554753,
76  0.229066536116811139600408854554753,
77  0.506227344977843677082264893939883,
78  0.506227344977843677082264893939883,
79  0.506227344977843677082264893939883,
80  0.229066536116811139600408854554753,
81  0.356395827885340437169173969506114e-1,
82  0.229066536116811139600408854554753,
83  0.229066536116811139600408854554753,
84  0.356395827885340437169173969506114e-1,
85  0.229066536116811139600408854554753,
86  0.190486041934633455699433285315099,
87  0.366077495531974236787738546327104e-1,
88  0.366077495531974236787738546327104e-1,
89  0.736298458958971696943019005419480,
90  0.736298458958971696943019005419480,
91  0.736298458958971696943019005419480,
92  0.366077495531974236787738546327104e-1,
93  0.190486041934633455699433285315099,
94  0.366077495531974236787738546327104e-1,
95  0.190486041934633455699433285315099,
96  0.366077495531974236787738546327104e-1,
97  0.366077495531974236787738546327104e-1
98 };
99 static double NF_D_T_P3_3D_Zeta[] = {
100  0.25,
101  0.379510205167980387748057299925117,
102  0.206829931610673204083980900024961,
103  0.206829931610673204083980900024961,
104  0.206829931610673204083980900024961,
105  0.753689235068359830728182576385737,
106  0.82103588310546723090605807871423e-1,
107  0.821035883105467230906058078714225e-1,
108  0.821035883105467230906058078714225e-1,
109  0.982654148484406008240470083407571,
110  0.5781950505197997253176638864142e-2,
111  0.578195050519799725317663886414230e-2,
112  0.578195050519799725317663886414260e-2,
113  0.449467259981105775574375471442094,
114  0.449467259981105775574375471442094,
115  0.449467259981105775574375471442094,
116  0.50532740018894224425624528557909e-1,
117  0.50532740018894224425624528557909e-1,
118  0.50532740018894224425624528557909e-1,
119  0.506227344977843677082264893939883,
120  0.506227344977843677082264893939883,
121  0.506227344977843677082264893939883,
122  0.229066536116811139600408854554753,
123  0.229066536116811139600408854554753,
124  0.35639582788534043716917396950611e-1,
125  0.35639582788534043716917396950611e-1,
126  0.229066536116811139600408854554753,
127  0.229066536116811139600408854554753,
128  0.35639582788534043716917396950611e-1,
129  0.229066536116811139600408854554753,
130  0.229066536116811139600408854554753,
131  0.736298458958971696943019005419481,
132  0.736298458958971696943019005419481,
133  0.736298458958971696943019005419481,
134  0.190486041934633455699433285315100,
135  0.36607749553197423678773854632711e-1,
136  0.36607749553197423678773854632711e-1,
137  0.190486041934633455699433285315100,
138  0.36607749553197423678773854632711e-1,
139  0.366077495531974236787738546327106e-1,
140  0.36607749553197423678773854632711e-1,
141  0.190486041934633455699433285315100,
142  0.366077495531974236787738546327106e-1
143  };
144 
145 static double NF_D_T_P3_3D_Weights[]= {
146  -0.205001886586399158405865177642941e-1,
147  0.142503058228669012484397415358704e-1,
148  0.142503058228669012484397415358704e-1,
149  0.142503058228669012484397415358704e-1,
150  0.142503058228669012484397415358704e-1,
151  0.196703331313390098756280342445466e-2,
152  0.196703331313390098756280342445466e-2,
153  0.196703331313390098756280342445466e-2,
154  0.196703331313390098756280342445466e-2,
155  0.169834109092887379837744566704016e-3,
156  0.169834109092887379837744566704016e-3,
157  0.169834109092887379837744566704016e-3,
158  0.169834109092887379837744566704016e-3,
159  0.457968382446728180074351446297276e-2,
160  0.457968382446728180074351446297276e-2,
161  0.457968382446728180074351446297276e-2,
162  0.457968382446728180074351446297276e-2,
163  0.457968382446728180074351446297276e-2,
164  0.457968382446728180074351446297276e-2,
165  0.570448580868191850680255862783040e-2,
166  0.570448580868191850680255862783040e-2,
167  0.570448580868191850680255862783040e-2,
168  0.570448580868191850680255862783040e-2,
169  0.570448580868191850680255862783040e-2,
170  0.570448580868191850680255862783040e-2,
171  0.570448580868191850680255862783040e-2,
172  0.570448580868191850680255862783040e-2,
173  0.570448580868191850680255862783040e-2,
174  0.570448580868191850680255862783040e-2,
175  0.570448580868191850680255862783040e-2,
176  0.570448580868191850680255862783040e-2,
177  0.214051914116209259648335300092023e-2,
178  0.214051914116209259648335300092023e-2,
179  0.214051914116209259648335300092023e-2,
180  0.214051914116209259648335300092023e-2,
181  0.214051914116209259648335300092023e-2,
182  0.214051914116209259648335300092023e-2,
183  0.214051914116209259648335300092023e-2,
184  0.214051914116209259648335300092023e-2,
185  0.214051914116209259648335300092023e-2,
186  0.214051914116209259648335300092023e-2,
187  0.214051914116209259648335300092023e-2,
188  0.214051914116209259648335300092023e-2
189 };
190 
191 /* face 0 0 */
192 static double *NF_D_T_P3_3D_F0_Xi = NULL;
193 static double *NF_D_T_P3_3D_F0_Eta = NULL;
194 static double *NF_D_T_P3_3D_F0_Zeta = NULL;
195 
196 /* face 1 1 */
197 static double *NF_D_T_P3_3D_F1_Xi = NULL;
198 static double *NF_D_T_P3_3D_F1_Eta = NULL;
199 static double *NF_D_T_P3_3D_F1_Zeta = NULL;
200 
201 /* face 2 2 */
202 static double *NF_D_T_P3_3D_F2_Xi = NULL;
203 static double *NF_D_T_P3_3D_F2_Eta = NULL;
204 static double *NF_D_T_P3_3D_F2_Zeta = NULL;
205 
206 /* face 3 3 */
207 static double *NF_D_T_P3_3D_F3_Xi = NULL;
208 static double *NF_D_T_P3_3D_F3_Eta = NULL;
209 static double *NF_D_T_P3_3D_F3_Zeta = NULL;
210 
211 static double *NF_D_T_P3_3D_XiArray[4] = {
212  NF_D_T_P3_3D_F0_Xi,
213  NF_D_T_P3_3D_F1_Xi,
214  NF_D_T_P3_3D_F2_Xi,
215  NF_D_T_P3_3D_F3_Xi };
216 
217 static double *NF_D_T_P3_3D_EtaArray[4] = {
218  NF_D_T_P3_3D_F0_Eta,
219  NF_D_T_P3_3D_F1_Eta,
220  NF_D_T_P3_3D_F2_Eta,
221  NF_D_T_P3_3D_F3_Eta };
222 
223 static double *NF_D_T_P3_3D_ZetaArray[4] = {
224  NF_D_T_P3_3D_F0_Zeta,
225  NF_D_T_P3_3D_F1_Zeta,
226  NF_D_T_P3_3D_F2_Zeta,
227  NF_D_T_P3_3D_F3_Zeta };
228 
229 static double *NF_D_T_P3_3D_T = NULL;
230 static double *NF_D_T_P3_3D_S = NULL;
231 
232 void NF_D_T_P3_3D_EvalAll(TCollection *Coll, TBaseCell *Cell, double *PointValues, double *Functionals)
233 {
234  int i;
235  double s;
236 
237  s = 0;
238  //constant
239  for(i=0;i<43;i++)
240  s += PointValues[i] * NF_D_T_P3_3D_Weights[i];
241  Functionals[0] = s;
242 
243  s = 0;
244  //x
245  for(i=0;i<43;i++)
246  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Weights[i];
247  Functionals[1] = s;
248 
249  s = 0;
250  //y
251  for(i=0;i<43;i++)
252  s += PointValues[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Weights[i];
253  Functionals[2] = s;
254 
255  s = 0;
256  //z
257  for(i=0;i<43;i++)
258  s += PointValues[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
259  Functionals[3] = s;
260 
261  s = 0;
262  //x*x
263  for(i=0;i<43;i++)
264  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Weights[i];
265  Functionals[4] = s;
266 
267  s = 0;
268  //x*y
269  for(i=0;i<43;i++)
270  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Weights[i];
271  Functionals[5] = s;
272 
273  s = 0;
274  //x*z
275  for(i=0;i<43;i++)
276  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
277  Functionals[6] = s;
278 
279  s = 0;
280  //yy
281  for(i=0;i<43;i++)
282  s += PointValues[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Weights[i];
283  Functionals[7] = s;
284 
285  s = 0;
286  //y*z
287  for(i=0;i<43;i++)
288  s += PointValues[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
289  Functionals[8] = s;
290 
291  s = 0;
292  //zz
293  for(i=0;i<43;i++)
294  s += PointValues[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
295  Functionals[9] = s;
296 
297  s = 0;
298  //x*x*x
299  for(i=0;i<43;i++)
300  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Weights[i];
301  Functionals[10] = s;
302 
303  s = 0;
304  //x*x*y
305  for(i=0;i<43;i++)
306  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Weights[i];
307  Functionals[11] = s;
308 
309  s = 0;
310  //x*x*z
311  for(i=0;i<43;i++)
312  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
313  Functionals[12] = s;
314 
315  s = 0;
316  //x*y*y
317  for(i=0;i<43;i++)
318  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Weights[i];
319  Functionals[13] = s;
320 
321  s = 0;
322  //x*y*x
323  for(i=0;i<43;i++)
324  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
325  Functionals[14] = s;
326 
327  s = 0;
328  //x*z*z
329  for(i=0;i<43;i++)
330  s += PointValues[i] * NF_D_T_P3_3D_Xi[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
331  Functionals[15] = s;
332 
333  s = 0;
334  //y*y*y
335  for(i=0;i<43;i++)
336  s += PointValues[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Weights[i];
337  Functionals[16] = s;
338 
339  s = 0;
340  //y*y*z
341  for(i=0;i<43;i++)
342  s += PointValues[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
343  Functionals[17] = s;
344 
345  s = 0;
346  //y*z*z
347  for(i=0;i<43;i++)
348  s += PointValues[i] * NF_D_T_P3_3D_Eta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
349  Functionals[18] = s;
350 
351  s = 0;
352  //z*z*z
353  for(i=0;i<43;i++)
354  s += PointValues[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Zeta[i] * NF_D_T_P3_3D_Weights[i];
355  Functionals[19] = s;
356 }
357 
358 void NF_D_T_P3_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
359  double *PointValues, double *Functionals)
360 {
361 }
362 
363 static int NF_D_T_P3_3D_N_AllFunctionals = 20;
364 static int NF_D_T_P3_3D_N_PointsAll = 43;
365 static int NF_D_T_P3_3D_N_FaceFunctionals[] = { 0, 0, 0, 0 };
366 static int NF_D_T_P3_3D_N_PointsFace[] = { 0, 0, 0, 0 };
367 
368 TNodalFunctional3D *NF_D_T_P3_3D_Obj = new TNodalFunctional3D
369  (NF_D_T_P3_3D, NF_D_T_P3_3D_N_AllFunctionals,
370  NF_D_T_P3_3D_N_FaceFunctionals, NF_D_T_P3_3D_N_PointsAll,
371  NF_D_T_P3_3D_N_PointsFace,
372  NF_D_T_P3_3D_Xi, NF_D_T_P3_3D_Eta, NF_D_T_P3_3D_Zeta,
373  NF_D_T_P3_3D_XiArray, NF_D_T_P3_3D_EtaArray,
374  NF_D_T_P3_3D_ZetaArray,
375  NF_D_T_P3_3D_T, NF_D_T_P3_3D_S,
376  NF_D_T_P3_3D_EvalAll, NF_D_T_P3_3D_EvalFace);
Definition: NodalFunctional3D.h:21
store cells in an array, used by cell iterators
Definition: Collection.h:18
information for finite element data structure
Definition: BaseCell.h:25