BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_intpoints_gauss_tet81.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef BELFEM_FN_INTPOINTS_GAUSS_TET81_HPP
13#define BELFEM_FN_INTPOINTS_GAUSS_TET81_HPP
14
15#include "typedefs.hpp"
16#include "cl_Vector.hpp"
17#include "cl_Matrix.hpp"
18#include "fn_sum.hpp"
19
20namespace belfem
21{
22 namespace integration
23 {
24// ----------------------------------------------------------------------------
25
34 inline void
36 Vector< real > & aWeights,
37 Matrix< real > & aPoints )
38 {
39 aPoints.set_size( 4, 81 );
40
41 aPoints( 0, 0 ) = 0.25;
42 aPoints( 1, 0 ) = 0.25;
43 aPoints( 2, 0 ) = 0.25;
44
45 aPoints( 0, 1 ) = 0.3122500686951887;
46 aPoints( 1, 1 ) = 0.3122500686951887;
47 aPoints( 2, 1 ) = 0.3122500686951887;
48
49 aPoints( 0, 2 ) = 0.1143096538573461;
50 aPoints( 1, 2 ) = 0.1143096538573461;
51 aPoints( 2, 2 ) = 0.1143096538573461;
52
53 aPoints( 0, 3 ) = 0.3122500686951887;
54 aPoints( 1, 3 ) = 0.3122500686951887;
55 aPoints( 2, 3 ) = 0.06324979391443397;
56
57 aPoints( 0, 4 ) = 0.1143096538573461;
58 aPoints( 1, 4 ) = 0.1143096538573461;
59 aPoints( 2, 4 ) = 0.6570710384279617;
60
61 aPoints( 0, 5 ) = 0.3122500686951887;
62 aPoints( 1, 5 ) = 0.06324979391443397;
63 aPoints( 2, 5 ) = 0.3122500686951887;
64
65 aPoints( 0, 6 ) = 0.1143096538573461;
66 aPoints( 1, 6 ) = 0.6570710384279617;
67 aPoints( 2, 6 ) = 0.1143096538573461;
68
69 aPoints( 0, 7 ) = 0.06324979391443397;
70 aPoints( 1, 7 ) = 0.3122500686951887;
71 aPoints( 2, 7 ) = 0.3122500686951887;
72
73 aPoints( 0, 8 ) = 0.6570710384279617;
74 aPoints( 1, 8 ) = 0.1143096538573461;
75 aPoints( 2, 8 ) = 0.1143096538573461;
76
77 aPoints( 0, 9 ) = 0.4104307392189654;
78 aPoints( 1, 9 ) = 0.4104307392189654;
79 aPoints( 2, 9 ) = 0.1654860256196111;
80
81 aPoints( 0, 10 ) = 0.006138008824790653;
82 aPoints( 1, 10 ) = 0.006138008824790653;
83 aPoints( 2, 10 ) = 0.9429887673452049;
84
85 aPoints( 0, 11 ) = 0.1210501811455894;
86 aPoints( 1, 11 ) = 0.1210501811455894;
87 aPoints( 2, 11 ) = 0.4771903799042804;
88
89 aPoints( 0, 12 ) = 0.03277946821644262;
90 aPoints( 1, 12 ) = 0.03277946821644262;
91 aPoints( 2, 12 ) = 0.594256269480007;
92
93 aPoints( 0, 13 ) = 0.03248528156482305;
94 aPoints( 1, 13 ) = 0.03248528156482305;
95 aPoints( 2, 13 ) = 0.8011772846583444;
96
97 aPoints( 0, 14 ) = 0.174979342183939;
98 aPoints( 1, 14 ) = 0.174979342183939;
99 aPoints( 2, 14 ) = 0.628071845475366;
100
101 aPoints( 0, 15 ) = 0.4104307392189654;
102 aPoints( 1, 15 ) = 0.1654860256196111;
103 aPoints( 2, 15 ) = 0.4104307392189654;
104
105 aPoints( 0, 16 ) = 0.006138008824790653;
106 aPoints( 1, 16 ) = 0.9429887673452049;
107 aPoints( 2, 16 ) = 0.006138008824790653;
108
109 aPoints( 0, 17 ) = 0.1210501811455894;
110 aPoints( 1, 17 ) = 0.4771903799042804;
111 aPoints( 2, 17 ) = 0.1210501811455894;
112
113 aPoints( 0, 18 ) = 0.03277946821644262;
114 aPoints( 1, 18 ) = 0.594256269480007;
115 aPoints( 2, 18 ) = 0.03277946821644262;
116
117 aPoints( 0, 19 ) = 0.03248528156482305;
118 aPoints( 1, 19 ) = 0.8011772846583444;
119 aPoints( 2, 19 ) = 0.03248528156482305;
120
121 aPoints( 0, 20 ) = 0.174979342183939;
122 aPoints( 1, 20 ) = 0.628071845475366;
123 aPoints( 2, 20 ) = 0.174979342183939;
124
125 aPoints( 0, 21 ) = 0.1654860256196111;
126 aPoints( 1, 21 ) = 0.4104307392189654;
127 aPoints( 2, 21 ) = 0.4104307392189654;
128
129 aPoints( 0, 22 ) = 0.9429887673452049;
130 aPoints( 1, 22 ) = 0.006138008824790653;
131 aPoints( 2, 22 ) = 0.006138008824790653;
132
133 aPoints( 0, 23 ) = 0.4771903799042804;
134 aPoints( 1, 23 ) = 0.1210501811455894;
135 aPoints( 2, 23 ) = 0.1210501811455894;
136
137 aPoints( 0, 24 ) = 0.594256269480007;
138 aPoints( 1, 24 ) = 0.03277946821644262;
139 aPoints( 2, 24 ) = 0.03277946821644262;
140
141 aPoints( 0, 25 ) = 0.8011772846583444;
142 aPoints( 1, 25 ) = 0.03248528156482305;
143 aPoints( 2, 25 ) = 0.03248528156482305;
144
145 aPoints( 0, 26 ) = 0.628071845475366;
146 aPoints( 1, 26 ) = 0.174979342183939;
147 aPoints( 2, 26 ) = 0.174979342183939;
148
149 aPoints( 0, 27 ) = 0.4104307392189654;
150 aPoints( 1, 27 ) = 0.1654860256196111;
151 aPoints( 2, 27 ) = 0.013652495942458126;
152
153 aPoints( 0, 28 ) = 0.006138008824790653;
154 aPoints( 1, 28 ) = 0.9429887673452049;
155 aPoints( 2, 28 ) = 0.044735215005213824;
156
157 aPoints( 0, 29 ) = 0.1210501811455894;
158 aPoints( 1, 29 ) = 0.4771903799042804;
159 aPoints( 2, 29 ) = 0.28070925780454076;
160
161 aPoints( 0, 30 ) = 0.03277946821644262;
162 aPoints( 1, 30 ) = 0.594256269480007;
163 aPoints( 2, 30 ) = 0.3401847940871078;
164
165 aPoints( 0, 31 ) = 0.03248528156482305;
166 aPoints( 1, 31 ) = 0.8011772846583444;
167 aPoints( 2, 31 ) = 0.13385215221200952;
168
169 aPoints( 0, 32 ) = 0.174979342183939;
170 aPoints( 1, 32 ) = 0.628071845475366;
171 aPoints( 2, 32 ) = 0.021969470156755988;
172
173 aPoints( 0, 33 ) = 0.1654860256196111;
174 aPoints( 1, 33 ) = 0.4104307392189654;
175 aPoints( 2, 33 ) = 0.013652495942458126;
176
177 aPoints( 0, 34 ) = 0.9429887673452049;
178 aPoints( 1, 34 ) = 0.006138008824790653;
179 aPoints( 2, 34 ) = 0.044735215005213824;
180
181 aPoints( 0, 35 ) = 0.4771903799042804;
182 aPoints( 1, 35 ) = 0.1210501811455894;
183 aPoints( 2, 35 ) = 0.28070925780454076;
184
185 aPoints( 0, 36 ) = 0.594256269480007;
186 aPoints( 1, 36 ) = 0.03277946821644262;
187 aPoints( 2, 36 ) = 0.3401847940871078;
188
189 aPoints( 0, 37 ) = 0.8011772846583444;
190 aPoints( 1, 37 ) = 0.03248528156482305;
191 aPoints( 2, 37 ) = 0.13385215221200952;
192
193 aPoints( 0, 38 ) = 0.628071845475366;
194 aPoints( 1, 38 ) = 0.174979342183939;
195 aPoints( 2, 38 ) = 0.021969470156755988;
196
197 aPoints( 0, 39 ) = 0.1654860256196111;
198 aPoints( 1, 39 ) = 0.013652495942458126;
199 aPoints( 2, 39 ) = 0.4104307392189654;
200
201 aPoints( 0, 40 ) = 0.9429887673452049;
202 aPoints( 1, 40 ) = 0.044735215005213824;
203 aPoints( 2, 40 ) = 0.006138008824790653;
204
205 aPoints( 0, 41 ) = 0.4771903799042804;
206 aPoints( 1, 41 ) = 0.28070925780454076;
207 aPoints( 2, 41 ) = 0.1210501811455894;
208
209 aPoints( 0, 42 ) = 0.594256269480007;
210 aPoints( 1, 42 ) = 0.3401847940871078;
211 aPoints( 2, 42 ) = 0.03277946821644262;
212
213 aPoints( 0, 43 ) = 0.8011772846583444;
214 aPoints( 1, 43 ) = 0.13385215221200952;
215 aPoints( 2, 43 ) = 0.03248528156482305;
216
217 aPoints( 0, 44 ) = 0.628071845475366;
218 aPoints( 1, 44 ) = 0.021969470156755988;
219 aPoints( 2, 44 ) = 0.174979342183939;
220
221 aPoints( 0, 45 ) = 0.4104307392189654;
222 aPoints( 1, 45 ) = 0.4104307392189654;
223 aPoints( 2, 45 ) = 0.013652495942458126;
224
225 aPoints( 0, 46 ) = 0.006138008824790653;
226 aPoints( 1, 46 ) = 0.006138008824790653;
227 aPoints( 2, 46 ) = 0.044735215005213824;
228
229 aPoints( 0, 47 ) = 0.1210501811455894;
230 aPoints( 1, 47 ) = 0.1210501811455894;
231 aPoints( 2, 47 ) = 0.28070925780454076;
232
233 aPoints( 0, 48 ) = 0.03277946821644262;
234 aPoints( 1, 48 ) = 0.03277946821644262;
235 aPoints( 2, 48 ) = 0.3401847940871078;
236
237 aPoints( 0, 49 ) = 0.03248528156482305;
238 aPoints( 1, 49 ) = 0.03248528156482305;
239 aPoints( 2, 49 ) = 0.13385215221200952;
240
241 aPoints( 0, 50 ) = 0.174979342183939;
242 aPoints( 1, 50 ) = 0.174979342183939;
243 aPoints( 2, 50 ) = 0.021969470156755988;
244
245 aPoints( 0, 51 ) = 0.4104307392189654;
246 aPoints( 1, 51 ) = 0.013652495942458126;
247 aPoints( 2, 51 ) = 0.4104307392189654;
248
249 aPoints( 0, 52 ) = 0.006138008824790653;
250 aPoints( 1, 52 ) = 0.044735215005213824;
251 aPoints( 2, 52 ) = 0.006138008824790653;
252
253 aPoints( 0, 53 ) = 0.1210501811455894;
254 aPoints( 1, 53 ) = 0.28070925780454076;
255 aPoints( 2, 53 ) = 0.1210501811455894;
256
257 aPoints( 0, 54 ) = 0.03277946821644262;
258 aPoints( 1, 54 ) = 0.3401847940871078;
259 aPoints( 2, 54 ) = 0.03277946821644262;
260
261 aPoints( 0, 55 ) = 0.03248528156482305;
262 aPoints( 1, 55 ) = 0.13385215221200952;
263 aPoints( 2, 55 ) = 0.03248528156482305;
264
265 aPoints( 0, 56 ) = 0.174979342183939;
266 aPoints( 1, 56 ) = 0.021969470156755988;
267 aPoints( 2, 56 ) = 0.174979342183939;
268
269 aPoints( 0, 57 ) = 0.013652495942458126;
270 aPoints( 1, 57 ) = 0.4104307392189654;
271 aPoints( 2, 57 ) = 0.4104307392189654;
272
273 aPoints( 0, 58 ) = 0.044735215005213824;
274 aPoints( 1, 58 ) = 0.006138008824790653;
275 aPoints( 2, 58 ) = 0.006138008824790653;
276
277 aPoints( 0, 59 ) = 0.28070925780454076;
278 aPoints( 1, 59 ) = 0.1210501811455894;
279 aPoints( 2, 59 ) = 0.1210501811455894;
280
281 aPoints( 0, 60 ) = 0.3401847940871078;
282 aPoints( 1, 60 ) = 0.03277946821644262;
283 aPoints( 2, 60 ) = 0.03277946821644262;
284
285 aPoints( 0, 61 ) = 0.13385215221200952;
286 aPoints( 1, 61 ) = 0.03248528156482305;
287 aPoints( 2, 61 ) = 0.03248528156482305;
288
289 aPoints( 0, 62 ) = 0.021969470156755988;
290 aPoints( 1, 62 ) = 0.174979342183939;
291 aPoints( 2, 62 ) = 0.174979342183939;
292
293 aPoints( 0, 63 ) = 0.4104307392189654;
294 aPoints( 1, 63 ) = 0.013652495942458126;
295 aPoints( 2, 63 ) = 0.1654860256196111;
296
297 aPoints( 0, 64 ) = 0.006138008824790653;
298 aPoints( 1, 64 ) = 0.044735215005213824;
299 aPoints( 2, 64 ) = 0.9429887673452049;
300
301 aPoints( 0, 65 ) = 0.1210501811455894;
302 aPoints( 1, 65 ) = 0.28070925780454076;
303 aPoints( 2, 65 ) = 0.4771903799042804;
304
305 aPoints( 0, 66 ) = 0.03277946821644262;
306 aPoints( 1, 66 ) = 0.3401847940871078;
307 aPoints( 2, 66 ) = 0.594256269480007;
308
309 aPoints( 0, 67 ) = 0.03248528156482305;
310 aPoints( 1, 67 ) = 0.13385215221200952;
311 aPoints( 2, 67 ) = 0.8011772846583444;
312
313 aPoints( 0, 68 ) = 0.174979342183939;
314 aPoints( 1, 68 ) = 0.021969470156755988;
315 aPoints( 2, 68 ) = 0.628071845475366;
316
317 aPoints( 0, 69 ) = 0.013652495942458126;
318 aPoints( 1, 69 ) = 0.4104307392189654;
319 aPoints( 2, 69 ) = 0.1654860256196111;
320
321 aPoints( 0, 70 ) = 0.044735215005213824;
322 aPoints( 1, 70 ) = 0.006138008824790653;
323 aPoints( 2, 70 ) = 0.9429887673452049;
324
325 aPoints( 0, 71 ) = 0.28070925780454076;
326 aPoints( 1, 71 ) = 0.1210501811455894;
327 aPoints( 2, 71 ) = 0.4771903799042804;
328
329 aPoints( 0, 72 ) = 0.3401847940871078;
330 aPoints( 1, 72 ) = 0.03277946821644262;
331 aPoints( 2, 72 ) = 0.594256269480007;
332
333 aPoints( 0, 73 ) = 0.13385215221200952;
334 aPoints( 1, 73 ) = 0.03248528156482305;
335 aPoints( 2, 73 ) = 0.8011772846583444;
336
337 aPoints( 0, 74 ) = 0.021969470156755988;
338 aPoints( 1, 74 ) = 0.174979342183939;
339 aPoints( 2, 74 ) = 0.628071845475366;
340
341 aPoints( 0, 75 ) = 0.013652495942458126;
342 aPoints( 1, 75 ) = 0.1654860256196111;
343 aPoints( 2, 75 ) = 0.4104307392189654;
344
345 aPoints( 0, 76 ) = 0.044735215005213824;
346 aPoints( 1, 76 ) = 0.9429887673452049;
347 aPoints( 2, 76 ) = 0.006138008824790653;
348
349 aPoints( 0, 77 ) = 0.28070925780454076;
350 aPoints( 1, 77 ) = 0.4771903799042804;
351 aPoints( 2, 77 ) = 0.1210501811455894;
352
353 aPoints( 0, 78 ) = 0.3401847940871078;
354 aPoints( 1, 78 ) = 0.594256269480007;
355 aPoints( 2, 78 ) = 0.03277946821644262;
356
357 aPoints( 0, 79 ) = 0.13385215221200952;
358 aPoints( 1, 79 ) = 0.8011772846583444;
359 aPoints( 2, 79 ) = 0.03248528156482305;
360
361 aPoints( 0, 80 ) = 0.021969470156755988;
362 aPoints( 1, 80 ) = 0.628071845475366;
363 aPoints( 2, 80 ) = 0.174979342183939;
364
365 for( uint k=0; k<81; ++k )
366 {
367 aPoints( 3, k ) = 1.0
368 - aPoints( 0, k )
369 - aPoints( 1, k )
370 - aPoints( 2, k );
371 }
372
373
374 aWeights.set_size( 81 );
375
376 aWeights( 0 ) = 0.00789996225933679;
377 aWeights( 1 ) = 0.00448950999871145;
378 aWeights( 2 ) = 0.001644859952798897;
379 aWeights( 3 ) = 0.00448950999871145;
380 aWeights( 4 ) = 0.001644859952798897;
381 aWeights( 5 ) = 0.00448950999871145;
382 aWeights( 6 ) = 0.001644859952798897;
383 aWeights( 7 ) = 0.00448950999871145;
384 aWeights( 8 ) = 0.001644859952798897;
385 aWeights( 9 ) = 0.0018989802033658717;
386 aWeights( 10 ) = 6.03240573898756e-05;
387 aWeights( 11 ) = 0.0042899553300760115;
388 aWeights( 12 ) = 0.0016893119466259649;
389 aWeights( 13 ) = 0.0010960245461726506;
390 aWeights( 14 ) = 0.002151172633143665;
391 aWeights( 15 ) = 0.0018989802033658717;
392 aWeights( 16 ) = 6.03240573898756e-05;
393 aWeights( 17 ) = 0.0042899553300760115;
394 aWeights( 18 ) = 0.0016893119466259649;
395 aWeights( 19 ) = 0.0010960245461726506;
396 aWeights( 20 ) = 0.002151172633143665;
397 aWeights( 21 ) = 0.0018989802033658717;
398 aWeights( 22 ) = 6.03240573898756e-05;
399 aWeights( 23 ) = 0.0042899553300760115;
400 aWeights( 24 ) = 0.0016893119466259649;
401 aWeights( 25 ) = 0.0010960245461726506;
402 aWeights( 26 ) = 0.002151172633143665;
403 aWeights( 27 ) = 0.0018989802033658717;
404 aWeights( 28 ) = 6.03240573898756e-05;
405 aWeights( 29 ) = 0.0042899553300760115;
406 aWeights( 30 ) = 0.0016893119466259649;
407 aWeights( 31 ) = 0.0010960245461726506;
408 aWeights( 32 ) = 0.002151172633143665;
409 aWeights( 33 ) = 0.0018989802033658717;
410 aWeights( 34 ) = 6.03240573898756e-05;
411 aWeights( 35 ) = 0.0042899553300760115;
412 aWeights( 36 ) = 0.0016893119466259649;
413 aWeights( 37 ) = 0.0010960245461726506;
414 aWeights( 38 ) = 0.002151172633143665;
415 aWeights( 39 ) = 0.0018989802033658717;
416 aWeights( 40 ) = 6.03240573898756e-05;
417 aWeights( 41 ) = 0.0042899553300760115;
418 aWeights( 42 ) = 0.0016893119466259649;
419 aWeights( 43 ) = 0.0010960245461726506;
420 aWeights( 44 ) = 0.002151172633143665;
421 aWeights( 45 ) = 0.0018989802033658717;
422 aWeights( 46 ) = 6.03240573898756e-05;
423 aWeights( 47 ) = 0.0042899553300760115;
424 aWeights( 48 ) = 0.0016893119466259649;
425 aWeights( 49 ) = 0.0010960245461726506;
426 aWeights( 50 ) = 0.002151172633143665;
427 aWeights( 51 ) = 0.0018989802033658717;
428 aWeights( 52 ) = 6.03240573898756e-05;
429 aWeights( 53 ) = 0.0042899553300760115;
430 aWeights( 54 ) = 0.0016893119466259649;
431 aWeights( 55 ) = 0.0010960245461726506;
432 aWeights( 56 ) = 0.002151172633143665;
433 aWeights( 57 ) = 0.0018989802033658717;
434 aWeights( 58 ) = 6.03240573898756e-05;
435 aWeights( 59 ) = 0.0042899553300760115;
436 aWeights( 60 ) = 0.0016893119466259649;
437 aWeights( 61 ) = 0.0010960245461726506;
438 aWeights( 62 ) = 0.002151172633143665;
439 aWeights( 63 ) = 0.0018989802033658717;
440 aWeights( 64 ) = 6.03240573898756e-05;
441 aWeights( 65 ) = 0.0042899553300760115;
442 aWeights( 66 ) = 0.0016893119466259649;
443 aWeights( 67 ) = 0.0010960245461726506;
444 aWeights( 68 ) = 0.002151172633143665;
445 aWeights( 69 ) = 0.0018989802033658717;
446 aWeights( 70 ) = 6.03240573898756e-05;
447 aWeights( 71 ) = 0.0042899553300760115;
448 aWeights( 72 ) = 0.0016893119466259649;
449 aWeights( 73 ) = 0.0010960245461726506;
450 aWeights( 74 ) = 0.002151172633143665;
451 aWeights( 75 ) = 0.0018989802033658717;
452 aWeights( 76 ) = 6.03240573898756e-05;
453 aWeights( 77 ) = 0.0042899553300760115;
454 aWeights( 78 ) = 0.0016893119466259649;
455 aWeights( 79 ) = 0.0010960245461726506;
456 aWeights( 80 ) = 0.002151172633143665;
457
458 aWeights( 0 ) = 0.0 ;
459 aWeights( 0 ) = 1./6. - sum( aWeights );
460 }
461
462// ----------------------------------------------------------------------------
463 } /* namespace integration */
464} /* end namespace belfem */
465
466#endif // BELFEM_FN_INTPOINTS_GAUSS_TET81_HPP
void set_size(const size_t aNumRows, const size_t aNumCols)
Definition cl_AR_Matrix.hpp:186
void set_size(const size_t aNumRows)
change the size of the vector
Definition cl_AR_Vector.hpp:237
Sum of the entries of a vector.
Definition fn_intpoints.cpp:576
void gauss_tet81(Vector< real > &aWeights, Matrix< real > &aPoints)
10th order interpolation
Definition fn_intpoints_gauss_tet81.hpp:35
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
auto sum(const Vector< T > &aA) -> decltype(sum(aA.vector_data()))
Definition fn_sum.hpp:49