ParMooN
 All Classes Functions Variables Friends Pages
BF_N_H_RT1_3D.h
1 // ***********************************************************************
2 // Raviart-Thomas element of first order on hexahedra, 3D
3 // ***********************************************************************
4 
5 static double N_H_RT1_3D_CM[1296] = {
6 //using tschebyscheff points (see NF_N_H_RT1_3D.h)
7  0,0,0,0,0,0,0,0,-0.015625,-0.015625,-0.015625,-0.015625,0,0,-0,0,0.015625,0.015625,0.015625,0.015625,0,0,0,0,0.1875,-0,-0,0,0,0,0,0,0,0,0,0,
8  0,0,0,0,0.015625,0.015625,0.015625,0.015625,0,0,0,0,-0.015625,-0.015625,-0.015625,-0.015625,0,0,0,0,0,0,0,0,0,0,0,0,0.1875,-0,-0,0,0,0,0,0,
9  0.015625,0.015625,0.015625,0.015625,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,-0.015625,-0.015625,-0.015625,-0.015625,0,0,0,0,0,0,0,0,0.1875,-0,0,0,
10  0,0,0,0,0,0,0,0,0.03125,0.03125,0.03125,0.03125,0,0,0,0,0.03125,0.03125,0.03125,0.03125,0,0,0,0,-0,0,0,-0,0,0,0,0,0,0,0,0,
11  0,0,0,0,-0.022097087,-0.022097087,0.022097087,0.022097087,0,0,0,0,-0.022097087,-0.022097087,0.022097087,0.022097087,0,0,0,0,0,0,0,0,0,0,0,0,-0,0.5625,-0,-0,0,0,0,0,
12  -0.022097087,0.022097087,-0.022097087,0.022097087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.022097087,0.022097087,-0.022097087,-0.022097087,0,0,0,0,0,0,0,0,-0,0.5625,-0,-0,
13  0,0,0,0,0,0,0,0,0.022097087,0.022097087,-0.022097087,-0.022097087,0,0,0,0,-0.022097087,0.022097087,-0.022097087,0.022097087,0,0,0,0,0,0.5625,0,-0,0,0,0,0,0,0,0,0,
14  0,0,0,0,0.03125,0.03125,0.03125,0.03125,0,0,0,0,0.03125,0.03125,0.03125,0.03125,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,-0,-0,0,0,0,0,
15  -0.022097087,-0.022097087,0.022097087,0.022097087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.022097087,-0.022097087,0.022097087,-0.022097087,0,0,0,0,0,0,0,0,0,-0,0.5625,-0,
16  0,0,0,0,0,0,0,0,0.022097087,-0.022097087,0.022097087,-0.022097087,0,0,0,0,-0.022097087,-0.022097087,0.022097087,0.022097087,0,0,0,0,-0,0,0.5625,-0,0,0,0,0,0,0,0,0,
17  0,0,0,0,-0.022097087,0.022097087,-0.022097087,0.022097087,0,0,0,0,0.022097087,-0.022097087,0.022097087,-0.022097087,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,0.5625,-0,0,0,0,0,
18  0.03125,0.03125,0.03125,0.03125,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,0.03125,0.03125,0.03125,0.03125,0,0,0,0,0,0,0,0,0,0,0,0,
19  0,0,0,0,0,0,0,0,0.046875,0.046875,0.046875,0.046875,0,0,-0,0,-0.046875,-0.046875,-0.046875,-0.046875,0,0,0,0,-0.1875,-0,-0,0,0,0,0,0,0,0,0,0,
20  0,0,0,0,-0.046875,-0.046875,-0.046875,-0.046875,0,0,0,0,0.046875,0.046875,0.046875,0.046875,0,0,0,0,0,0,0,0,0,0,0,0,-0.1875,0,0,-0,0,0,0,0,
21  -0.046875,-0.046875,-0.046875,-0.046875,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.046875,0.046875,0.046875,0.046875,0,0,0,0,0,0,0,0,-0.1875,0,-0,-0,
22  0,0,0,0,0,0,0,0,-0.044194174,-0.044194174,0.044194174,0.044194174,0,0,-0,0,-0.044194174,0.044194174,-0.044194174,0.044194174,0,0,0,0,0,-0,-0,0,0,0,0,0,0,0,0,0,
23  0,0,0,0,-0.044194174,-0.044194174,0.044194174,0.044194174,0,0,0,0,0.044194174,0.044194174,-0.044194174,-0.044194174,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,0,
24  0.03125,-0.03125,-0.03125,0.03125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03125,0.03125,0.03125,-0.03125,0,0,0,0,0,0,0,0,0,-0,-0,1.6875,
25  0,0,0,0,0,0,0,0,-0.044194174,0.044194174,-0.044194174,0.044194174,0,0,-0,0,-0.044194174,-0.044194174,0.044194174,0.044194174,0,0,0,0,0,-0,-0,0,0,0,0,0,0,0,0,0,
26  0,0,0,0,0.03125,-0.03125,-0.03125,0.03125,0,0,0,0,0.03125,-0.03125,-0.03125,0.03125,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0,0,1.6875,0,0,0,0,
27  -0.044194174,0.044194174,-0.044194174,0.044194174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.044194174,-0.044194174,0.044194174,0.044194174,0,0,0,0,0,0,0,0,-0,0,0,0,
28  0,0,0,0,0,0,0,0,-0.03125,0.03125,0.03125,-0.03125,0,0,-0,0,0.03125,-0.03125,-0.03125,0.03125,0,0,0,0,0,-0,-0,1.6875,0,0,0,0,0,0,0,0,
29  0,0,0,0,-0.044194174,0.044194174,-0.044194174,0.044194174,0,0,0,0,-0.044194174,0.044194174,-0.044194174,0.044194174,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,0,
30  -0.044194174,-0.044194174,0.044194174,0.044194174,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,-0.044194174,0.044194174,-0.044194174,0.044194174,0,0,0,0,0,0,0,0,-0,0,0,0,
31  0,0,0,0,0,0,0,0,-0.066291261,-0.066291261,0.066291261,0.066291261,0,0,-0,0,0.066291261,-0.066291261,0.066291261,-0.066291261,0,0,0,0,0,-0.5625,-0,0,0,0,0,0,0,0,0,0,
32  0,0,0,0,0.066291261,0.066291261,-0.066291261,-0.066291261,0,0,0,0,0.066291261,0.066291261,-0.066291261,-0.066291261,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5625,0,0,0,0,0,0,
33  0.066291261,-0.066291261,0.066291261,-0.066291261,0,0,0,0,0,0,0,0,0,0,-0,0,0,0,0,0,-0.066291261,-0.066291261,0.066291261,0.066291261,0,0,0,0,0,0,0,0,0,-0.5625,0,0,
34  0,0,0,0,0,0,0,0,-0.066291261,0.066291261,-0.066291261,0.066291261,0,0,-0,0,0.066291261,0.066291261,-0.066291261,-0.066291261,0,0,0,0,-0,-0,-0.5625,0,0,0,0,0,0,0,0,0,
35  0,0,0,0,0.066291261,-0.066291261,0.066291261,-0.066291261,0,0,0,0,-0.066291261,0.066291261,-0.066291261,0.066291261,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0.5625,0,0,0,0,0,
36  0.066291261,0.066291261,-0.066291261,-0.066291261,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.066291261,0.066291261,-0.066291261,0.066291261,0,0,0,0,0,0,0,0,-0,0,-0.5625,0,
37  0,0,0,0,0,0,0,0,0.0625,-0.0625,-0.0625,0.0625,0,0,0,0,0.0625,-0.0625,-0.0625,0.0625,0,0,0,0,-0,0,0,-0,0,0,0,0,0,0,0,0,
38  0,0,0,0,0.0625,-0.0625,-0.0625,0.0625,0,0,0,0,-0.0625,0.0625,0.0625,-0.0625,0,0,0,0,0,0,0,0,0,0,0,0,-0,0,-0,-0,0,0,0,0,
39  0.0625,-0.0625,-0.0625,0.0625,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0625,-0.0625,-0.0625,0.0625,0,0,0,-0,0,0,0,-0,0,0,0,-0,
40  0,0,0,0,0,0,0,0,0.09375,-0.09375,-0.09375,0.09375,0,0,0,0,-0.09375,0.09375,0.09375,-0.09375,0,0,0,0,0,0,0,-1.6875,0,0,0,-0,0,0,0,-0,
41  0,0,0,0,-0.09375,0.09375,0.09375,-0.09375,0,0,0,0,-0.09375,0.09375,0.09375,-0.09375,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-1.6875,0,0,0,-0,
42 -0.09375,0.09375,0.09375,-0.09375,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.09375,-0.09375,-0.09375,0.09375,0,0,0,0,0,0,0,0,-0,0,0,-1.6875
43 };
44 
45 static void N_H_RT1_3D_Funct(double xi, double eta, double zeta,
46  double *values)
47 {
48  int nBF = 36; // number of basis functions
49  // monomials x-component, y-component and z-component
50  double mon_x[]={1,0,0,xi,0,0,eta,0,0,zeta,0,0,
51  xi*xi,0,0,xi*eta,0,0,xi*zeta,0,0,eta*zeta,0,0,
52  xi*xi*eta,0,0,xi*xi*zeta,0,0,xi*eta*zeta,0,0,
53  xi*xi*eta*zeta,0,0};
54  double mon_y[]={0,1,0,0,xi,0,0,eta,0,0,zeta,0,
55  0,eta*eta,0,0,xi*eta,0,0,xi*zeta,0,0,eta*zeta,0,
56  0,xi*eta*eta,0,0,eta*eta*zeta,0,0,xi*eta*zeta,0,
57  0,xi*eta*eta*zeta,0};
58  double mon_z[]={0,0,1,0,0,xi,0,0,eta,0,0,zeta,
59  0,0,zeta*zeta,0,0,xi*eta,0,0,xi*zeta,0,0,eta*zeta,
60  0,0,xi*zeta*zeta,0,0,eta*zeta*zeta,0,0,xi*eta*zeta,
61  0,0,xi*eta*zeta*zeta};
62 
63  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
64  for(int i=0; i<nBF; i++)
65  {
66  for(int j=0; j<nBF; j++)
67  {
68  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
69  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
70  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
71  }
72  }
73 }
74 
75 static void N_H_RT1_3D_DeriveXi(double xi, double eta, double zeta,
76  double *values)
77 {
78  int nBF = 36; // number of basis functions
79  // monomials x-component, y-component and z-component
80  double mon_x[]={0,0,0,1,0,0,0,0,0,0,0,0,
81  2*xi,0,0,eta,0,0,zeta,0,0,0,0,0,
82  2*xi*eta,0,0,2*xi*zeta,0,0,eta*zeta,0,0,
83  2*xi*eta*zeta,0,0};
84  double mon_y[]={0,0,0,0,1,0,0,0,0,0,0,0,
85  0,0,0,0,eta,0,0,zeta,0,0,0,0,
86  0,eta*eta,0,0,0,0,0,eta*zeta,0,
87  0,eta*eta*zeta,0};
88  double mon_z[]={0,0,0,0,0,1,0,0,0,0,0,0,
89  0,0,0,0,0,eta,0,0,zeta,0,0,0,
90  0,0,zeta*zeta,0,0,0,0,0,eta*zeta,
91  0,0,eta*zeta*zeta};
92 
93  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
94  for(int i=0; i<nBF; i++)
95  {
96  for(int j=0; j<nBF; j++)
97  {
98  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
99  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
100  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
101  }
102  }
103 }
104 
105 static void N_H_RT1_3D_DeriveEta(double xi, double eta, double zeta,
106  double *values)
107 {
108  int nBF = 36; // number of basis functions
109  // monomials x-component, y-component and z-component
110  double mon_x[]={0,0,0,0,0,0,1,0,0,0,0,0,
111  0,0,0,xi,0,0,0,0,0,zeta,0,0,
112  xi*xi,0,0,0,0,0,xi*zeta,0,0,
113  xi*xi*zeta,0,0};
114  double mon_y[]={0,0,0,0,0,0,0,1,0,0,0,0,
115  0,2*eta,0,0,xi,0,0,0,0,0,zeta,0,
116  0,xi*2*eta,0,0,2*eta*zeta,0,0,xi*zeta,0,
117  0,xi*2*eta*zeta,0};
118  double mon_z[]={0,0,0,0,0,0,0,0,1,0,0,0,
119  0,0,0,0,0,xi,0,0,0,0,0,zeta,
120  0,0,0,0,0,zeta*zeta,0,0,xi*zeta,
121  0,0,xi*zeta*zeta};
122 
123  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
124  for(int i=0; i<nBF; i++)
125  {
126  for(int j=0; j<nBF; j++)
127  {
128  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
129  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
130  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
131  }
132  }
133 }
134 
135 static void N_H_RT1_3D_DeriveZeta(double xi, double eta, double zeta,
136  double *values)
137 {
138  int nBF = 36; // number of basis functions
139  // monomials x-component, y-component and z-component
140  double mon_x[]={0,0,0,0,0,0,0,0,0,1,0,0,
141  0,0,0,0,0,0,xi,0,0,eta,0,0,
142  0,0,0,xi*xi,0,0,xi*eta,0,0,
143  xi*xi*eta,0,0};
144  double mon_y[]={0,0,0,0,0,0,0,0,0,0,1,0,
145  0,0,0,0,0,0,0,xi,0,0,eta,0,
146  0,0,0,0,eta*eta,0,0,xi*eta,0,
147  0,xi*eta*eta,0};
148  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,1,
149  0,0,2*zeta,0,0,0,0,0,xi,0,0,eta,
150  0,0,xi*2*zeta,0,0,eta*2*zeta,0,0,xi*eta,
151  0,0,xi*eta*2*zeta};
152 
153  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
154  for(int i=0; i<nBF; i++)
155  {
156  for(int j=0; j<nBF; j++)
157  {
158  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
159  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
160  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
161  }
162  }
163 }
164 
165 static void N_H_RT1_3D_DeriveXiXi(double xi, double eta, double zeta,
166  double *values)
167 {
168  int nBF = 36; // number of basis functions
169  // monomials x-component, y-component and z-component
170  double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0,
171  2,0,0,0,0,0,0,0,0,0,0,0,
172  2*eta,0,0,2*zeta,0,0,0,0,0,
173  2*eta*zeta,0,0};
174  double mon_y[]={0,0,0,0,0,0,0,0,0,0,0,0,
175  0,0,0,0,0,0,0,0,0,0,0,0,
176  0,0,0,0,0,0,0,0,0,
177  0,0,0};
178  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,0,
179  0,0,0,0,0,0,0,0,0,0,0,0,
180  0,0,0,0,0,0,0,0,0,
181  0,0,0};
182 
183  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
184  for(int i=0; i<nBF; i++)
185  {
186  for(int j=0; j<nBF; j++)
187  {
188  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
189  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
190  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
191  }
192  }
193 }
194 
195 static void N_H_RT1_3D_DeriveXiEta(double xi, double eta, double zeta,
196  double *values)
197 {
198  int nBF = 36; // number of basis functions
199  // monomials x-component, y-component and z-component
200  double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0,
201  0,0,0,1,0,0,0,0,0,0,0,0,
202  2*xi,0,0,0,0,0,zeta,0,0,
203  2*xi*zeta,0,0};
204  double mon_y[]={0,0,0,0,0,0,0,0,0,0,0,0,
205  0,0,0,0,1,0,0,0,0,0,0,0,
206  0,2*eta,0,0,0,0,0,zeta,0,
207  0,2*eta*zeta,0};
208  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,0,
209  0,0,0,0,0,1,0,0,0,0,0,0,
210  0,0,0,0,0,0,0,0,zeta,
211  0,0,zeta*zeta};
212 
213  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
214  for(int i=0; i<nBF; i++)
215  {
216  for(int j=0; j<nBF; j++)
217  {
218  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
219  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
220  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
221  }
222  }
223 }
224 
225 static void N_H_RT1_3D_DeriveXiZeta(double xi, double eta, double zeta,
226  double *values)
227 {
228  int nBF = 36; // number of basis functions
229  // monomials x-component, y-component and z-component
230  double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0,
231  0,0,0,0,0,0,1,0,0,0,0,0,
232  0,0,0,2*xi,0,0,eta,0,0,
233  2*xi*eta,0,0};
234  double mon_y[]={0,0,0,0,0,0,0,0,0,0,0,0,
235  0,0,0,0,0,0,0,1,0,0,0,0,
236  0,0,0,0,0,0,0,eta,0,
237  0,eta*eta,0};
238  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,0,
239  0,0,0,0,0,0,0,0,1,0,0,0,
240  0,0,2*zeta,0,0,0,0,0,eta,
241  0,0,eta*2*zeta};
242 
243  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
244  for(int i=0; i<nBF; i++)
245  {
246  for(int j=0; j<nBF; j++)
247  {
248  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
249  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
250  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
251  }
252  }
253 }
254 
255 static void N_H_RT1_3D_DeriveEtaEta(double xi, double eta, double zeta,
256  double *values)
257 {
258  int nBF = 36; // number of basis functions
259  // monomials x-component, y-component and z-component
260  double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0,
261  0,0,0,0,0,0,0,0,0,0,0,0,
262  0,0,0,0,0,0,0,0,0,
263  0,0,0};
264  double mon_y[]={0,0,0,0,0,0,0,0,0,0,0,0,
265  0,2,0,0,0,0,0,0,0,0,0,0,
266  0,xi*2,0,0,2*zeta,0,0,0,0,
267  0,xi*2*zeta,0};
268  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,0,
269  0,0,0,0,0,0,0,0,0,0,0,0,
270  0,0,0,0,0,0,0,0,0,
271  0,0,0};
272 
273  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
274  for(int i=0; i<nBF; i++)
275  {
276  for(int j=0; j<nBF; j++)
277  {
278  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
279  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
280  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
281  }
282  }
283 }
284 
285 static void N_H_RT1_3D_DeriveEtaZeta(double xi, double eta, double zeta,
286  double *values)
287 {
288  int nBF = 36; // number of basis functions
289  // monomials x-component, y-component and z-component
290  double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0,
291  0,0,0,0,0,0,0,0,0,1,0,0,
292  0,0,0,0,0,0,xi,0,0,
293  xi*xi,0,0};
294  double mon_y[]={0,0,0,0,0,0,0,0,0,0,0,0,
295  0,0,0,0,0,0,0,0,0,0,1,0,
296  0,0,0,0,2*eta,0,0,xi,0,
297  0,xi*2*eta,0};
298  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,0,
299  0,0,0,0,0,0,0,0,0,0,0,1,
300  0,0,0,0,0,2*zeta,0,0,xi,
301  0,0,xi*2*zeta};
302 
303  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
304  for(int i=0; i<nBF; i++)
305  {
306  for(int j=0; j<nBF; j++)
307  {
308  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
309  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
310  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
311  }
312  }
313 }
314 
315 static void N_H_RT1_3D_DeriveZetaZeta(double xi, double eta, double zeta,
316  double *values)
317 {
318  int nBF = 36; // number of basis functions
319  // monomials x-component, y-component and z-component
320  double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0,
321  0,0,0,0,0,0,0,0,0,0,0,0,
322  0,0,0,0,0,0,0,0,0,
323  0,0,0};
324  double mon_y[]={0,0,0,0,0,0,0,0,0,0,0,0,
325  0,0,0,0,0,0,0,0,0,0,0,0,
326  0,0,0,0,0,0,0,0,0,
327  0,0,0};
328  double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,0,
329  0,0,2,0,0,0,0,0,0,0,0,0,
330  0,0,xi*2,0,0,eta*2,0,0,0,
331  0,0,xi*eta*2};
332 
333  memset(values, 0.0, 3*nBF*SizeOfDouble); // 3 is the space dimension
334  for(int i=0; i<nBF; i++)
335  {
336  for(int j=0; j<nBF; j++)
337  {
338  values[i ] += N_H_RT1_3D_CM[i+j*nBF]*mon_x[j];
339  values[i+ nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_y[j];
340  values[i+2*nBF] += N_H_RT1_3D_CM[i+j*nBF]*mon_z[j];
341  }
342  }
343 }
344 
345 TBaseFunct3D *BF_N_H_RT1_3D_Obj =
346 new TBaseFunct3D(36, BF_N_H_RT1_3D, BFUnitHexahedron,
347  N_H_RT1_3D_Funct, N_H_RT1_3D_DeriveXi,
348  N_H_RT1_3D_DeriveEta, N_H_RT1_3D_DeriveZeta,
349  N_H_RT1_3D_DeriveXiXi, N_H_RT1_3D_DeriveXiEta,
350  N_H_RT1_3D_DeriveXiZeta, N_H_RT1_3D_DeriveEtaEta,
351  N_H_RT1_3D_DeriveEtaZeta, N_H_RT1_3D_DeriveZetaZeta,
352  4, 1, 0, NULL, 3);
Definition: BaseFunct3D.h:27