ParMooN
 All Classes Functions Variables Friends Pages
NF_C_T_P3_3D.h
1 /*
2  TNodalFunctional3D(NodalFunctional3D id,
3  int n_allfunctionals, int *n_facefunctionals,
4  int n_pointsall, int *n_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_C_T_P3_3D_Xi[] = {
14  0, 0.33333333333333333333, 0.66666666666666666667, 1,
15  0, 0.33333333333333333333, 0.66666666666666666667,
16  0, 0.33333333333333333333,
17  0,
18  0, 0.33333333333333333333, 0.66666666666666666667,
19  0, 0.33333333333333333333,
20  0,
21  0, 0.33333333333333333333,
22  0,
23  0 };
24 static double NF_C_T_P3_3D_Eta[] = {
25  0, 0, 0, 0,
26  0.33333333333333333333, 0.33333333333333333333,
27  0.33333333333333333333,
28  0.66666666666666666667, 0.66666666666666666667,
29  1,
30  0, 0, 0,
31  0.33333333333333333333, 0.33333333333333333333,
32  0.66666666666666666667,
33  0, 0,
34  0.33333333333333333333,
35  0 };
36 static double NF_C_T_P3_3D_Zeta[] = {
37  0, 0, 0, 0,
38  0, 0, 0,
39  0, 0,
40  0,
41  0.33333333333333333333, 0.33333333333333333333,
42  0.33333333333333333333, 0.33333333333333333333,
43  0.33333333333333333333, 0.33333333333333333333,
44  0.66666666666666666667, 0.66666666666666666667,
45  0.66666666666666666667,
46  1 };
47 
48 /* face 0 */
49 static double NF_C_T_P3_3D_F0_Xi[] = {
50  0, 0.33333333333333, 0.66666666666667,
51  1, 0, 0.33333333333333, 0.66666666666667,
52  0, 0.33333333333333, 0 };
53 static double NF_C_T_P3_3D_F0_Eta[] = {
54  0, 0, 0, 0,
55  0.33333333333333, 0.33333333333333,
56  0.33333333333333, 0.66666666666667,
57  0.66666666666667, 1 };
58 static double NF_C_T_P3_3D_F0_Zeta[] = {
59  0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
60 
61 /* face 1 */
62 static double NF_C_T_P3_3D_F1_Xi[] = {
63  0, 0, 0, 0,
64  0.33333333333333, 0.33333333333333,
65  0.33333333333333, 0.66666666666667,
66  0.66666666666667, 1 };
67 static double NF_C_T_P3_3D_F1_Eta[] = {
68  0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
69 static double NF_C_T_P3_3D_F1_Zeta[] = {
70  0, 0.33333333333333, 0.66666666666667,
71  1, 0, 0.33333333333333,
72  0.66666666666667, 0,
73  0.33333333333333, 0 };
74 
75 /* face 2 */
76 static double NF_C_T_P3_3D_F2_Xi[] = {
77  0, 0.33333333333333, 0.66666666666667,
78  1, 0, 0.33333333333333,
79  0.66666666666667, 0,
80  0.33333333333333, 0 };
81 static double NF_C_T_P3_3D_F2_Eta[] = {
82  1, 0.66666666666667, 0.33333333333333,
83  0, 0.66666666666667, 0.33333333333333,
84  0, 0.33333333333333, 0, 0 };
85 static double NF_C_T_P3_3D_F2_Zeta[] = {
86  0, 0, 0, 0,
87  0.33333333333333, 0.33333333333333,
88  0.33333333333333, 0.66666666666667,
89  0.66666666666667, 1 };
90 
91 /* face 3 */
92 static double NF_C_T_P3_3D_F3_Xi[] = {
93  0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
94 static double NF_C_T_P3_3D_F3_Eta[] = {
95  0, 0.33333333333333, 0.66666666666667,
96  1, 0, 0.33333333333333,
97  0.66666666666667, 0,
98  0.33333333333333, 0 };
99 static double NF_C_T_P3_3D_F3_Zeta[] = {
100  0, 0, 0, 0,
101  0.33333333333333, 0.33333333333333,
102  0.33333333333333, 0.66666666666667,
103  0.66666666666667, 1 };
104 
105 static double *NF_C_T_P3_3D_XiArray[4] = {
106  NF_C_T_P3_3D_F0_Xi,
107  NF_C_T_P3_3D_F1_Xi,
108  NF_C_T_P3_3D_F2_Xi,
109  NF_C_T_P3_3D_F3_Xi };
110 
111 static double *NF_C_T_P3_3D_EtaArray[4] = {
112  NF_C_T_P3_3D_F0_Eta,
113  NF_C_T_P3_3D_F1_Eta,
114  NF_C_T_P3_3D_F2_Eta,
115  NF_C_T_P3_3D_F3_Eta };
116 
117 static double *NF_C_T_P3_3D_ZetaArray[4] = {
118  NF_C_T_P3_3D_F0_Zeta,
119  NF_C_T_P3_3D_F1_Zeta,
120  NF_C_T_P3_3D_F2_Zeta,
121  NF_C_T_P3_3D_F3_Zeta };
122 
123 static double NF_C_T_P3_3D_T[10] = {
124  0, 0.33333333333333333333, 0.66666666666666666667, 1,
125  0, 0.33333333333333333333, 0.66666666666666666667,
126  0, 0.33333333333333333333,
127  0 };
128 static double NF_C_T_P3_3D_S[10] = {
129  0, 0, 0, 0,
130  0.33333333333333333333, 0.33333333333333333333,
131  0.33333333333333333333,
132  0.66666666666666666667, 0.66666666666666666667,
133  1 };
134 
135 void NF_C_T_P3_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
136  double *PointValues, double *Functionals)
137 {
138  memcpy(Functionals, PointValues, 20*SizeOfDouble);
139 }
140 
141 void NF_C_T_P3_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
142  double *PointValues, double *Functionals)
143 {
144  memcpy(Functionals, PointValues, 10*SizeOfDouble);
145 }
146 
147 static int NF_C_T_P3_3D_N_AllFunctionals = 20;
148 static int NF_C_T_P3_3D_N_PointsAll = 20;
149 static int NF_C_T_P3_3D_N_FaceFunctionals[] = { 10, 10, 10, 10, 10, 10 };
150 static int NF_C_T_P3_3D_N_PointsFace[] = { 10, 10, 10, 10, 10, 10 };
151 
152 TNodalFunctional3D *NF_C_T_P3_3D_Obj = new TNodalFunctional3D
153  (NF_C_T_P3_3D, NF_C_T_P3_3D_N_AllFunctionals,
154  NF_C_T_P3_3D_N_FaceFunctionals, NF_C_T_P3_3D_N_PointsAll,
155  NF_C_T_P3_3D_N_PointsFace,
156  NF_C_T_P3_3D_Xi, NF_C_T_P3_3D_Eta, NF_C_T_P3_3D_Zeta,
157  NF_C_T_P3_3D_XiArray, NF_C_T_P3_3D_EtaArray,
158  NF_C_T_P3_3D_ZetaArray,
159  NF_C_T_P3_3D_T, NF_C_T_P3_3D_S,
160  NF_C_T_P3_3D_EvalAll, NF_C_T_P3_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