BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_intpoints_gauss_tet56.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_TET56_HPP
13#define BELFEM_FN_INTPOINTS_GAUSS_TET56_HPP
14
15#include "typedefs.hpp"
16#include "cl_Vector.hpp"
17#include "cl_Matrix.hpp"
18
19namespace belfem
20{
21 namespace integration
22 {
23// ----------------------------------------------------------------------------
24
25 // 9th order in the Shunn and Ham numbering ( leading error term delta^9,
26 // their Table 1 ): exact for polynomials up to degree 8. UNUSED since
27 // 2026-09-03: requested order 9 is served by the degree-10 Witherden and
28 // Vincent table ( fn_intpoints.cpp ), because "order" means the exactness
29 // degree there and this table falls one short of it.
30 // source Shunn and Ham, 10.1016/j.cam.2012.03.032
31 inline void
33 Vector <real> & aWeights,
34 Matrix <real> & aPoints )
35 {
36 aPoints.set_size( 4, 56 );
37 aWeights.set_size( 56 );
38
39
40 aPoints( 0 , 0 ) = 0.9551438045408220 ;
41 aPoints( 1 , 0 ) = 0.0149520651530592 ;
42 aPoints( 2 , 0 ) = 0.0149520651530592 ;
43
44 aPoints( 0 , 1 ) = 0.0149520651530592 ;
45 aPoints( 1 , 1 ) = 0.9551438045408220 ;
46 aPoints( 2 , 1 ) = 0.0149520651530592 ;
47
48 aPoints( 0 , 2 ) = 0.0149520651530592 ;
49 aPoints( 1 , 2 ) = 0.0149520651530592 ;
50 aPoints( 2 , 2 ) = 0.9551438045408220 ;
51
52 aPoints( 0 , 3 ) = 0.0149520651530592 ;
53 aPoints( 1 , 3 ) = 0.0149520651530592 ;
54 aPoints( 2 , 3 ) = 0.0149520651530592 ;
55
56 aPoints( 0 , 4 ) = 0.7799760084415400 ;
57 aPoints( 1 , 4 ) = 0.1518319491659370 ;
58 aPoints( 2 , 4 ) = 0.0340960211962615 ;
59
60 aPoints( 0 , 5 ) = 0.1518319491659370 ;
61 aPoints( 1 , 5 ) = 0.7799760084415400 ;
62 aPoints( 2 , 5 ) = 0.0340960211962615 ;
63
64 aPoints( 0 , 6 ) = 0.7799760084415400 ;
65 aPoints( 1 , 6 ) = 0.0340960211962615 ;
66 aPoints( 2 , 6 ) = 0.1518319491659370 ;
67
68 aPoints( 0 , 7 ) = 0.1518319491659370 ;
69 aPoints( 1 , 7 ) = 0.0340960211962615 ;
70 aPoints( 2 , 7 ) = 0.7799760084415400 ;
71
72 aPoints( 0 , 8 ) = 0.7799760084415400 ;
73 aPoints( 1 , 8 ) = 0.0340960211962615 ;
74 aPoints( 2 , 8 ) = 0.0340960211962615 ;
75
76 aPoints( 0 , 9 ) = 0.1518319491659370 ;
77 aPoints( 1 , 9 ) = 0.0340960211962615 ;
78 aPoints( 2 , 9 ) = 0.0340960211962615 ;
79
80 aPoints( 0 , 10 ) = 0.0340960211962615 ;
81 aPoints( 1 , 10 ) = 0.7799760084415400 ;
82 aPoints( 2 , 10 ) = 0.1518319491659370 ;
83
84 aPoints( 0 , 11 ) = 0.0340960211962615 ;
85 aPoints( 1 , 11 ) = 0.1518319491659370 ;
86 aPoints( 2 , 11 ) = 0.7799760084415400 ;
87
88 aPoints( 0 , 12 ) = 0.0340960211962615 ;
89 aPoints( 1 , 12 ) = 0.7799760084415400 ;
90 aPoints( 2 , 12 ) = 0.0340960211962615 ;
91
92 aPoints( 0 , 13 ) = 0.0340960211962615 ;
93 aPoints( 1 , 13 ) = 0.1518319491659370 ;
94 aPoints( 2 , 13 ) = 0.0340960211962615 ;
95
96 aPoints( 0 , 14 ) = 0.0340960211962615 ;
97 aPoints( 1 , 14 ) = 0.0340960211962615 ;
98 aPoints( 2 , 14 ) = 0.7799760084415400 ;
99
100 aPoints( 0 , 15 ) = 0.0340960211962615 ;
101 aPoints( 1 , 15 ) = 0.0340960211962615 ;
102 aPoints( 2 , 15 ) = 0.1518319491659370 ;
103
104 aPoints( 0 , 16 ) = 0.3549340560639790 ;
105 aPoints( 1 , 16 ) = 0.5526556431060170 ;
106 aPoints( 2 , 16 ) = 0.0462051504150017 ;
107
108 aPoints( 0 , 17 ) = 0.5526556431060170 ;
109 aPoints( 1 , 17 ) = 0.3549340560639790 ;
110 aPoints( 2 , 17 ) = 0.0462051504150017 ;
111
112 aPoints( 0 , 18 ) = 0.3549340560639790 ;
113 aPoints( 1 , 18 ) = 0.0462051504150017 ;
114 aPoints( 2 , 18 ) = 0.5526556431060170 ;
115
116 aPoints( 0 , 19 ) = 0.5526556431060170 ;
117 aPoints( 1 , 19 ) = 0.0462051504150017 ;
118 aPoints( 2 , 19 ) = 0.3549340560639790 ;
119
120 aPoints( 0 , 20 ) = 0.3549340560639790 ;
121 aPoints( 1 , 20 ) = 0.0462051504150017 ;
122 aPoints( 2 , 20 ) = 0.0462051504150017 ;
123
124 aPoints( 0 , 21 ) = 0.5526556431060170 ;
125 aPoints( 1 , 21 ) = 0.0462051504150017 ;
126 aPoints( 2 , 21 ) = 0.0462051504150017 ;
127
128 aPoints( 0 , 22 ) = 0.0462051504150017 ;
129 aPoints( 1 , 22 ) = 0.3549340560639790 ;
130 aPoints( 2 , 22 ) = 0.5526556431060170 ;
131
132 aPoints( 0 , 23 ) = 0.0462051504150017 ;
133 aPoints( 1 , 23 ) = 0.5526556431060170 ;
134 aPoints( 2 , 23 ) = 0.3549340560639790 ;
135
136 aPoints( 0 , 24 ) = 0.0462051504150017 ;
137 aPoints( 1 , 24 ) = 0.3549340560639790 ;
138 aPoints( 2 , 24 ) = 0.0462051504150017 ;
139
140 aPoints( 0 , 25 ) = 0.0462051504150017 ;
141 aPoints( 1 , 25 ) = 0.5526556431060170 ;
142 aPoints( 2 , 25 ) = 0.0462051504150017 ;
143
144 aPoints( 0 , 26 ) = 0.0462051504150017 ;
145 aPoints( 1 , 26 ) = 0.0462051504150017 ;
146 aPoints( 2 , 26 ) = 0.3549340560639790 ;
147
148 aPoints( 0 , 27 ) = 0.0462051504150017 ;
149 aPoints( 1 , 27 ) = 0.0462051504150017 ;
150 aPoints( 2 , 27 ) = 0.5526556431060170 ;
151
152 aPoints( 0 , 28 ) = 0.5381043228880020 ;
153 aPoints( 1 , 28 ) = 0.2281904610687610 ;
154 aPoints( 2 , 28 ) = 0.2281904610687610 ;
155
156 aPoints( 0 , 29 ) = 0.2281904610687610 ;
157 aPoints( 1 , 29 ) = 0.5381043228880020 ;
158 aPoints( 2 , 29 ) = 0.2281904610687610 ;
159
160 aPoints( 0 , 30 ) = 0.2281904610687610 ;
161 aPoints( 1 , 30 ) = 0.2281904610687610 ;
162 aPoints( 2 , 30 ) = 0.5381043228880020 ;
163
164 aPoints( 0 , 31 ) = 0.5381043228880020 ;
165 aPoints( 1 , 31 ) = 0.2281904610687610 ;
166 aPoints( 2 , 31 ) = 0.0055147549744775 ;
167
168 aPoints( 0 , 32 ) = 0.2281904610687610 ;
169 aPoints( 1 , 32 ) = 0.5381043228880020 ;
170 aPoints( 2 , 32 ) = 0.0055147549744775 ;
171
172 aPoints( 0 , 33 ) = 0.2281904610687610 ;
173 aPoints( 1 , 33 ) = 0.2281904610687610 ;
174 aPoints( 2 , 33 ) = 0.0055147549744775 ;
175
176 aPoints( 0 , 34 ) = 0.5381043228880020 ;
177 aPoints( 1 , 34 ) = 0.0055147549744775 ;
178 aPoints( 2 , 34 ) = 0.2281904610687610 ;
179
180 aPoints( 0 , 35 ) = 0.2281904610687610 ;
181 aPoints( 1 , 35 ) = 0.0055147549744775 ;
182 aPoints( 2 , 35 ) = 0.5381043228880020 ;
183
184 aPoints( 0 , 36 ) = 0.2281904610687610 ;
185 aPoints( 1 , 36 ) = 0.0055147549744775 ;
186 aPoints( 2 , 36 ) = 0.2281904610687610 ;
187
188 aPoints( 0 , 37 ) = 0.0055147549744775 ;
189 aPoints( 1 , 37 ) = 0.5381043228880020 ;
190 aPoints( 2 , 37 ) = 0.2281904610687610 ;
191
192 aPoints( 0 , 38 ) = 0.0055147549744775 ;
193 aPoints( 1 , 38 ) = 0.2281904610687610 ;
194 aPoints( 2 , 38 ) = 0.5381043228880020 ;
195
196 aPoints( 0 , 39 ) = 0.0055147549744775 ;
197 aPoints( 1 , 39 ) = 0.2281904610687610 ;
198 aPoints( 2 , 39 ) = 0.2281904610687610 ;
199
200 aPoints( 0 , 40 ) = 0.1961837595745600 ;
201 aPoints( 1 , 40 ) = 0.3523052600879940 ;
202 aPoints( 2 , 40 ) = 0.3523052600879940 ;
203
204 aPoints( 0 , 41 ) = 0.3523052600879940 ;
205 aPoints( 1 , 41 ) = 0.1961837595745600 ;
206 aPoints( 2 , 41 ) = 0.3523052600879940 ;
207
208 aPoints( 0 , 42 ) = 0.3523052600879940 ;
209 aPoints( 1 , 42 ) = 0.3523052600879940 ;
210 aPoints( 2 , 42 ) = 0.1961837595745600 ;
211
212 aPoints( 0 , 43 ) = 0.1961837595745600 ;
213 aPoints( 1 , 43 ) = 0.3523052600879940 ;
214 aPoints( 2 , 43 ) = 0.0992057202494530 ;
215
216 aPoints( 0 , 44 ) = 0.3523052600879940 ;
217 aPoints( 1 , 44 ) = 0.1961837595745600 ;
218 aPoints( 2 , 44 ) = 0.0992057202494530 ;
219
220 aPoints( 0 , 45 ) = 0.3523052600879940 ;
221 aPoints( 1 , 45 ) = 0.3523052600879940 ;
222 aPoints( 2 , 45 ) = 0.0992057202494530 ;
223
224 aPoints( 0 , 46 ) = 0.1961837595745600 ;
225 aPoints( 1 , 46 ) = 0.0992057202494530 ;
226 aPoints( 2 , 46 ) = 0.3523052600879940 ;
227
228 aPoints( 0 , 47 ) = 0.3523052600879940 ;
229 aPoints( 1 , 47 ) = 0.0992057202494530 ;
230 aPoints( 2 , 47 ) = 0.1961837595745600 ;
231
232 aPoints( 0 , 48 ) = 0.3523052600879940 ;
233 aPoints( 1 , 48 ) = 0.0992057202494530 ;
234 aPoints( 2 , 48 ) = 0.3523052600879940 ;
235
236 aPoints( 0 , 49 ) = 0.0992057202494530 ;
237 aPoints( 1 , 49 ) = 0.1961837595745600 ;
238 aPoints( 2 , 49 ) = 0.3523052600879940 ;
239
240 aPoints( 0 , 50 ) = 0.0992057202494530 ;
241 aPoints( 1 , 50 ) = 0.3523052600879940 ;
242 aPoints( 2 , 50 ) = 0.1961837595745600 ;
243
244 aPoints( 0 , 51 ) = 0.0992057202494530 ;
245 aPoints( 1 , 51 ) = 0.3523052600879940 ;
246 aPoints( 2 , 51 ) = 0.3523052600879940 ;
247
248 aPoints( 0 , 52 ) = 0.5965649956210170 ;
249 aPoints( 1 , 52 ) = 0.1344783347929940 ;
250 aPoints( 2 , 52 ) = 0.1344783347929940 ;
251
252 aPoints( 0 , 53 ) = 0.1344783347929940 ;
253 aPoints( 1 , 53 ) = 0.5965649956210170 ;
254 aPoints( 2 , 53 ) = 0.1344783347929940 ;
255
256 aPoints( 0 , 54 ) = 0.1344783347929940 ;
257 aPoints( 1 , 54 ) = 0.1344783347929940 ;
258 aPoints( 2 , 54 ) = 0.5965649956210170 ;
259
260 aPoints( 0 , 55 ) = 0.1344783347929940 ;
261 aPoints( 1 , 55 ) = 0.1344783347929940 ;
262 aPoints( 2 , 55 ) = 0.1344783347929940 ;
263
264 for( uint k=0; k<56; ++k )
265 {
266 aPoints( 3, k ) = 1.0
267 - aPoints( 0, k )
268 - aPoints( 1, k )
269 - aPoints( 2, k );
270 }
271
272
273 aWeights( 0 ) = 0.00017288520560233 ;
274 aWeights( 1 ) = 0.00017288520560233 ;
275 aWeights( 2 ) = 0.00017288520560233 ;
276 aWeights( 3 ) = 0.00017288520560233 ;
277
278 aWeights( 4 ) = 0.00160027742332466 ;
279 aWeights( 5 ) = 0.00160027742332466 ;
280 aWeights( 6 ) = 0.00160027742332466 ;
281 aWeights( 7 ) = 0.00160027742332466 ;
282 aWeights( 8 ) = 0.00160027742332466 ;
283 aWeights( 9 ) = 0.00160027742332466 ;
284 aWeights( 10 ) = 0.00160027742332466 ;
285 aWeights( 11 ) = 0.00160027742332466 ;
286 aWeights( 12 ) = 0.00160027742332466 ;
287 aWeights( 13 ) = 0.00160027742332466 ;
288 aWeights( 14 ) = 0.00160027742332466 ;
289 aWeights( 15 ) = 0.00160027742332466 ;
290
291 aWeights( 16 ) = 0.00274156627997053 ;
292 aWeights( 17 ) = 0.00274156627997053 ;
293 aWeights( 18 ) = 0.00274156627997053 ;
294 aWeights( 19 ) = 0.00274156627997053 ;
295 aWeights( 20 ) = 0.00274156627997053 ;
296 aWeights( 21 ) = 0.00274156627997053 ;
297 aWeights( 22 ) = 0.00274156627997053 ;
298 aWeights( 23 ) = 0.00274156627997053 ;
299 aWeights( 24 ) = 0.00274156627997053 ;
300 aWeights( 25 ) = 0.00274156627997053 ;
301 aWeights( 26 ) = 0.00274156627997053 ;
302 aWeights( 27 ) = 0.00274156627997053 ;
303
304 aWeights( 28 ) = 0.00256246277522183 ;
305 aWeights( 29 ) = 0.00256246277522183 ;
306 aWeights( 30 ) = 0.00256246277522183 ;
307 aWeights( 31 ) = 0.00256246277522183 ;
308 aWeights( 32 ) = 0.00256246277522183 ;
309 aWeights( 33 ) = 0.00256246277522183 ;
310 aWeights( 34 ) = 0.00256246277522183 ;
311 aWeights( 35 ) = 0.00256246277522183 ;
312 aWeights( 36 ) = 0.00256246277522183 ;
313 aWeights( 37 ) = 0.00256246277522183 ;
314 aWeights( 38 ) = 0.00256246277522183 ;
315 aWeights( 39 ) = 0.00256246277522183 ;
316
317 aWeights( 40 ) = 0.00489200197292049 ;
318 aWeights( 41 ) = 0.00489200197292049 ;
319 aWeights( 42 ) = 0.00489200197292049 ;
320 aWeights( 43 ) = 0.00489200197292049 ;
321 aWeights( 44 ) = 0.00489200197292049 ;
322 aWeights( 45 ) = 0.00489200197292049 ;
323 aWeights( 46 ) = 0.00489200197292049 ;
324 aWeights( 47 ) = 0.00489200197292049 ;
325 aWeights( 48 ) = 0.00489200197292049 ;
326 aWeights( 49 ) = 0.00489200197292049 ;
327 aWeights( 50 ) = 0.00489200197292049 ;
328 aWeights( 51 ) = 0.00489200197292049 ;
329
330 aWeights( 52 ) = 0.00610485610675179 ;
331 aWeights( 53 ) = 0.00610485610675179 ;
332 aWeights( 54 ) = 0.00610485610675179 ;
333 aWeights( 55 ) = 0.00610485610675179 ;
334 }
335
336// ----------------------------------------------------------------------------
337 } /* namespace integration */
338} /* namespace belfem */
339
340#endif //BELFEM_FN_INTPOINTS_GAUSS_TET56_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
Definition fn_intpoints.cpp:576
void gauss_tet56(Vector< real > &aWeights, Matrix< real > &aPoints)
Definition fn_intpoints_gauss_tet56.hpp:32
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30