ParMooN
 All Classes Functions Variables Friends Pages
NF_N_T_P2_3D.h
1 /*
2  TNodalFunctional3D(NodalFunctional3D id,
3  int n_allfunctionals, int *n_facefunctionals,
4  int B_T_Pointsall, int *B_T_Pointsface,
5  double *xi, double *eta, double *zeta,
6  double **xiarray, double **etaarray,
7  double **zetaarray,
8  DoubleFunctVect *evalall,
9  DoubleFunctVect *evalface);
10 */
11 
12 /* for all functionals */
13 static double NF_N_T_P2_3D_Xi[39] = {
14  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
15  0.1012865073234563, 0.05971587178976982, 0.4701420641051151,
16  0.4701420641051151,
17 
18  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
19  0.1012865073234563, 0.4701420641051151, 0.05971587178976982,
20  0.4701420641051151,
21 
22  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
23  0.1012865073234563, 0.05971587178976982, 0.4701420641051151,
24  0.4701420641051151,
25 
26  0.0, 0.0, 0.0,
27  0.0, 0.0, 0.0,
28  0.0,
29 
30  0.25,
31  0.07142857142857143, 0.7857142857142857,
32  0.07142857142857143, 0.07142857142857143,
33  0.3994035761667992, 0.3994035761667992,
34  0.1005964238332008, 0.1005964238332008,
35  0.1005964238332008, 0.3994035761667992 };
36 
37 static double NF_N_T_P2_3D_Eta[39] = {
38  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
39  0.1012865073234563, 0.4701420641051151, 0.5971587178976982E-1,
40  0.4701420641051151,
41 
42  0.0, 0.0, 0.0,
43  0.0, 0.0, 0.0,
44  0.0,
45 
46  0.3333333333333333, 0.1012865073234563, 0.1012865073234563,
47  0.7974269853530873, 0.4701420641051151, 0.4701420641051151,
48  0.5971587178976982E-1,
49 
50  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
51  0.1012865073234563, 0.5971587178976982E-1, 0.4701420641051151,
52  0.4701420641051151,
53 
54  0.25,
55  0.7142857142857143E-1, 0.7142857142857143E-1,
56  0.7857142857142857, 0.7142857142857143E-1,
57  0.3994035761667992, 0.1005964238332008,
58  0.3994035761667992, 0.1005964238332008,
59  0.3994035761667992, 0.1005964238332008 };
60 
61 static double NF_N_T_P2_3D_Zeta[39] = {
62  0.0, 0.0, 0.0,
63  0.0, 0.0, 0.0,
64  0.0,
65 
66  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
67  0.1012865073234563, 0.5971587178976982E-1, 0.4701420641051151,
68  0.4701420641051151,
69 
70  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
71  0.1012865073234563, 0.4701420641051151, 0.5971587178976982E-1,
72  0.4701420641051151,
73 
74  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
75  0.1012865073234563, 0.4701420641051151, 0.5971587178976982E-1,
76  0.4701420641051151,
77 
78  0.25,
79  0.7142857142857143E-1, 0.7142857142857143E-1,
80  0.7142857142857143E-1, 0.7857142857142857,
81  0.1005964238332008, 0.3994035761667992,
82  0.3994035761667992, 0.3994035761667992,
83  0.1005964238332008, 0.1005964238332008 };
84 
85 /* face 0 0 */
86 static double NF_N_T_P2_3D_F0_Xi[7] = {
87  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
88  0.1012865073234563, 0.05971587178976982, 0.4701420641051151,
89  0.4701420641051151 };
90 static double NF_N_T_P2_3D_F0_Eta[7] = {
91  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
92  0.1012865073234563, 0.4701420641051151, 0.5971587178976982E-1,
93  0.4701420641051151 };
94 static double NF_N_T_P2_3D_F0_Zeta[7] = {
95  0.0, 0.0, 0.0,
96  0.0, 0.0, 0.0,
97  0.0 };
98 
99 /* face 1 1 */
100 static double NF_N_T_P2_3D_F1_Xi[7] = {
101  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
102  0.1012865073234563, 0.4701420641051151, 0.05971587178976982,
103  0.4701420641051151 };
104 static double NF_N_T_P2_3D_F1_Eta[7] = {
105  0.0, 0.0, 0.0,
106  0.0, 0.0, 0.0,
107  0.0 };
108 static double NF_N_T_P2_3D_F1_Zeta[7] = {
109  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
110  0.1012865073234563, 0.5971587178976982E-1, 0.4701420641051151,
111  0.4701420641051151 };
112 
113 /* face 2 2 */
114 static double NF_N_T_P2_3D_F2_Xi[7] = {
115  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
116  0.1012865073234563, 0.05971587178976982, 0.4701420641051151,
117  0.4701420641051151 };
118 static double NF_N_T_P2_3D_F2_Eta[7] = {
119  0.3333333333333333, 0.1012865073234563, 0.1012865073234563,
120  0.7974269853530873, 0.4701420641051151, 0.4701420641051151,
121  0.5971587178976982E-1 };
122 static double NF_N_T_P2_3D_F2_Zeta[7] = {
123  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
124  0.1012865073234563, 0.4701420641051151, 0.5971587178976982E-1,
125  0.4701420641051151 };
126 
127 /* face 3 3 */
128 static double NF_N_T_P2_3D_F3_Xi[7] = {
129  0.0, 0.0, 0.0,
130  0.0, 0.0, 0.0,
131  0.0 };
132 static double NF_N_T_P2_3D_F3_Eta[7] = {
133  0.3333333333333333, 0.7974269853530873, 0.1012865073234563,
134  0.1012865073234563, 0.5971587178976982E-1, 0.4701420641051151,
135  0.4701420641051151 };
136 static double NF_N_T_P2_3D_F3_Zeta[7] = {
137  0.3333333333333333, 0.1012865073234563, 0.7974269853530873,
138  0.1012865073234563, 0.4701420641051151, 0.5971587178976982E-1,
139  0.4701420641051151 };
140 
141 static double *NF_N_T_P2_3D_XiArray[4] = {
142  NF_N_T_P2_3D_F0_Xi,
143  NF_N_T_P2_3D_F1_Xi,
144  NF_N_T_P2_3D_F2_Xi,
145  NF_N_T_P2_3D_F3_Xi };
146 
147 static double *NF_N_T_P2_3D_EtaArray[4] = {
148  NF_N_T_P2_3D_F0_Eta,
149  NF_N_T_P2_3D_F1_Eta,
150  NF_N_T_P2_3D_F2_Eta,
151  NF_N_T_P2_3D_F3_Eta };
152 
153 static double *NF_N_T_P2_3D_ZetaArray[4] = {
154  NF_N_T_P2_3D_F0_Zeta,
155  NF_N_T_P2_3D_F1_Zeta,
156  NF_N_T_P2_3D_F2_Zeta,
157  NF_N_T_P2_3D_F3_Zeta };
158 
159 
160 static double NF_N_T_P2_3D_T[7] =
161  { 0.333333333333333333333333333333333,
162  0.797426985353087322398025276169754,
163  0.101286507323456338800987361915123,
164  0.101286507323456338800987361915123,
165  0.059715871789769820459117580973106,
166  0.470142064105115089770441209513447,
167  0.470142064105115089770441209513447 };
168 
169 static double NF_N_T_P2_3D_S[7] =
170  { 0.333333333333333333333333333333333,
171  0.101286507323456338800987361915123,
172  0.797426985353087322398025276169754,
173  0.101286507323456338800987361915123,
174  0.470142064105115089770441209513447,
175  0.059715871789769820459117580973106,
176  0.470142064105115089770441209513447 };
177 
178 static double NF_N_T_P2_3D_W0[7] = {
179  0.375E-1,
180  0.6377969866281863E-2,
181  0.6377969866281863E-2,
182  0.5021365053984985E-1,
183  0.3112203013371814E-1,
184  0.3112203013371814E-1,
185  0.3953016126816816E-2 };
186 
187 static double NF_N_T_P2_3D_W1[7] = {
188  0.375E-1,
189  0.5021365053984985E-1,
190  0.6377969866281863E-2,
191  0.6377969866281863E-2,
192  0.3953016126816816E-2,
193  0.3112203013371814E-1,
194  0.3112203013371814E-1 };
195 
196 static double NF_N_T_P2_3D_W2[7] = {
197  0.375E-1,
198  0.6377969866281863E-2,
199  0.5021365053984985E-1,
200  0.6377969866281863E-2,
201  0.3112203013371814E-1,
202  0.3953016126816816E-2,
203  0.3112203013371814E-1 };
204 
205 static double NF_N_T_P2_3D_W[11] = {
206  -.0131555555555555555555555555556,
207  .00762222222222222222222222222222,
208  .00762222222222222222222222222222,
209  .00762222222222222222222222222222,
210  .00762222222222222222222222222222,
211  .0248888888888888888888888888889,
212  .0248888888888888888888888888889,
213  .0248888888888888888888888888889,
214  .0248888888888888888888888888889,
215  .0248888888888888888888888888889,
216  .0248888888888888888888888888889 };
217 
218 void NF_N_T_P2_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
219  double *PointValues, double *Functionals)
220 {
221  Functionals[0] = ( NF_N_T_P2_3D_W0[0]*PointValues[0]
222  +NF_N_T_P2_3D_W0[1]*PointValues[1]
223  +NF_N_T_P2_3D_W0[2]*PointValues[2]
224  +NF_N_T_P2_3D_W0[3]*PointValues[3]
225  +NF_N_T_P2_3D_W0[4]*PointValues[4]
226  +NF_N_T_P2_3D_W0[5]*PointValues[5]
227  +NF_N_T_P2_3D_W0[6]*PointValues[6])*2;
228  Functionals[1] = ( NF_N_T_P2_3D_W1[0]*PointValues[0]
229  +NF_N_T_P2_3D_W1[1]*PointValues[1]
230  +NF_N_T_P2_3D_W1[2]*PointValues[2]
231  +NF_N_T_P2_3D_W1[3]*PointValues[3]
232  +NF_N_T_P2_3D_W1[4]*PointValues[4]
233  +NF_N_T_P2_3D_W1[5]*PointValues[5]
234  +NF_N_T_P2_3D_W1[6]*PointValues[6])*2;
235  Functionals[2] = ( NF_N_T_P2_3D_W2[0]*PointValues[0]
236  +NF_N_T_P2_3D_W2[1]*PointValues[1]
237  +NF_N_T_P2_3D_W2[2]*PointValues[2]
238  +NF_N_T_P2_3D_W2[3]*PointValues[3]
239  +NF_N_T_P2_3D_W2[4]*PointValues[4]
240  +NF_N_T_P2_3D_W2[5]*PointValues[5]
241  +NF_N_T_P2_3D_W2[6]*PointValues[6])*2;
242 
243  Functionals[3] = ( NF_N_T_P2_3D_W0[0]*PointValues[7]
244  +NF_N_T_P2_3D_W0[1]*PointValues[8]
245  +NF_N_T_P2_3D_W0[2]*PointValues[9]
246  +NF_N_T_P2_3D_W0[3]*PointValues[10]
247  +NF_N_T_P2_3D_W0[4]*PointValues[11]
248  +NF_N_T_P2_3D_W0[5]*PointValues[12]
249  +NF_N_T_P2_3D_W0[6]*PointValues[13])*2;
250  Functionals[4] = ( NF_N_T_P2_3D_W1[0]*PointValues[7]
251  +NF_N_T_P2_3D_W1[1]*PointValues[8]
252  +NF_N_T_P2_3D_W1[2]*PointValues[9]
253  +NF_N_T_P2_3D_W1[3]*PointValues[10]
254  +NF_N_T_P2_3D_W1[4]*PointValues[11]
255  +NF_N_T_P2_3D_W1[5]*PointValues[12]
256  +NF_N_T_P2_3D_W1[6]*PointValues[13])*2;
257  Functionals[5] = ( NF_N_T_P2_3D_W2[0]*PointValues[7]
258  +NF_N_T_P2_3D_W2[1]*PointValues[8]
259  +NF_N_T_P2_3D_W2[2]*PointValues[9]
260  +NF_N_T_P2_3D_W2[3]*PointValues[10]
261  +NF_N_T_P2_3D_W2[4]*PointValues[11]
262  +NF_N_T_P2_3D_W2[5]*PointValues[12]
263  +NF_N_T_P2_3D_W2[6]*PointValues[13])*2;
264 
265  Functionals[6] = ( NF_N_T_P2_3D_W0[0]*PointValues[14]
266  +NF_N_T_P2_3D_W0[1]*PointValues[15]
267  +NF_N_T_P2_3D_W0[2]*PointValues[16]
268  +NF_N_T_P2_3D_W0[3]*PointValues[17]
269  +NF_N_T_P2_3D_W0[4]*PointValues[18]
270  +NF_N_T_P2_3D_W0[5]*PointValues[19]
271  +NF_N_T_P2_3D_W0[6]*PointValues[20])*2;
272  Functionals[7] = ( NF_N_T_P2_3D_W1[0]*PointValues[14]
273  +NF_N_T_P2_3D_W1[1]*PointValues[15]
274  +NF_N_T_P2_3D_W1[2]*PointValues[16]
275  +NF_N_T_P2_3D_W1[3]*PointValues[17]
276  +NF_N_T_P2_3D_W1[4]*PointValues[18]
277  +NF_N_T_P2_3D_W1[5]*PointValues[19]
278  +NF_N_T_P2_3D_W1[6]*PointValues[20])*2;
279  Functionals[8] = ( NF_N_T_P2_3D_W2[0]*PointValues[14]
280  +NF_N_T_P2_3D_W2[1]*PointValues[15]
281  +NF_N_T_P2_3D_W2[2]*PointValues[16]
282  +NF_N_T_P2_3D_W2[3]*PointValues[17]
283  +NF_N_T_P2_3D_W2[4]*PointValues[18]
284  +NF_N_T_P2_3D_W2[5]*PointValues[19]
285  +NF_N_T_P2_3D_W2[6]*PointValues[20])*2;
286 
287  Functionals[9] = ( NF_N_T_P2_3D_W0[0]*PointValues[21]
288  +NF_N_T_P2_3D_W0[1]*PointValues[22]
289  +NF_N_T_P2_3D_W0[2]*PointValues[23]
290  +NF_N_T_P2_3D_W0[3]*PointValues[24]
291  +NF_N_T_P2_3D_W0[4]*PointValues[25]
292  +NF_N_T_P2_3D_W0[5]*PointValues[26]
293  +NF_N_T_P2_3D_W0[6]*PointValues[27])*2;
294  Functionals[10] = ( NF_N_T_P2_3D_W1[0]*PointValues[21]
295  +NF_N_T_P2_3D_W1[1]*PointValues[22]
296  +NF_N_T_P2_3D_W1[2]*PointValues[23]
297  +NF_N_T_P2_3D_W1[3]*PointValues[24]
298  +NF_N_T_P2_3D_W1[4]*PointValues[25]
299  +NF_N_T_P2_3D_W1[5]*PointValues[26]
300  +NF_N_T_P2_3D_W1[6]*PointValues[27])*2;
301  Functionals[11] = ( NF_N_T_P2_3D_W2[0]*PointValues[21]
302  +NF_N_T_P2_3D_W2[1]*PointValues[22]
303  +NF_N_T_P2_3D_W2[2]*PointValues[23]
304  +NF_N_T_P2_3D_W2[3]*PointValues[24]
305  +NF_N_T_P2_3D_W2[4]*PointValues[25]
306  +NF_N_T_P2_3D_W2[5]*PointValues[26]
307  +NF_N_T_P2_3D_W2[6]*PointValues[27])*2;
308 
309  Functionals[12] = ( NF_N_T_P2_3D_W[ 0]*PointValues[28]
310  +NF_N_T_P2_3D_W[ 1]*PointValues[29]
311  +NF_N_T_P2_3D_W[ 2]*PointValues[30]
312  +NF_N_T_P2_3D_W[ 3]*PointValues[31]
313  +NF_N_T_P2_3D_W[ 4]*PointValues[32]
314  +NF_N_T_P2_3D_W[ 5]*PointValues[33]
315  +NF_N_T_P2_3D_W[ 6]*PointValues[34]
316  +NF_N_T_P2_3D_W[ 7]*PointValues[35]
317  +NF_N_T_P2_3D_W[ 8]*PointValues[36]
318  +NF_N_T_P2_3D_W[ 9]*PointValues[37]
319  +NF_N_T_P2_3D_W[10]*PointValues[38])*6;
320 }
321 
322 void NF_N_T_P2_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
323  double *PointValues, double *Functionals)
324 {
325  Functionals[0] = ( NF_N_T_P2_3D_W0[0]*PointValues[0]
326  +NF_N_T_P2_3D_W0[1]*PointValues[1]
327  +NF_N_T_P2_3D_W0[2]*PointValues[2]
328  +NF_N_T_P2_3D_W0[3]*PointValues[3]
329  +NF_N_T_P2_3D_W0[4]*PointValues[4]
330  +NF_N_T_P2_3D_W0[5]*PointValues[5]
331  +NF_N_T_P2_3D_W0[6]*PointValues[6])*2;
332  Functionals[1] = ( NF_N_T_P2_3D_W1[0]*PointValues[0]
333  +NF_N_T_P2_3D_W1[1]*PointValues[1]
334  +NF_N_T_P2_3D_W1[2]*PointValues[2]
335  +NF_N_T_P2_3D_W1[3]*PointValues[3]
336  +NF_N_T_P2_3D_W1[4]*PointValues[4]
337  +NF_N_T_P2_3D_W1[5]*PointValues[5]
338  +NF_N_T_P2_3D_W1[6]*PointValues[6])*2;
339  Functionals[2] = ( NF_N_T_P2_3D_W2[0]*PointValues[0]
340  +NF_N_T_P2_3D_W2[1]*PointValues[1]
341  +NF_N_T_P2_3D_W2[2]*PointValues[2]
342  +NF_N_T_P2_3D_W2[3]*PointValues[3]
343  +NF_N_T_P2_3D_W2[4]*PointValues[4]
344  +NF_N_T_P2_3D_W2[5]*PointValues[5]
345  +NF_N_T_P2_3D_W2[6]*PointValues[6])*2;
346 }
347 
348 static int NF_N_T_P2_3D_N_AllFunctionals = 13;
349 static int NF_N_T_P2_3D_N_T_PointsAll = 39;
350 static int NF_N_T_P2_3D_N_FaceFunctionals[] = { 3, 3, 3, 3 };
351 static int NF_N_T_P2_3D_N_T_PointsFace[] = { 7, 7, 7, 7 };
352 
353 TNodalFunctional3D *NF_N_T_P2_3D_Obj = new TNodalFunctional3D
354  (NF_N_T_P2_3D, NF_N_T_P2_3D_N_AllFunctionals,
355  NF_N_T_P2_3D_N_FaceFunctionals, NF_N_T_P2_3D_N_T_PointsAll,
356  NF_N_T_P2_3D_N_T_PointsFace,
357  NF_N_T_P2_3D_Xi, NF_N_T_P2_3D_Eta, NF_N_T_P2_3D_Zeta,
358  NF_N_T_P2_3D_XiArray, NF_N_T_P2_3D_EtaArray,
359  NF_N_T_P2_3D_ZetaArray,
360  NF_N_T_P2_3D_T, NF_N_T_P2_3D_S,
361  NF_N_T_P2_3D_EvalAll, NF_N_T_P2_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