ParMooN
 All Classes Functions Variables Friends Pages
NF_D_T_P2_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_D_T_P2_2D_Xi[] = {
11  0.3333333333333333,
12  0.7974269853530873, 0.1012865073234563,
13  0.1012865073234563,
14  0.05971587178976982, 0.4701420641051151,
15  0.4701420641051151 };
16 static double NF_D_T_P2_2D_Eta[] = {
17  0.3333333333333333,
18  0.1012865073234563, 0.7974269853530873,
19  0.1012865073234563,
20  0.4701420641051151, 0.4701420641051151,
21  0.05971587178976982 };
22 
23 /* weight : 1 */
24 static double NF_D_T_P2_2D_W1[] = {
25  1.0000000000000000e+00,
26  1.0000000000000000e+00,
27  1.0000000000000000e+00,
28  1.0000000000000000e+00,
29  1.0000000000000000e+00,
30  1.0000000000000000e+00,
31  1.0000000000000000e+00 };
32 /* weight : 2*xi+eta-1 */
33 static double NF_D_T_P2_2D_W2[] = {
34  0.0000000000000000e+00,
35  6.9614047802963097e-01,
36  0.0000000000000000e+00,
37  -6.9614047802963108e-01,
38  -4.1042619231534527e-01,
39  4.1042619231534538e-01,
40  0.0000000000000000e+00 };
41 /* weight : xi+2*eta-1 */
42 static double NF_D_T_P2_2D_W3[] = {
43  0.0000000000000000e+00,
44  0.0000000000000000e+00,
45  6.9614047802963097e-01,
46  -6.9614047802963108e-01,
47  0.0000000000000000e+00,
48  4.1042619231534538e-01,
49  -4.1042619231534527e-01 };
50 /* weight : 180*xi^2-144*xi+18 */
51 static double NF_D_T_P2_2D_W4[] = {
52  -1.0000000000000000e+01,
53  1.7630677563631750e+01,
54  5.2613551272635135e+00,
55  5.2613551272635135e+00,
56  1.0042791824123347e+01,
57  -9.9144163517533173e+00,
58  -9.9144163517533173e+00 };
59 /* weight : 360*xi*eta-72*xi-72*eta+18 */
60 static double NF_D_T_P2_2D_W5[] = {
61  1.0000000000000000e+01,
62  -1.7630677563631764e+01,
63  -1.7630677563631764e+01,
64  7.1079673091047368e+00,
65  -1.0042791824123348e+01,
66  2.9871624527629962e+01,
67  -1.0042791824123348e+01 };
68 /* weight : 180*eta^2-144*eta+18 */
69 static double NF_D_T_P2_2D_W6[] = {
70  -1.0000000000000000e+01,
71  5.2613551272635135e+00,
72  1.7630677563631750e+01,
73  5.2613551272635135e+00,
74  -9.9144163517533173e+00,
75  -9.9144163517533173e+00,
76  1.0042791824123347e+01 };
77 
78 static double NF_D_T_P2_2D_T_P[] =
79  { -0.77459666924148337703585307995647992, 0,
80  0.77459666924148337703585307995647992 };
81 
82 static double NF_D_T_P2_2D_W[7] = {
83  0.1125,
84  0.0629695902724136, 0.0629695902724136,
85  0.0629695902724136,
86  0.0661970763942531, 0.0661970763942531,
87  0.0661970763942531 };
88 
89 void NF_D_T_P2_2D_EvalAll(TCollection *Coll, TBaseCell *Cell, double *PointValues,
90  double *Functionals)
91 {
92  Functionals[0] = PointValues[0]*NF_D_T_P2_2D_W1[0]*NF_D_T_P2_2D_W[0]
93  +PointValues[1]*NF_D_T_P2_2D_W1[1]*NF_D_T_P2_2D_W[1]
94  +PointValues[2]*NF_D_T_P2_2D_W1[2]*NF_D_T_P2_2D_W[2]
95  +PointValues[3]*NF_D_T_P2_2D_W1[3]*NF_D_T_P2_2D_W[3]
96  +PointValues[4]*NF_D_T_P2_2D_W1[4]*NF_D_T_P2_2D_W[4]
97  +PointValues[5]*NF_D_T_P2_2D_W1[5]*NF_D_T_P2_2D_W[5]
98  +PointValues[6]*NF_D_T_P2_2D_W1[6]*NF_D_T_P2_2D_W[6];
99  Functionals[0] *= 2;
100  Functionals[1] = PointValues[0]*NF_D_T_P2_2D_W2[0]*NF_D_T_P2_2D_W[0]
101  +PointValues[1]*NF_D_T_P2_2D_W2[1]*NF_D_T_P2_2D_W[1]
102  +PointValues[2]*NF_D_T_P2_2D_W2[2]*NF_D_T_P2_2D_W[2]
103  +PointValues[3]*NF_D_T_P2_2D_W2[3]*NF_D_T_P2_2D_W[3]
104  +PointValues[4]*NF_D_T_P2_2D_W2[4]*NF_D_T_P2_2D_W[4]
105  +PointValues[5]*NF_D_T_P2_2D_W2[5]*NF_D_T_P2_2D_W[5]
106  +PointValues[6]*NF_D_T_P2_2D_W2[6]*NF_D_T_P2_2D_W[6];
107  Functionals[2] = PointValues[0]*NF_D_T_P2_2D_W3[0]*NF_D_T_P2_2D_W[0]
108  +PointValues[1]*NF_D_T_P2_2D_W3[1]*NF_D_T_P2_2D_W[1]
109  +PointValues[2]*NF_D_T_P2_2D_W3[2]*NF_D_T_P2_2D_W[2]
110  +PointValues[3]*NF_D_T_P2_2D_W3[3]*NF_D_T_P2_2D_W[3]
111  +PointValues[4]*NF_D_T_P2_2D_W3[4]*NF_D_T_P2_2D_W[4]
112  +PointValues[5]*NF_D_T_P2_2D_W3[5]*NF_D_T_P2_2D_W[5]
113  +PointValues[6]*NF_D_T_P2_2D_W3[6]*NF_D_T_P2_2D_W[6];
114  Functionals[3] = PointValues[0]*NF_D_T_P2_2D_W4[0]*NF_D_T_P2_2D_W[0]
115  +PointValues[1]*NF_D_T_P2_2D_W4[1]*NF_D_T_P2_2D_W[1]
116  +PointValues[2]*NF_D_T_P2_2D_W4[2]*NF_D_T_P2_2D_W[2]
117  +PointValues[3]*NF_D_T_P2_2D_W4[3]*NF_D_T_P2_2D_W[3]
118  +PointValues[4]*NF_D_T_P2_2D_W4[4]*NF_D_T_P2_2D_W[4]
119  +PointValues[5]*NF_D_T_P2_2D_W4[5]*NF_D_T_P2_2D_W[5]
120  +PointValues[6]*NF_D_T_P2_2D_W4[6]*NF_D_T_P2_2D_W[6];
121  Functionals[4] = PointValues[0]*NF_D_T_P2_2D_W5[0]*NF_D_T_P2_2D_W[0]
122  +PointValues[1]*NF_D_T_P2_2D_W5[1]*NF_D_T_P2_2D_W[1]
123  +PointValues[2]*NF_D_T_P2_2D_W5[2]*NF_D_T_P2_2D_W[2]
124  +PointValues[3]*NF_D_T_P2_2D_W5[3]*NF_D_T_P2_2D_W[3]
125  +PointValues[4]*NF_D_T_P2_2D_W5[4]*NF_D_T_P2_2D_W[4]
126  +PointValues[5]*NF_D_T_P2_2D_W5[5]*NF_D_T_P2_2D_W[5]
127  +PointValues[6]*NF_D_T_P2_2D_W5[6]*NF_D_T_P2_2D_W[6];
128  Functionals[5] = PointValues[0]*NF_D_T_P2_2D_W6[0]*NF_D_T_P2_2D_W[0]
129  +PointValues[1]*NF_D_T_P2_2D_W6[1]*NF_D_T_P2_2D_W[1]
130  +PointValues[2]*NF_D_T_P2_2D_W6[2]*NF_D_T_P2_2D_W[2]
131  +PointValues[3]*NF_D_T_P2_2D_W6[3]*NF_D_T_P2_2D_W[3]
132  +PointValues[4]*NF_D_T_P2_2D_W6[4]*NF_D_T_P2_2D_W[4]
133  +PointValues[5]*NF_D_T_P2_2D_W6[5]*NF_D_T_P2_2D_W[5]
134  +PointValues[6]*NF_D_T_P2_2D_W6[6]*NF_D_T_P2_2D_W[6];
135 }
136 
137 void NF_D_T_P2_2D_EvalEdge(TCollection *Coll, TBaseCell *Cell, int Joint, double *PointValues,
138  double *Functionals)
139 {
140 }
141 
142 TNodalFunctional2D *NF_D_T_P2_2D_Obj = new TNodalFunctional2D
143  (NF_D_T_P2_2D, 6, 0, 7, 0, NF_D_T_P2_2D_Xi, NF_D_T_P2_2D_Eta,
144  NF_D_T_P2_2D_T_P, NF_D_T_P2_2D_EvalAll, NF_D_T_P2_2D_EvalEdge);
145 
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