ParMooN
 All Classes Functions Variables Friends Pages
NF_C_T_B3_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_B3_2D_Xi[] = {
11  0.0000000000000000, 0.3333333333333333,
12  0.6666666666666667, 1.0000000000000000,
13  0.0000000000000000, 0.6666666666666667,
14  0.0000000000000000, 0.3333333333333333,
15  0.0000000000000000,
16  0.3333333333333333,
17  0.7974269853530873, 0.1012865073234563,
18  0.1012865073234563,
19  0.05971587178976982, 0.4701420641051151,
20  0.4701420641051151 };
21 static double NF_C_T_B3_2D_Eta[] = {
22  0.0000000000000000, 0.0000000000000000,
23  0.0000000000000000, 0.0000000000000000,
24  0.3333333333333333, 0.3333333333333333,
25  0.6666666666666667, 0.6666666666666667,
26  1.0000000000000000,
27  0.3333333333333333,
28  0.1012865073234563, 0.7974269853530873,
29  0.1012865073234563,
30  0.4701420641051151, 0.4701420641051151,
31  0.05971587178976982 };
32 static double NF_C_T_B3_2D_T[] = {
33  -1.0000000000000000, -0.3333333333333333,
34  0.3333333333333333, 1.0000000000000000 };
35 
36 static double NF_C_T_B3_2D_W[] = {
37  0.1125,
38  0.0629695902724136, 0.0629695902724136,
39  0.0629695902724136,
40  0.0661970763942531, 0.0661970763942531,
41  0.0661970763942531 };
42 
43 void NF_C_T_B3_2D_EvalAll(TCollection *Coll, TBaseCell *Cell, double *PointValues,
44  double *Functionals)
45 {
46  Functionals[0] = PointValues[0];
47  Functionals[1] = PointValues[1];
48  Functionals[2] = PointValues[2];
49  Functionals[3] = PointValues[3];
50  Functionals[4] = PointValues[4];
51  Functionals[5] = PointValues[5];
52  Functionals[6] = PointValues[6];
53  Functionals[7] = PointValues[7];
54  Functionals[8] = PointValues[8];
55  Functionals[9] =(NF_C_T_B3_2D_W[0]*PointValues[9]
56  +NF_C_T_B3_2D_W[1]*PointValues[10]
57  +NF_C_T_B3_2D_W[2]*PointValues[11]
58  +NF_C_T_B3_2D_W[3]*PointValues[12]
59  +NF_C_T_B3_2D_W[4]*PointValues[13]
60  +NF_C_T_B3_2D_W[5]*PointValues[14]
61  +NF_C_T_B3_2D_W[6]*PointValues[15])*360;
62  Functionals[10] =(NF_C_T_B3_2D_W[0]*PointValues[9]*NF_C_T_B3_2D_Xi[9]
63  +NF_C_T_B3_2D_W[1]*PointValues[10]*NF_C_T_B3_2D_Xi[10]
64  +NF_C_T_B3_2D_W[2]*PointValues[11]*NF_C_T_B3_2D_Xi[11]
65  +NF_C_T_B3_2D_W[3]*PointValues[12]*NF_C_T_B3_2D_Xi[12]
66  +NF_C_T_B3_2D_W[4]*PointValues[13]*NF_C_T_B3_2D_Xi[13]
67  +NF_C_T_B3_2D_W[5]*PointValues[14]*NF_C_T_B3_2D_Xi[14]
68  +NF_C_T_B3_2D_W[6]*PointValues[15]*NF_C_T_B3_2D_Xi[15])*360;
69  Functionals[11] =(NF_C_T_B3_2D_W[0]*PointValues[9]*NF_C_T_B3_2D_Eta[9]
70  +NF_C_T_B3_2D_W[1]*PointValues[10]*NF_C_T_B3_2D_Eta[10]
71  +NF_C_T_B3_2D_W[2]*PointValues[11]*NF_C_T_B3_2D_Eta[11]
72  +NF_C_T_B3_2D_W[3]*PointValues[12]*NF_C_T_B3_2D_Eta[12]
73  +NF_C_T_B3_2D_W[4]*PointValues[13]*NF_C_T_B3_2D_Eta[13]
74  +NF_C_T_B3_2D_W[5]*PointValues[14]*NF_C_T_B3_2D_Eta[14]
75  +NF_C_T_B3_2D_W[6]*PointValues[15]*NF_C_T_B3_2D_Eta[15])*360;
76 }
77 
78 void NF_C_T_B3_2D_EvalEdge(TCollection *Coll, TBaseCell *Cell, int Joint, double *PointValues,
79  double *Functionals)
80 {
81  Functionals[0] = PointValues[0];
82  Functionals[1] = PointValues[1];
83  Functionals[2] = PointValues[2];
84  Functionals[3] = PointValues[3];
85 }
86 
87 TNodalFunctional2D *NF_C_T_B3_2D_Obj = new TNodalFunctional2D
88  (NF_C_T_B3_2D, 12, 4, 16, 4, NF_C_T_B3_2D_Xi, NF_C_T_B3_2D_Eta,
89  NF_C_T_B3_2D_T, NF_C_T_B3_2D_EvalAll, NF_C_T_B3_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