ParMooN
 All Classes Functions Variables Friends Pages
BF_C_T_P2_3D.h
1 // ***********************************************************************
2 // P2 element, conforming, 3D
3 // ***********************************************************************
4 
5 static void C_T_P2_3D_Funct(double xi, double eta, double zeta,
6  double *values)
7 {
8  double t1, t2, t3, t4, t5, t6;
9 
10  t1 = xi*xi;
11  t2 = xi*eta;
12  t3 = xi*zeta;
13  t4 = eta*eta;
14  t5 = eta*zeta;
15  t6 = zeta*zeta;
16 
17  values[0] = 1.0-3.0*xi-3.0*eta-3.0*zeta+2.0*t1+4.0*t2+4.0*t3
18  +2.0*t4+4.0*t5+2.0*t6;
19  values[1] = 4.0*xi-4.0*t1-4.0*t2-4.0*t3;
20  values[2] = -xi+2.0*t1;
21  values[3] = 4.0*eta-4.0*t2-4.0*t4-4.0*t5;
22  values[4] = 4.0*t2;
23  values[5] = -eta+2.0*t4;
24  values[6] = 4.0*zeta-4.0*t3-4.0*t5-4.0*t6;
25  values[7] = 4.0*t3;
26  values[8] = 4.0*t5;
27  values[9] = -zeta+2.0*t6;
28 }
29 
30 static void C_T_P2_3D_DeriveXi(double xi, double eta, double zeta,
31  double *values)
32 {
33  values[0] = -3.0+4.0*xi+4.0*eta+4.0*zeta;
34  values[1] = 4.0-8.0*xi-4.0*eta-4.0*zeta;
35  values[2] = -1.0+4.0*xi;
36  values[3] = -4.0*eta;
37  values[4] = 4.0*eta;
38  values[5] = 0.0;
39  values[6] = -4.0*zeta;
40  values[7] = 4.0*zeta;
41  values[8] = 0.0;
42  values[9] = 0.0;
43 }
44 
45 static void C_T_P2_3D_DeriveEta(double xi, double eta, double zeta,
46  double *values)
47 {
48  values[0] = -3.0+4.0*xi+4.0*eta+4.0*zeta;
49  values[1] = -4.0*xi;
50  values[2] = 0.0;
51  values[3] = 4.0-4.0*xi-8.0*eta-4.0*zeta;
52  values[4] = 4.0*xi;
53  values[5] = -1.0+4.0*eta;
54  values[6] = -4.0*zeta;
55  values[7] = 0.0;
56  values[8] = 4.0*zeta;
57  values[9] = 0.0;
58 }
59 
60 static void C_T_P2_3D_DeriveZeta(double xi, double eta, double zeta,
61  double *values)
62 {
63  values[0] = -3.0+4.0*xi+4.0*eta+4.0*zeta;
64  values[1] = -4.0*xi;
65  values[2] = 0.0;
66  values[3] = -4.0*eta;
67  values[4] = 0.0;
68  values[5] = 0.0;
69  values[6] = 4.0-4.0*xi-4.0*eta-8.0*zeta;
70  values[7] = 4.0*xi;
71  values[8] = 4.0*eta;
72  values[9] = -1.0+4.0*zeta;
73 }
74 
75 static void C_T_P2_3D_DeriveXiXi(double xi, double eta, double zeta,
76  double *values)
77 {
78  values[0] = 4.0;
79  values[1] = -8.0;
80  values[2] = 4.0;
81  values[3] = 0.0;
82  values[4] = 0.0;
83  values[5] = 0.0;
84  values[6] = 0.0;
85  values[7] = 0.0;
86  values[8] = 0.0;
87  values[9] = 0.0;
88 }
89 
90 static void C_T_P2_3D_DeriveXiEta(double xi, double eta, double zeta,
91  double *values)
92 {
93  values[0] = 4.0;
94  values[1] = -4.0;
95  values[2] = 0.0;
96  values[3] = -4.0;
97  values[4] = 4.0;
98  values[5] = 0.0;
99  values[6] = 0.0;
100  values[7] = 0.0;
101  values[8] = 0.0;
102  values[9] = 0.0;
103 }
104 
105 static void C_T_P2_3D_DeriveXiZeta(double xi, double eta, double zeta,
106  double *values)
107 {
108  values[0] = 4.0;
109  values[1] = -4.0;
110  values[2] = 0.0;
111  values[3] = 0.0;
112  values[4] = 0.0;
113  values[5] = 0.0;
114  values[6] = -4.0;
115  values[7] = 4.0;
116  values[8] = 0.0;
117  values[9] = 0.0;
118 }
119 
120 static void C_T_P2_3D_DeriveEtaEta(double xi, double eta, double zeta,
121  double *values)
122 {
123  values[0] = 4.0;
124  values[1] = 0.0;
125  values[2] = 0.0;
126  values[3] = -8.0;
127  values[4] = 0.0;
128  values[5] = 4.0;
129  values[6] = 0.0;
130  values[7] = 0.0;
131  values[8] = 0.0;
132  values[9] = 0.0;
133 }
134 
135 static void C_T_P2_3D_DeriveEtaZeta(double xi, double eta, double zeta,
136  double *values)
137 {
138  values[0] = 4.0;
139  values[1] = 0.0;
140  values[2] = 0.0;
141  values[3] = -4.0;
142  values[4] = 0.0;
143  values[5] = 0.0;
144  values[6] = -4.0;
145  values[7] = 0.0;
146  values[8] = 4.0;
147  values[9] = 0.0;
148 }
149 
150 static void C_T_P2_3D_DeriveZetaZeta(double xi, double eta, double zeta,
151  double *values)
152 {
153  values[0] = 4.0;
154  values[1] = 0.0;
155  values[2] = 0.0;
156  values[3] = 0.0;
157  values[4] = 0.0;
158  values[5] = 0.0;
159  values[6] = -8.0;
160  values[7] = 0.0;
161  values[8] = 0.0;
162  values[9] = 4.0;
163 }
164 
165 TBaseFunct3D *BF_C_T_P2_3D_Obj =
166 new TBaseFunct3D(10, BF_C_T_P2_3D, BFUnitTetrahedron,
167  C_T_P2_3D_Funct, C_T_P2_3D_DeriveXi,
168  C_T_P2_3D_DeriveEta, C_T_P2_3D_DeriveZeta,
169  C_T_P2_3D_DeriveXiXi, C_T_P2_3D_DeriveXiEta,
170  C_T_P2_3D_DeriveXiZeta, C_T_P2_3D_DeriveEtaEta,
171  C_T_P2_3D_DeriveEtaZeta, C_T_P2_3D_DeriveZetaZeta,
172  2, 2,
173  0, NULL);
Definition: BaseFunct3D.h:27