ParMooN
 All Classes Functions Variables Friends Pages
NF_C_T_UL3_2D.h
1 /*
2  TNodalFunctional2D(NodalFunctional2D id,
3  int n_allfunctionals, int n_edgefunctionals,
4  int n_pointsall, int n_pointsedge,
5  double *xi, double *eta, double *t,
6  DoubleFunctVect *evalall,
7  DoubleFunctVect *evaledge);
8 */
9 
10 static double NF_C_T_UL3_2D_W0[] = {
11  0.1338815352798323483836615,
12  0.08781911358244156480372712,
13  0.05857143528033178431852058,
14  0.05306124886956075869379972,
15  3.211668771336243759680046e-10,
16  0.1338815352798323483836615,
17  0.08781911358244156480372712,
18  0.05857143528033178431852058,
19  0.05306124886956075869379972,
20  3.211668771336243759680046e-10,
21  0.1338815352798323483836615,
22  0.08781911358244156480372712,
23  0.05857143528033178431852058,
24  0.05306124886956075869379972,
25  3.211668771336243759680046e-10 };
26 
27 static double NF_C_T_UL3_2D_W1[] = {
28  0.02060002306022122324914420,
29  0.01129019454258610471158756,
30  0.01807012227527386947012354,
31  0.000009792147884325017198945303,
32  5.322943133234498398641960e-10,
33  -0.01555072009943916871059616,
34  0.01393558585908052317821126,
35  -0.009907282607036290058979157,
36  0.02135882696742077274497469,
37  5.262923413432595370639873e-10,
38  -0.005049302960782054538548041,
39  -0.02522578040166662788979882,
40  -0.008162839668237579411144377,
41  -0.02136861911530509776217363,
42  -1.058586654666709376928183e-9 };
43 
44 static double NF_C_T_UL3_2D_W2[] = {
45  0.005049302960782054538548041,
46  0.02522578040166662788979882,
47  0.008162839668237579411144374,
48  0.02136861911530509776217364,
49  1.058586654666709376928183e-9,
50  -0.02060002306022122324914420,
51  -0.01129019454258610471158757,
52  -0.01807012227527386947012353,
53  -0.000009792147884325017198945303,
54  -5.322943133234498398641958e-10,
55  0.01555072009943916871059616,
56  -0.01393558585908052317821126,
57  0.009907282607036290058979162,
58  -0.02135882696742077274497469,
59  -5.262923413432595370639871e-10 };
60 
61 static double NF_C_T_UL3_2D_W3[] = {
62  -.5681561240792843260361997,
63  -.4147449330059048571735955,
64  0.01787438064203683735652336,
65  0.2490748470886491633963465,
66  -1.649363563393114180399687e-9,
67  -.5524478787902309208087563,
68  -0.05385400553858738142636380,
69  -.2768234313569137721564739,
70  0.7691212129434811378559316,
71  2.985545465286077101560408e-7,
72  -.2676548426456185647840447,
73  0.4603790251744214261310966,
74  0.3869750551988903332977606,
75  0.2502560711293055021705686,
76  3.263345724569626099174574e-7 };
77 
78 static double NF_C_T_UL3_2D_W4[] = {
79  0.8529491602238966820609113,
80  0.9289779637189136647310559,
81  0.6459241059137672680977100,
82  -.7679399889028247990817089,
83  2.942938949174801394181639e-8,
84  0.2519465973565651595565995,
85  -.8212699526417389018783287,
86  -0.09227724319993972378476302,
87  -.7703024369841374766301528,
88  -6.265384825489634342538976e-7,
89  0.2833630879346719700114886,
90  -0.09948809770710395038386405,
91  -.6816728671978409428107582,
92  0.2697902947255264722890158,
93  -2.613066236496178558101700e-8 };
94 
95 static double NF_C_T_UL3_2D_W5[] = {
96  -.5524478787902309208087563,
97  -0.05385400553858738142636380,
98  -.2768234313569137721564739,
99  0.7691212129434811378559316,
100  2.985545465286077101560408e-7,
101  -.2676548426456185647840447,
102  0.4603790251744214261310966,
103  0.3869750551988903332977606,
104  0.2502560711293055021705686,
105  3.263345724569626099174574e-7,
106  -.5681561240792843260361997,
107  -.4147449330059048571735955,
108  0.01787438064203683735652336,
109  0.2490748470886491633963465,
110  -1.649363563393114180399687e-9 };
111 
112 static double NF_C_T_UL3_2D_Xi[24] = {
113  0.0, 0.33333333333333333333, 0.66666666666666666667,
114  1.0, 0.66666666666666666667, 0.33333333333333333333,
115  0.0, 0.0, 0.0,
116  0.513346920639454149493588964941289,
117  0.313251210671725306955957434773977,
118  0.651775303648795707537235440171623,
119  0.0651019934589391663281047918600097,
120  0.345792011168269028821402703032657,
121  0.281041247315110390572737910356218,
122  0.630621434318956140102957434914989,
123  0.313477887523733007173578085409864,
124  0.870165101563563060777479924328995,
125  3.62316822156926166667912853628633,
126  0.205611832045435459933673124702493,
127  0.056127355009318552941085130311034,
128  0.034746808827471285289186474418513,
129  0.0647329049774977728944152838109953,
130  -2.968960232737530695500531239318987 };
131 
132 static double NF_C_T_UL3_2D_Eta[24] = {
133  0.0, 0.0, 0.0, 0.0,
134  0.33333333333333333333, 0.66666666666666666667,
135  1.0, 0.66666666666666666667, 0.33333333333333333333,
136  0.281041247315110390572737910356218,
137  0.630621434318956140102957434914989,
138  0.313477887523733007173578085409864,
139  0.870165101563563060777479924328995,
140  3.62316822156926166667912853628633,
141  0.205611832045435459933673124702493,
142  0.056127355009318552941085130311034,
143  0.034746808827471285289186474418513,
144  0.0647329049774977728944152838109953,
145  -2.968960232737530695500531239318987,
146  0.513346920639454149493588964941289,
147  0.313251210671725306955957434773977,
148  0.651775303648795707537235440171623,
149  0.0651019934589391663281047918600097,
150  0.345792011168269028821402703032657 };
151 
152 static double NF_C_T_UL3_2D_T[4] = { -1, -0.33333333333333333333,
153  0.33333333333333333333, 1 };
154 
155 void NF_C_T_UL3_2D_EvalAll(TCollection *Coll, TBaseCell *Cell, double *PointValues,
156  double *Functionals)
157 {
158  Functionals[0] = PointValues[0];
159  Functionals[1] = PointValues[1];
160  Functionals[2] = PointValues[2];
161  Functionals[3] = PointValues[3];
162  Functionals[4] = PointValues[4];
163  Functionals[5] = PointValues[5];
164  Functionals[6] = PointValues[6];
165  Functionals[7] = PointValues[7];
166  Functionals[8] = PointValues[8];
167 
168  Functionals[9] = PointValues[ 9]*NF_C_T_UL3_2D_W0[ 0]
169  + PointValues[10]*NF_C_T_UL3_2D_W0[ 1]
170  + PointValues[11]*NF_C_T_UL3_2D_W0[ 2]
171  + PointValues[12]*NF_C_T_UL3_2D_W0[ 3]
172  + PointValues[13]*NF_C_T_UL3_2D_W0[ 4]
173  + PointValues[14]*NF_C_T_UL3_2D_W0[ 5]
174  + PointValues[15]*NF_C_T_UL3_2D_W0[ 6]
175  + PointValues[16]*NF_C_T_UL3_2D_W0[ 7]
176  + PointValues[17]*NF_C_T_UL3_2D_W0[ 8]
177  + PointValues[18]*NF_C_T_UL3_2D_W0[ 9]
178  + PointValues[19]*NF_C_T_UL3_2D_W0[10]
179  + PointValues[20]*NF_C_T_UL3_2D_W0[11]
180  + PointValues[21]*NF_C_T_UL3_2D_W0[12]
181  + PointValues[22]*NF_C_T_UL3_2D_W0[13]
182  + PointValues[23]*NF_C_T_UL3_2D_W0[14];
183 
184  Functionals[10] = PointValues[ 9]*NF_C_T_UL3_2D_W1[ 0]
185  + PointValues[10]*NF_C_T_UL3_2D_W1[ 1]
186  + PointValues[11]*NF_C_T_UL3_2D_W1[ 2]
187  + PointValues[12]*NF_C_T_UL3_2D_W1[ 3]
188  + PointValues[13]*NF_C_T_UL3_2D_W1[ 4]
189  + PointValues[14]*NF_C_T_UL3_2D_W1[ 5]
190  + PointValues[15]*NF_C_T_UL3_2D_W1[ 6]
191  + PointValues[16]*NF_C_T_UL3_2D_W1[ 7]
192  + PointValues[17]*NF_C_T_UL3_2D_W1[ 8]
193  + PointValues[18]*NF_C_T_UL3_2D_W1[ 9]
194  + PointValues[19]*NF_C_T_UL3_2D_W1[10]
195  + PointValues[20]*NF_C_T_UL3_2D_W1[11]
196  + PointValues[21]*NF_C_T_UL3_2D_W1[12]
197  + PointValues[22]*NF_C_T_UL3_2D_W1[13]
198  + PointValues[23]*NF_C_T_UL3_2D_W1[14];
199 
200  Functionals[11] = PointValues[ 9]*NF_C_T_UL3_2D_W2[ 0]
201  + PointValues[10]*NF_C_T_UL3_2D_W2[ 1]
202  + PointValues[11]*NF_C_T_UL3_2D_W2[ 2]
203  + PointValues[12]*NF_C_T_UL3_2D_W2[ 3]
204  + PointValues[13]*NF_C_T_UL3_2D_W2[ 4]
205  + PointValues[14]*NF_C_T_UL3_2D_W2[ 5]
206  + PointValues[15]*NF_C_T_UL3_2D_W2[ 6]
207  + PointValues[16]*NF_C_T_UL3_2D_W2[ 7]
208  + PointValues[17]*NF_C_T_UL3_2D_W2[ 8]
209  + PointValues[18]*NF_C_T_UL3_2D_W2[ 9]
210  + PointValues[19]*NF_C_T_UL3_2D_W2[10]
211  + PointValues[20]*NF_C_T_UL3_2D_W2[11]
212  + PointValues[21]*NF_C_T_UL3_2D_W2[12]
213  + PointValues[22]*NF_C_T_UL3_2D_W2[13]
214  + PointValues[23]*NF_C_T_UL3_2D_W2[14];
215 
216  Functionals[12] = PointValues[ 9]*NF_C_T_UL3_2D_W3[ 0]
217  + PointValues[10]*NF_C_T_UL3_2D_W3[ 1]
218  + PointValues[11]*NF_C_T_UL3_2D_W3[ 2]
219  + PointValues[12]*NF_C_T_UL3_2D_W3[ 3]
220  + PointValues[13]*NF_C_T_UL3_2D_W3[ 4]
221  + PointValues[14]*NF_C_T_UL3_2D_W3[ 5]
222  + PointValues[15]*NF_C_T_UL3_2D_W3[ 6]
223  + PointValues[16]*NF_C_T_UL3_2D_W3[ 7]
224  + PointValues[17]*NF_C_T_UL3_2D_W3[ 8]
225  + PointValues[18]*NF_C_T_UL3_2D_W3[ 9]
226  + PointValues[19]*NF_C_T_UL3_2D_W3[10]
227  + PointValues[20]*NF_C_T_UL3_2D_W3[11]
228  + PointValues[21]*NF_C_T_UL3_2D_W3[12]
229  + PointValues[22]*NF_C_T_UL3_2D_W3[13]
230  + PointValues[23]*NF_C_T_UL3_2D_W3[14];
231 
232  Functionals[13] = PointValues[ 9]*NF_C_T_UL3_2D_W4[ 0]
233  + PointValues[10]*NF_C_T_UL3_2D_W4[ 1]
234  + PointValues[11]*NF_C_T_UL3_2D_W4[ 2]
235  + PointValues[12]*NF_C_T_UL3_2D_W4[ 3]
236  + PointValues[13]*NF_C_T_UL3_2D_W4[ 4]
237  + PointValues[14]*NF_C_T_UL3_2D_W4[ 5]
238  + PointValues[15]*NF_C_T_UL3_2D_W4[ 6]
239  + PointValues[16]*NF_C_T_UL3_2D_W4[ 7]
240  + PointValues[17]*NF_C_T_UL3_2D_W4[ 8]
241  + PointValues[18]*NF_C_T_UL3_2D_W4[ 9]
242  + PointValues[19]*NF_C_T_UL3_2D_W4[10]
243  + PointValues[20]*NF_C_T_UL3_2D_W4[11]
244  + PointValues[21]*NF_C_T_UL3_2D_W4[12]
245  + PointValues[22]*NF_C_T_UL3_2D_W4[13]
246  + PointValues[23]*NF_C_T_UL3_2D_W4[14];
247 
248  Functionals[14] = PointValues[ 9]*NF_C_T_UL3_2D_W5[ 0]
249  + PointValues[10]*NF_C_T_UL3_2D_W5[ 1]
250  + PointValues[11]*NF_C_T_UL3_2D_W5[ 2]
251  + PointValues[12]*NF_C_T_UL3_2D_W5[ 3]
252  + PointValues[13]*NF_C_T_UL3_2D_W5[ 4]
253  + PointValues[14]*NF_C_T_UL3_2D_W5[ 5]
254  + PointValues[15]*NF_C_T_UL3_2D_W5[ 6]
255  + PointValues[16]*NF_C_T_UL3_2D_W5[ 7]
256  + PointValues[17]*NF_C_T_UL3_2D_W5[ 8]
257  + PointValues[18]*NF_C_T_UL3_2D_W5[ 9]
258  + PointValues[19]*NF_C_T_UL3_2D_W5[10]
259  + PointValues[20]*NF_C_T_UL3_2D_W5[11]
260  + PointValues[21]*NF_C_T_UL3_2D_W5[12]
261  + PointValues[22]*NF_C_T_UL3_2D_W5[13]
262  + PointValues[23]*NF_C_T_UL3_2D_W5[14];
263 }
264 
265 void NF_C_T_UL3_2D_EvalEdge(TCollection *Coll, TBaseCell *Cell, int Joint, double *PointValues,
266  double *Functionals)
267 {
268  Functionals[0] = PointValues[0];
269  Functionals[1] = PointValues[1];
270  Functionals[2] = PointValues[2];
271  Functionals[3] = PointValues[3];
272 }
273 
274 TNodalFunctional2D *NF_C_T_UL3_2D_Obj = new TNodalFunctional2D
275  (NF_C_T_UL3_2D, 15, 4, 24, 4, NF_C_T_UL3_2D_Xi, NF_C_T_UL3_2D_Eta,
276  NF_C_T_UL3_2D_T, NF_C_T_UL3_2D_EvalAll, NF_C_T_UL3_2D_EvalEdge);
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: NodalFunctional2D.h:20
information for finite element data structure
Definition: BaseCell.h:25