ParMooN
 All Classes Functions Variables Friends Pages
NF_D_H_P1_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_D_H_P1_3D_Xi[] = {
14  -0.5773502691896257645091489, 0.5773502691896257645091489,
15  -0.5773502691896257645091489, 0.5773502691896257645091489,
16  -0.5773502691896257645091489, 0.5773502691896257645091489,
17  -0.5773502691896257645091489, 0.5773502691896257645091489 };
18 static double NF_D_H_P1_3D_Eta[] = {
19  -0.5773502691896257645091489, -0.5773502691896257645091489,
20  0.5773502691896257645091489, 0.5773502691896257645091489,
21  -0.5773502691896257645091489, -0.5773502691896257645091489,
22  0.5773502691896257645091489, 0.5773502691896257645091489 };
23 static double NF_D_H_P1_3D_Zeta[] = {
24  -0.5773502691896257645091489, -0.5773502691896257645091489,
25  -0.5773502691896257645091489, -0.5773502691896257645091489,
26  0.5773502691896257645091489, 0.5773502691896257645091489,
27  0.5773502691896257645091489, 0.5773502691896257645091489 };
28 
29 /* face 0 0 */
30 static double *NF_D_H_P1_3D_F0_Xi = NULL;
31 static double *NF_D_H_P1_3D_F0_Eta = NULL;
32 static double *NF_D_H_P1_3D_F0_Zeta = NULL;
33 
34 /* face 1 1 */
35 static double *NF_D_H_P1_3D_F1_Xi = NULL;
36 static double *NF_D_H_P1_3D_F1_Eta = NULL;
37 static double *NF_D_H_P1_3D_F1_Zeta = NULL;
38 
39 /* face 2 2 */
40 static double *NF_D_H_P1_3D_F2_Xi = NULL;
41 static double *NF_D_H_P1_3D_F2_Eta = NULL;
42 static double *NF_D_H_P1_3D_F2_Zeta = NULL;
43 
44 /* face 3 3 */
45 static double *NF_D_H_P1_3D_F3_Xi = NULL;
46 static double *NF_D_H_P1_3D_F3_Eta = NULL;
47 static double *NF_D_H_P1_3D_F3_Zeta = NULL;
48 
49 /* face 4 4 */
50 static double *NF_D_H_P1_3D_F4_Xi = NULL;
51 static double *NF_D_H_P1_3D_F4_Eta = NULL;
52 static double *NF_D_H_P1_3D_F4_Zeta = NULL;
53 
54 /* face 5 5 */
55 static double *NF_D_H_P1_3D_F5_Xi = NULL;
56 static double *NF_D_H_P1_3D_F5_Eta = NULL;
57 static double *NF_D_H_P1_3D_F5_Zeta = NULL;
58 
59 static double *NF_D_H_P1_3D_XiArray[6] = {
60  NF_D_H_P1_3D_F0_Xi,
61  NF_D_H_P1_3D_F1_Xi,
62  NF_D_H_P1_3D_F2_Xi,
63  NF_D_H_P1_3D_F3_Xi,
64  NF_D_H_P1_3D_F4_Xi,
65  NF_D_H_P1_3D_F5_Xi };
66 
67 static double *NF_D_H_P1_3D_EtaArray[6] = {
68  NF_D_H_P1_3D_F0_Eta,
69  NF_D_H_P1_3D_F1_Eta,
70  NF_D_H_P1_3D_F2_Eta,
71  NF_D_H_P1_3D_F3_Eta,
72  NF_D_H_P1_3D_F4_Eta,
73  NF_D_H_P1_3D_F5_Eta };
74 
75 static double *NF_D_H_P1_3D_ZetaArray[6] = {
76  NF_D_H_P1_3D_F0_Zeta,
77  NF_D_H_P1_3D_F1_Zeta,
78  NF_D_H_P1_3D_F2_Zeta,
79  NF_D_H_P1_3D_F3_Zeta,
80  NF_D_H_P1_3D_F4_Zeta,
81  NF_D_H_P1_3D_F5_Zeta };
82 
83 static double *NF_D_H_P1_3D_T = NULL;
84 static double *NF_D_H_P1_3D_S = NULL;
85 
86 void NF_D_H_P1_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
87  double *PointValues, double *Functionals)
88 {
89  Functionals[0] = ( PointValues[0]+PointValues[1]
90  +PointValues[2]+PointValues[3]
91  +PointValues[4]+PointValues[5]
92  +PointValues[6]+PointValues[7] ) * 0.125;
93  Functionals[1] = ( PointValues[0]*NF_D_H_P1_3D_Xi[0]
94  +PointValues[1]*NF_D_H_P1_3D_Xi[1]
95  +PointValues[2]*NF_D_H_P1_3D_Xi[2]
96  +PointValues[3]*NF_D_H_P1_3D_Xi[3]
97  +PointValues[4]*NF_D_H_P1_3D_Xi[4]
98  +PointValues[5]*NF_D_H_P1_3D_Xi[5]
99  +PointValues[6]*NF_D_H_P1_3D_Xi[6]
100  +PointValues[7]*NF_D_H_P1_3D_Xi[7] ) * 0.375;
101  Functionals[2] = ( PointValues[0]*NF_D_H_P1_3D_Eta[0]
102  +PointValues[1]*NF_D_H_P1_3D_Eta[1]
103  +PointValues[2]*NF_D_H_P1_3D_Eta[2]
104  +PointValues[3]*NF_D_H_P1_3D_Eta[3]
105  +PointValues[4]*NF_D_H_P1_3D_Eta[4]
106  +PointValues[5]*NF_D_H_P1_3D_Eta[5]
107  +PointValues[6]*NF_D_H_P1_3D_Eta[6]
108  +PointValues[7]*NF_D_H_P1_3D_Eta[7] ) * 0.375;
109  Functionals[3] = ( PointValues[0]*NF_D_H_P1_3D_Zeta[0]
110  +PointValues[1]*NF_D_H_P1_3D_Zeta[1]
111  +PointValues[2]*NF_D_H_P1_3D_Zeta[2]
112  +PointValues[3]*NF_D_H_P1_3D_Zeta[3]
113  +PointValues[4]*NF_D_H_P1_3D_Zeta[4]
114  +PointValues[5]*NF_D_H_P1_3D_Zeta[5]
115  +PointValues[6]*NF_D_H_P1_3D_Zeta[6]
116  +PointValues[7]*NF_D_H_P1_3D_Zeta[7] ) * 0.375;
117 }
118 
119 void NF_D_H_P1_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
120  double *PointValues, double *Functionals)
121 {
122 }
123 
124 static int NF_D_H_P1_3D_N_AllFunctionals = 4;
125 static int NF_D_H_P1_3D_N_PointsAll = 8;
126 static int NF_D_H_P1_3D_N_FaceFunctionals[] = { 0, 0, 0, 0, 0, 0 };
127 static int NF_D_H_P1_3D_N_PointsFace[] = { 0, 0, 0, 0, 0, 0 };
128 
129 TNodalFunctional3D *NF_D_H_P1_3D_Obj = new TNodalFunctional3D
130  (NF_D_H_P1_3D, NF_D_H_P1_3D_N_AllFunctionals,
131  NF_D_H_P1_3D_N_FaceFunctionals, NF_D_H_P1_3D_N_PointsAll,
132  NF_D_H_P1_3D_N_PointsFace,
133  NF_D_H_P1_3D_Xi, NF_D_H_P1_3D_Eta, NF_D_H_P1_3D_Zeta,
134  NF_D_H_P1_3D_XiArray, NF_D_H_P1_3D_EtaArray,
135  NF_D_H_P1_3D_ZetaArray,
136  NF_D_H_P1_3D_T, NF_D_H_P1_3D_S,
137  NF_D_H_P1_3D_EvalAll, NF_D_H_P1_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