ParMooN
 All Classes Functions Variables Friends Pages
NF_C_T_P2_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_P2_3D_Xi[] = { 0, 0.5, 1,
14  0, 0.5, 0,
15  0, 0.5, 0,
16  0 };
17 static double NF_C_T_P2_3D_Eta[] = { 0, 0, 0,
18  0.5, 0.5, 1,
19  0, 0, 0.5,
20  0 };
21 static double NF_C_T_P2_3D_Zeta[] = { 0, 0, 0,
22  0, 0, 0,
23  0.5, 0.5, 0.5,
24  1 };
25 
26 /* face 0 0, 1, 2, 3, 4, 5 */
27 static double NF_C_T_P2_3D_F0_Xi[] = { 0, 0.5, 1, 0, 0.5, 0 };
28 static double NF_C_T_P2_3D_F0_Eta[] = { 0, 0, 0, 0.5, 0.5, 1 };
29 static double NF_C_T_P2_3D_F0_Zeta[] = { 0, 0, 0, 0, 0, 0 };
30 
31 /* face 1 0, 6, 9, 1, 7, 2 */
32 static double NF_C_T_P2_3D_F1_Xi[] = { 0, 0, 0, 0.5, 0.5, 1 };
33 static double NF_C_T_P2_3D_F1_Eta[] = { 0, 0, 0, 0, 0, 0 };
34 static double NF_C_T_P2_3D_F1_Zeta[] = { 0, 0.5, 1, 0, 0.5, 0 };
35 
36 /* face 2 5, 4, 2, 8, 7, 9 */
37 static double NF_C_T_P2_3D_F2_Xi[] = { 0, 0.5, 1, 0, 0.5, 0 };
38 static double NF_C_T_P2_3D_F2_Eta[] = { 1, 0.5, 0, 0.5, 0, 0 };
39 static double NF_C_T_P2_3D_F2_Zeta[] = { 0, 0, 0, 0.5, 0.5, 1 };
40 
41 /* face 3 0, 3, 5, 6, 8, 9 */
42 static double NF_C_T_P2_3D_F3_Xi[] = { 0, 0, 0, 0, 0, 0 };
43 static double NF_C_T_P2_3D_F3_Eta[] = { 0, 0.5, 1, 0, 0.5, 0 };
44 static double NF_C_T_P2_3D_F3_Zeta[] = { 0, 0, 0, 0.5, 0.5, 1 };
45 
46 static double *NF_C_T_P2_3D_XiArray[4] = {
47  NF_C_T_P2_3D_F0_Xi,
48  NF_C_T_P2_3D_F1_Xi,
49  NF_C_T_P2_3D_F2_Xi,
50  NF_C_T_P2_3D_F3_Xi };
51 
52 static double *NF_C_T_P2_3D_EtaArray[4] = {
53  NF_C_T_P2_3D_F0_Eta,
54  NF_C_T_P2_3D_F1_Eta,
55  NF_C_T_P2_3D_F2_Eta,
56  NF_C_T_P2_3D_F3_Eta };
57 
58 static double *NF_C_T_P2_3D_ZetaArray[4] = {
59  NF_C_T_P2_3D_F0_Zeta,
60  NF_C_T_P2_3D_F1_Zeta,
61  NF_C_T_P2_3D_F2_Zeta,
62  NF_C_T_P2_3D_F3_Zeta };
63 
64 static double NF_C_T_P2_3D_T[6] = { 0, 0.5, 1, 0, 0.5, 0 };
65 static double NF_C_T_P2_3D_S[6] = { 0, 0, 0, 0.5, 0.5, 1 };
66 
67 void NF_C_T_P2_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
68  double *PointValues, double *Functionals)
69 {
70  memcpy(Functionals, PointValues, 10*SizeOfDouble);
71 }
72 
73 void NF_C_T_P2_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
74  double *PointValues, double *Functionals)
75 {
76  memcpy(Functionals, PointValues, 6*SizeOfDouble);
77 }
78 
79 static int NF_C_T_P2_3D_N_AllFunctionals = 10;
80 static int NF_C_T_P2_3D_N_PointsAll = 10;
81 static int NF_C_T_P2_3D_N_FaceFunctionals[] = { 6, 6, 6, 6, 6, 6 };
82 static int NF_C_T_P2_3D_N_PointsFace[] = { 6, 6, 6, 6, 6, 6 };
83 
84 TNodalFunctional3D *NF_C_T_P2_3D_Obj = new TNodalFunctional3D
85  (NF_C_T_P2_3D, NF_C_T_P2_3D_N_AllFunctionals,
86  NF_C_T_P2_3D_N_FaceFunctionals, NF_C_T_P2_3D_N_PointsAll,
87  NF_C_T_P2_3D_N_PointsFace,
88  NF_C_T_P2_3D_Xi, NF_C_T_P2_3D_Eta, NF_C_T_P2_3D_Zeta,
89  NF_C_T_P2_3D_XiArray, NF_C_T_P2_3D_EtaArray,
90  NF_C_T_P2_3D_ZetaArray,
91  NF_C_T_P2_3D_T, NF_C_T_P2_3D_S,
92  NF_C_T_P2_3D_EvalAll, NF_C_T_P2_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