ParMooN
 All Classes Functions Variables Friends Pages
NF_C_T_B2_3D.h
1 // ***********************************************************************
2 // P2 element, with face and cell bubble conforming, 3D
3 //
4 // Author: Sashikumaar Ganesan
5 //
6 // ***********************************************************************
7 
8 /*
9  TNodalFunctional3D(NodalFunctional3D id,
10  int n_allfunctionals, int *n_facefunctionals,
11  int n_pointsall, int *n_pointsface,
12  double *xi, double *eta, double *zeta,
13  double **xiarray, double **etaarray,
14  double **zetaarray,
15  DoubleFunctVect *evalall,
16  DoubleFunctVect *evalface);
17 */
18 
19 /* for all functionals */
20 static double NF_C_T_B2_3D_Xi[] = { 0, 0.5, 1, 0, 0.5, 0,
21  0, 0.5, 0,
22  0,
23  0.33333333333333333333, 0.33333333333333333333, 0.33333333333333333333, 0,
24  0.25 };
25 static double NF_C_T_B2_3D_Eta[] = { 0, 0, 0, 0.5, 0.5, 1,
26  0, 0, 0.5,
27  0,
28  0.33333333333333333333, 0, 0.33333333333333333333, 0.33333333333333333333,
29  0.25 };
30 static double NF_C_T_B2_3D_Zeta[] = { 0, 0, 0, 0, 0, 0,
31  0.5, 0.5, 0.5,
32  1,
33  0, 0.33333333333333333333, 0.33333333333333333333, 0.33333333333333333333,
34  0.25 };
35 
36 /* face 0 0, 1, 2, 3, 4, 5, 10*/
37 static double NF_C_T_B2_3D_F0_Xi[] = { 0, 0.5, 1, 0, 0.5, 0, 0.33333333333333333333 };
38 static double NF_C_T_B2_3D_F0_Eta[] = { 0, 0, 0, 0.5, 0.5, 1, 0.33333333333333333333 };
39 static double NF_C_T_B2_3D_F0_Zeta[] = { 0, 0, 0, 0, 0, 0, 0 };
40 
41 /* face 1 0, 6, 9, 1, 7, 2, 11 */
42 static double NF_C_T_B2_3D_F1_Xi[] = { 0, 0, 0, 0.5, 0.5, 1, 0.33333333333333333333 };
43 static double NF_C_T_B2_3D_F1_Eta[] = { 0, 0, 0, 0, 0, 0, 0 };
44 static double NF_C_T_B2_3D_F1_Zeta[] = { 0, 0.5, 1, 0, 0.5, 0, 0.33333333333333333333 };
45 
46 /* face 2 5, 4, 2, 8, 7, 9, 12 */
47 static double NF_C_T_B2_3D_F2_Xi[] = { 0, 0.5, 1, 0, 0.5, 0, 0.33333333333333333333 };
48 static double NF_C_T_B2_3D_F2_Eta[] = { 1, 0.5, 0, 0.5, 0, 0, 0.33333333333333333333 };
49 static double NF_C_T_B2_3D_F2_Zeta[] = { 0, 0, 0, 0.5, 0.5, 1, 0.33333333333333333333 };
50 
51 /* face 3 0, 3, 5, 6, 8, 9, 13 */
52 static double NF_C_T_B2_3D_F3_Xi[] = { 0, 0, 0, 0, 0, 0, 0 };
53 static double NF_C_T_B2_3D_F3_Eta[] = { 0, 0.5, 1, 0, 0.5, 0, 0.33333333333333333333 };
54 static double NF_C_T_B2_3D_F3_Zeta[] = { 0, 0, 0, 0.5, 0.5, 1, 0.33333333333333333333 };
55 
56 static double *NF_C_T_B2_3D_XiArray[4] = {
57  NF_C_T_B2_3D_F0_Xi,
58  NF_C_T_B2_3D_F1_Xi,
59  NF_C_T_B2_3D_F2_Xi,
60  NF_C_T_B2_3D_F3_Xi };
61 
62 static double *NF_C_T_B2_3D_EtaArray[4] = {
63  NF_C_T_B2_3D_F0_Eta,
64  NF_C_T_B2_3D_F1_Eta,
65  NF_C_T_B2_3D_F2_Eta,
66  NF_C_T_B2_3D_F3_Eta };
67 
68 static double *NF_C_T_B2_3D_ZetaArray[4] = {
69  NF_C_T_B2_3D_F0_Zeta,
70  NF_C_T_B2_3D_F1_Zeta,
71  NF_C_T_B2_3D_F2_Zeta,
72  NF_C_T_B2_3D_F3_Zeta };
73 
74 static double NF_C_T_B2_3D_T[7] = { 0, 0.5, 1, 0, 0.5, 0, 0.33333333333333333333 };
75 static double NF_C_T_B2_3D_S[7] = { 0, 0, 0, 0.5, 0.5, 1, 0.33333333333333333333 };
76 
77 void NF_C_T_B2_3D_EvalAll(TCollection *Coll, TBaseCell *Cell, double *PointValues, double *Functionals)
78 {
79  memcpy(Functionals, PointValues, 15*SizeOfDouble);
80 }
81 
82 void NF_C_T_B2_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
83  double *PointValues, double *Functionals)
84 {
85  memcpy(Functionals, PointValues, 7*SizeOfDouble);
86 }
87 
88 static int NF_C_T_B2_3D_N_AllFunctionals = 15;
89 static int NF_C_T_B2_3D_N_PointsAll = 15;
90 static int NF_C_T_B2_3D_N_FaceFunctionals[] = { 7, 7, 7, 7, 7, 7, 7};
91 static int NF_C_T_B2_3D_N_PointsFace[] = { 7, 7, 7, 7, 7, 7, 7};
92 
93 TNodalFunctional3D *NF_C_T_B2_3D_Obj = new TNodalFunctional3D
94  (NF_C_T_B2_3D, NF_C_T_B2_3D_N_AllFunctionals,
95  NF_C_T_B2_3D_N_FaceFunctionals, NF_C_T_B2_3D_N_PointsAll,
96  NF_C_T_B2_3D_N_PointsFace,
97  NF_C_T_B2_3D_Xi, NF_C_T_B2_3D_Eta, NF_C_T_B2_3D_Zeta,
98  NF_C_T_B2_3D_XiArray, NF_C_T_B2_3D_EtaArray,
99  NF_C_T_B2_3D_ZetaArray,
100  NF_C_T_B2_3D_T, NF_C_T_B2_3D_S,
101  NF_C_T_B2_3D_EvalAll, NF_C_T_B2_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