5 static double NF_N_T_BDDF2_3D_Xi[] = {
6 0.2, 0.4, 0.6, 0.2, 0.4, 0.2,
7 0.2, 0.2, 0.2, 0.4, 0.4, 0.6,
8 0.2, 0.4, 0.6, 0.2, 0.4, 0.2,
11 0.333333333333333333333333333333333,
12 0.333333333333333333333333333333333,
14 0.333333333333333333333333333333333,
16 0.909090909090909090909090909090909e-1,
17 0.909090909090909090909090909090909e-1,
18 0.727272727272727272727272727272727,
19 0.909090909090909090909090909090909e-1,
20 0.665501535736642982398804642263025e-1,
21 0.433449846426335701760119535773697,
22 0.433449846426335701760119535773697,
23 0.665501535736642982398804642263025e-1,
24 0.665501535736642982398804642263025e-1,
25 0.433449846426335701760119535773697
27 static double NF_N_T_BDDF2_3D_Eta[] = {
28 0.2, 0.2, 0.2, 0.4, 0.4, 0.6,
30 0.6, 0.4, 0.2, 0.4, 0.2, 0.2,
31 0.2, 0.4, 0.6, 0.2, 0.4, 0.2,
33 0.333333333333333333333333333333333,
35 0.333333333333333333333333333333333,
36 0.333333333333333333333333333333333,
38 0.909090909090909090909090909090909e-1,
39 0.727272727272727272727272727272727,
40 0.909090909090909090909090909090909e-1,
41 0.909090909090909090909090909090909e-1,
42 0.433449846426335701760119535773697,
43 0.665501535736642982398804642263025e-1,
44 0.433449846426335701760119535773697,
45 0.665501535736642982398804642263025e-1,
46 0.433449846426335701760119535773697,
47 0.665501535736642982398804642263025e-1
49 static double NF_N_T_BDDF2_3D_Zeta[]= {
51 0.2, 0.4, 0.6, 0.2, 0.4, 0.2,
52 0.2, 0.2, 0.2, 0.4, 0.4, 0.6,
53 0.2, 0.2, 0.2, 0.4, 0.4, 0.6,
56 0.333333333333333333333333333333333,
57 0.333333333333333333333333333333333,
58 0.333333333333333333333333333333333,
60 0.727272727272727272727272727272727,
61 0.90909090909090909090909090909091e-1,
62 0.909090909090909090909090909090911e-1,
63 0.909090909090909090909090909090911e-1,
64 0.433449846426335701760119535773699,
65 0.433449846426335701760119535773699,
66 0.66550153573664298239880464226304e-1,
67 0.433449846426335701760119535773699,
68 0.66550153573664298239880464226304e-1,
69 0.665501535736642982398804642263035e-1
72 static double NF_N_T_BDDF2_3D_XiEta_Xi[]= {
90 static double NF_N_T_BDDF2_3D_XiEta_Eta[]= {
108 static double NF_N_T_BDDF2_3D_XiZeta_Xi[]= {
126 static double NF_N_T_BDDF2_3D_XiZeta_Zeta[]= {
144 static double NF_N_T_BDDF2_3D_EtaZeta_Eta[]= {
162 static double NF_N_T_BDDF2_3D_EtaZeta_Zeta[]= {
181 static double NF_N_T_BDDF2_3D_Weights[]= {
182 0.602678571428571428571428571428571e-2,
183 0.602678571428571428571428571428571e-2,
184 0.602678571428571428571428571428571e-2,
185 0.602678571428571428571428571428571e-2,
186 0.302836780970891758063769725577305e-1,
187 0.116452490860289694108936091443380e-1,
188 0.116452490860289694108936091443380e-1,
189 0.116452490860289694108936091443380e-1,
190 0.116452490860289694108936091443380e-1,
191 0.109491415613864593456430191124068e-1,
192 0.109491415613864593456430191124068e-1,
193 0.109491415613864593456430191124068e-1,
194 0.109491415613864593456430191124068e-1,
195 0.109491415613864593456430191124068e-1,
196 0.109491415613864593456430191124068e-1};
199 static double NF_N_T_BDDF2_3D_F0_Xi[] = {0.2, 0.4, 0.6, 0.2, 0.4, 0.2};
200 static double NF_N_T_BDDF2_3D_F0_Eta[] = {0.2, 0.2, 0.2, 0.4, 0.4, 0.6};
201 static double NF_N_T_BDDF2_3D_F0_Zeta[] = { 0,0,0,0,0,0 };
204 static double NF_N_T_BDDF2_3D_F1_Xi[] = {0.2, 0.2, 0.2, 0.4, 0.4, 0.6};
205 static double NF_N_T_BDDF2_3D_F1_Eta[] = { 0,0,0,0,0,0 };
206 static double NF_N_T_BDDF2_3D_F1_Zeta[] = {0.2, 0.4, 0.6, 0.2, 0.4, 0.2};
209 static double NF_N_T_BDDF2_3D_F2_Xi[] = {0.2, 0.4, 0.6, 0.2, 0.4, 0.2};
210 static double NF_N_T_BDDF2_3D_F2_Eta[] = {0.6, 0.4, 0.2, 0.4, 0.2, 0.2};
211 static double NF_N_T_BDDF2_3D_F2_Zeta[] = {0.2, 0.2, 0.2, 0.4, 0.4, 0.6};
214 static double NF_N_T_BDDF2_3D_F3_Xi[] = { 0,0,0,0,0,0 };
215 static double NF_N_T_BDDF2_3D_F3_Eta[] = {0.2, 0.4, 0.6, 0.2, 0.4, 0.2};
216 static double NF_N_T_BDDF2_3D_F3_Zeta[] = {0.2, 0.2, 0.2, 0.4, 0.4, 0.6};
218 static double *NF_N_T_BDDF2_3D_XiArray[4] = {
219 NF_N_T_BDDF2_3D_F0_Xi,
220 NF_N_T_BDDF2_3D_F1_Xi,
221 NF_N_T_BDDF2_3D_F2_Xi,
222 NF_N_T_BDDF2_3D_F3_Xi };
224 static double *NF_N_T_BDDF2_3D_EtaArray[4] = {
225 NF_N_T_BDDF2_3D_F0_Eta,
226 NF_N_T_BDDF2_3D_F1_Eta,
227 NF_N_T_BDDF2_3D_F2_Eta,
228 NF_N_T_BDDF2_3D_F3_Eta };
230 static double *NF_N_T_BDDF2_3D_ZetaArray[4] = {
231 NF_N_T_BDDF2_3D_F0_Zeta,
232 NF_N_T_BDDF2_3D_F1_Zeta,
233 NF_N_T_BDDF2_3D_F2_Zeta,
234 NF_N_T_BDDF2_3D_F3_Zeta };
236 static double NF_N_T_BDDF2_3D_T[] = {-100};
237 static double NF_N_T_BDDF2_3D_S[] = {-100};
240 double *PointValues,
double *Functionals)
245 Functionals[0] = -PointValues[78];
246 Functionals[1] = -PointValues[79];
247 Functionals[2] = -PointValues[80];
248 Functionals[3] = -PointValues[81];
249 Functionals[4] = -PointValues[82];
250 Functionals[5] = -PointValues[83];
252 Functionals[6] = -PointValues[45];
253 Functionals[7] = -PointValues[46];
254 Functionals[8] = -PointValues[47];
255 Functionals[9] = -PointValues[48];
256 Functionals[10] = -PointValues[49];
257 Functionals[11] = -PointValues[50];
259 Functionals[12] = PointValues[12]+PointValues[51]+PointValues[90];
260 Functionals[13] = PointValues[13]+PointValues[52]+PointValues[91];
261 Functionals[14] = PointValues[14]+PointValues[53]+PointValues[92];
262 Functionals[15] = PointValues[15]+PointValues[54]+PointValues[93];
263 Functionals[16] = PointValues[16]+PointValues[55]+PointValues[94];
264 Functionals[17] = PointValues[17]+PointValues[56]+PointValues[95];
266 Functionals[18] = -PointValues[18];
267 Functionals[19] = -PointValues[19];
268 Functionals[20] = -PointValues[20];
269 Functionals[21] = -PointValues[21];
270 Functionals[22] = -PointValues[22];
271 Functionals[23] = -PointValues[23];
281 s += PointValues[i+24] * NF_N_T_BDDF2_3D_Weights[i];
286 s += PointValues[i+63] * NF_N_T_BDDF2_3D_Weights[i];
291 s += PointValues[i+102] * NF_N_T_BDDF2_3D_Weights[i];
298 s += PointValues[i+24] * NF_N_T_BDDF2_3D_XiEta_Xi[i] * NF_N_T_BDDF2_3D_Weights[i];
300 s += PointValues[i+63] * NF_N_T_BDDF2_3D_XiEta_Eta[i] * NF_N_T_BDDF2_3D_Weights[i];
307 s += PointValues[i+24] * NF_N_T_BDDF2_3D_XiZeta_Xi[i] * NF_N_T_BDDF2_3D_Weights[i];
309 s += PointValues[i+102] * NF_N_T_BDDF2_3D_XiZeta_Zeta[i] * NF_N_T_BDDF2_3D_Weights[i];
316 s += PointValues[i+63] * NF_N_T_BDDF2_3D_EtaZeta_Eta[i] * NF_N_T_BDDF2_3D_Weights[i];
318 s += PointValues[i+102] * NF_N_T_BDDF2_3D_EtaZeta_Zeta[i] * NF_N_T_BDDF2_3D_Weights[i];
325 double *PointValues,
double *Functionals)
328 double x0,x1,x2,y0,y1,y2,z0,z1,z2;
331 const int *faceVertex, *length;
340 s = sqrt( POW((y1-y0)*(z2-z0) - (z1-z0)*(y2-y0),2)
341 + POW((z1-z0)*(x2-x0) - (x1-x0)*(z2-z0),2)
342 + POW((x1-x0)*(y2-y0) - (x2-x0)*(y1-y0),2) );
343 for(
int i=0; i<6; i++)
344 Functionals[i] = PointValues[i]*s;
347 static int NF_N_T_BDDF2_3D_N_AllFunctionals = 30;
348 static int NF_N_T_BDDF2_3D_N_PointsAll = 39;
349 static int NF_N_T_BDDF2_3D_N_FaceFunctionals[] = { 6, 6, 6, 6 };
350 static int NF_N_T_BDDF2_3D_N_PointsFace[] = { 6, 6, 6, 6 };
353 (NF_N_T_BDDF2_3D, NF_N_T_BDDF2_3D_N_AllFunctionals,
354 NF_N_T_BDDF2_3D_N_FaceFunctionals, NF_N_T_BDDF2_3D_N_PointsAll,
355 NF_N_T_BDDF2_3D_N_PointsFace,
356 NF_N_T_BDDF2_3D_Xi, NF_N_T_BDDF2_3D_Eta, NF_N_T_BDDF2_3D_Zeta,
357 NF_N_T_BDDF2_3D_XiArray, NF_N_T_BDDF2_3D_EtaArray,
358 NF_N_T_BDDF2_3D_ZetaArray,
359 NF_N_T_BDDF2_3D_T, NF_N_T_BDDF2_3D_S,
360 NF_N_T_BDDF2_3D_EvalAll, NF_N_T_BDDF2_3D_EvalFace);
int GetFaceVertex(const int *&TmpFV, const int *&TmpLen, int &MaxLen)
Definition: ShapeDesc.h:124
TShapeDesc * GetShapeDesc() const
return shape descriptor of refinement descriptor
Definition: BaseCell.h:134
Definition: NodalFunctional3D.h:21
store cells in an array, used by cell iterators
Definition: Collection.h:18
virtual TVertex * GetVertex(int Vert_i)=0
return the pointer to vertex with number i
void GetCoords(double &x, double &y, double &z) const
Definition: Vertex.h:106
information for finite element data structure
Definition: BaseCell.h:25