ParMooN
 All Classes Functions Variables Friends Pages
NF_C_H_UL1_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_H_UL1_3D_Xi[] = { -1, 1, -1, 1, -1, 1, -1, 1,
14  -.5773502691896257645091486, .5773502691896257645091486,
15  -.5773502691896257645091486, .5773502691896257645091486,
16  -.5773502691896257645091486, .5773502691896257645091486,
17  -.5773502691896257645091486, .5773502691896257645091486 };
18 
19 static double NF_C_H_UL1_3D_Eta[] = { -1, -1, 1, 1, -1, -1, 1, 1,
20  -.5773502691896257645091486, -.5773502691896257645091486,
21  .5773502691896257645091486, .5773502691896257645091486,
22  -.5773502691896257645091486, -.5773502691896257645091486,
23  .5773502691896257645091486, .5773502691896257645091486 };
24 
25 static double NF_C_H_UL1_3D_Zeta[] = { -1, -1, -1, -1, 1, 1, 1, 1,
26  -.5773502691896257645091486, -.5773502691896257645091486,
27  -.5773502691896257645091486, -.5773502691896257645091486,
28  .5773502691896257645091486, .5773502691896257645091486,
29  .5773502691896257645091486, .5773502691896257645091486 };
30 
31 /* face 0 0 1 2 3 */
32 static double NF_C_H_UL1_3D_F0_Xi[] = { -1, 1, -1, 1 };
33 static double NF_C_H_UL1_3D_F0_Eta[] = { -1, -1, 1, 1 };
34 static double NF_C_H_UL1_3D_F0_Zeta[] = { -1, -1, -1, -1 };
35 
36 /* face 1 0 4 1 5 */
37 static double NF_C_H_UL1_3D_F1_Xi[] = { -1, -1, 1, 1 };
38 static double NF_C_H_UL1_3D_F1_Eta[] = { -1, -1, -1, -1 };
39 static double NF_C_H_UL1_3D_F1_Zeta[] = { -1, 1, -1, 1 };
40 
41 /* face 2 1 5 3 7 */
42 static double NF_C_H_UL1_3D_F2_Xi[] = { 1, 1, 1, 1 };
43 static double NF_C_H_UL1_3D_F2_Eta[] = { -1, -1, 1, 1 };
44 static double NF_C_H_UL1_3D_F2_Zeta[] = { -1, 1, -1, 1 };
45 
46 /* face 3 3 7 2 6 */
47 static double NF_C_H_UL1_3D_F3_Xi[] = { 1, 1, -1, -1 };
48 static double NF_C_H_UL1_3D_F3_Eta[] = { 1, 1, 1, -1 };
49 static double NF_C_H_UL1_3D_F3_Zeta[] = { -1, 1, -1, 1 };
50 
51 /* face 4 0 2 4 6 */
52 static double NF_C_H_UL1_3D_F4_Xi[] = { -1, -1, -1, -1 };
53 static double NF_C_H_UL1_3D_F4_Eta[] = { -1, 1, -1, 1 };
54 static double NF_C_H_UL1_3D_F4_Zeta[] = { -1, -1, 1, 1 };
55 
56 /* face 5 4 6 5 7 */
57 static double NF_C_H_UL1_3D_F5_Xi[] = { -1, -1, 1, 1 };
58 static double NF_C_H_UL1_3D_F5_Eta[] = { -1, 1, -1, 1 };
59 static double NF_C_H_UL1_3D_F5_Zeta[] = { 1, 1, 1, 1 };
60 
61 static double *NF_C_H_UL1_3D_XiArray[6] = {
62  NF_C_H_UL1_3D_F0_Xi,
63  NF_C_H_UL1_3D_F1_Xi,
64  NF_C_H_UL1_3D_F2_Xi,
65  NF_C_H_UL1_3D_F3_Xi,
66  NF_C_H_UL1_3D_F4_Xi,
67  NF_C_H_UL1_3D_F5_Xi };
68 
69 static double *NF_C_H_UL1_3D_EtaArray[6] = {
70  NF_C_H_UL1_3D_F0_Eta,
71  NF_C_H_UL1_3D_F1_Eta,
72  NF_C_H_UL1_3D_F2_Eta,
73  NF_C_H_UL1_3D_F3_Eta,
74  NF_C_H_UL1_3D_F4_Eta,
75  NF_C_H_UL1_3D_F5_Eta };
76 
77 static double *NF_C_H_UL1_3D_ZetaArray[6] = {
78  NF_C_H_UL1_3D_F0_Zeta,
79  NF_C_H_UL1_3D_F1_Zeta,
80  NF_C_H_UL1_3D_F2_Zeta,
81  NF_C_H_UL1_3D_F3_Zeta,
82  NF_C_H_UL1_3D_F4_Zeta,
83  NF_C_H_UL1_3D_F5_Zeta };
84 
85 static double NF_C_H_UL1_3D_T[4] = { 0, 1, 0, 1 };
86 static double NF_C_H_UL1_3D_S[4] = { 0, 0, 1, 1 };
87 
88 void NF_C_H_UL1_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
89  double *PointValues, double *Functionals)
90 {
91  Functionals[0] = PointValues[0];
92  Functionals[1] = PointValues[1];
93  Functionals[2] = PointValues[2];
94  Functionals[3] = PointValues[3];
95  Functionals[4] = PointValues[4];
96  Functionals[5] = PointValues[5];
97  Functionals[6] = PointValues[6];
98  Functionals[7] = PointValues[7];
99  Functionals[8] = PointValues[8]
100  +PointValues[9]
101  +PointValues[10]
102  +PointValues[11]
103  +PointValues[12]
104  +PointValues[13]
105  +PointValues[14]
106  +PointValues[15];
107 }
108 
109 void NF_C_H_UL1_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
110  double *PointValues, double *Functionals)
111 {
112  Functionals[0] = PointValues[0];
113  Functionals[1] = PointValues[1];
114  Functionals[2] = PointValues[2];
115  Functionals[3] = PointValues[3];
116 }
117 
118 static int NF_C_H_UL1_3D_N_AllFunctionals = 9;
119 static int NF_C_H_UL1_3D_N_PointsAll = 16;
120 static int NF_C_H_UL1_3D_N_FaceFunctionals[] = { 4, 4, 4, 4, 4, 4 };
121 static int NF_C_H_UL1_3D_N_PointsFace[] = { 4, 4, 4, 4, 4, 4 };
122 
123 TNodalFunctional3D *NF_C_H_UL1_3D_Obj = new TNodalFunctional3D
124  (NF_C_H_UL1_3D, NF_C_H_UL1_3D_N_AllFunctionals,
125  NF_C_H_UL1_3D_N_FaceFunctionals, NF_C_H_UL1_3D_N_PointsAll,
126  NF_C_H_UL1_3D_N_PointsFace,
127  NF_C_H_UL1_3D_Xi, NF_C_H_UL1_3D_Eta, NF_C_H_UL1_3D_Zeta,
128  NF_C_H_UL1_3D_XiArray, NF_C_H_UL1_3D_EtaArray,
129  NF_C_H_UL1_3D_ZetaArray,
130  NF_C_H_UL1_3D_T, NF_C_H_UL1_3D_S,
131  NF_C_H_UL1_3D_EvalAll, NF_C_H_UL1_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