BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_intpoints_gauss_tri79.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_TRI79_HPP
13#define BELFEM_FN_INTPOINTS_GAUSS_TRI79_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( 3, 79 );
40
41 aPoints( 0, 0 ) = 1./3.;
42 aPoints( 1, 0 ) = 1./3.;
43
44 aPoints( 0, 1 ) = 0.18629499774454095;
45 aPoints( 1, 1 ) = 0.18629499774454095;
46
47 aPoints( 0, 2 ) = 0.037310880598884766;
48 aPoints( 1, 2 ) = 0.037310880598884766;
49
50 aPoints( 0, 3 ) = 0.476245611540499;
51 aPoints( 1, 3 ) = 0.476245611540499;
52
53 aPoints( 0, 4 ) = 0.4455510569559248;
54 aPoints( 1, 4 ) = 0.4455510569559248;
55
56 aPoints( 0, 5 ) = 0.25457926767333916;
57 aPoints( 1, 5 ) = 0.25457926767333916;
58
59 aPoints( 0, 6 ) = 0.39342534781709987;
60 aPoints( 1, 6 ) = 0.39342534781709987;
61
62 aPoints( 0, 7 ) = 0.01097614102839789;
63 aPoints( 1, 7 ) = 0.01097614102839789;
64
65 aPoints( 0, 8 ) = 0.10938359671171471;
66 aPoints( 1, 8 ) = 0.10938359671171471;
67
68 aPoints( 0, 9 ) = 0.18629499774454095;
69 aPoints( 1, 9 ) = 0.6274100045109181;
70
71 aPoints( 0, 10 ) = 0.037310880598884766;
72 aPoints( 1, 10 ) = 0.9253782388022305;
73
74 aPoints( 0, 11 ) = 0.476245611540499;
75 aPoints( 1, 11 ) = 0.047508776919002016;
76
77 aPoints( 0, 12 ) = 0.4455510569559248;
78 aPoints( 1, 12 ) = 0.10889788608815043;
79
80 aPoints( 0, 13 ) = 0.25457926767333916;
81 aPoints( 1, 13 ) = 0.4908414646533217;
82
83 aPoints( 0, 14 ) = 0.39342534781709987;
84 aPoints( 1, 14 ) = 0.21314930436580026;
85
86 aPoints( 0, 15 ) = 0.01097614102839789;
87 aPoints( 1, 15 ) = 0.9780477179432042;
88
89 aPoints( 0, 16 ) = 0.10938359671171471;
90 aPoints( 1, 16 ) = 0.7812328065765706;
91
92 aPoints( 0, 17 ) = 0.6274100045109181;
93 aPoints( 1, 17 ) = 0.18629499774454095;
94
95 aPoints( 0, 18 ) = 0.9253782388022305;
96 aPoints( 1, 18 ) = 0.037310880598884766;
97
98 aPoints( 0, 19 ) = 0.047508776919002016;
99 aPoints( 1, 19 ) = 0.476245611540499;
100
101 aPoints( 0, 20 ) = 0.10889788608815043;
102 aPoints( 1, 20 ) = 0.4455510569559248;
103
104 aPoints( 0, 21 ) = 0.4908414646533217;
105 aPoints( 1, 21 ) = 0.25457926767333916;
106
107 aPoints( 0, 22 ) = 0.21314930436580026;
108 aPoints( 1, 22 ) = 0.39342534781709987;
109
110 aPoints( 0, 23 ) = 0.9780477179432042;
111 aPoints( 1, 23 ) = 0.01097614102839789;
112
113 aPoints( 0, 24 ) = 0.7812328065765706;
114 aPoints( 1, 24 ) = 0.10938359671171471;
115
116 aPoints( 0, 25 ) = 0.004854937607623827;
117 aPoints( 1, 25 ) = 0.06409058560843404;
118
119 aPoints( 0, 26 ) = 0.10622720472027006;
120 aPoints( 1, 26 ) = 0.2156070573900944;
121
122 aPoints( 0, 27 ) = 0.007570780504696579;
123 aPoints( 1, 27 ) = 0.15913370765706722;
124
125 aPoints( 0, 28 ) = 0.13980807199179993;
126 aPoints( 1, 28 ) = 0.317860123835772;
127
128 aPoints( 0, 29 ) = 0.04656036490766434;
129 aPoints( 1, 29 ) = 0.19851813222878817;
130
131 aPoints( 0, 30 ) = 0.038363684775374655;
132 aPoints( 1, 30 ) = 0.09995229628813862;
133
134 aPoints( 0, 31 ) = 0.009831548292802588;
135 aPoints( 1, 31 ) = 0.42002375881622406;
136
137 aPoints( 0, 32 ) = 0.05498747914298685;
138 aPoints( 1, 32 ) = 0.33313481730958744;
139
140 aPoints( 0, 33 ) = 0.01073721285601111;
141 aPoints( 1, 33 ) = 0.2805814114236652;
142
143 aPoints( 0, 34 ) = 0.9310544767839422;
144 aPoints( 1, 34 ) = 0.004854937607623827;
145
146 aPoints( 0, 35 ) = 0.6781657378896355;
147 aPoints( 1, 35 ) = 0.10622720472027006;
148
149 aPoints( 0, 36 ) = 0.8332955118382361;
150 aPoints( 1, 36 ) = 0.007570780504696579;
151
152 aPoints( 0, 37 ) = 0.5423318041724281;
153 aPoints( 1, 37 ) = 0.13980807199179993;
154
155 aPoints( 0, 38 ) = 0.7549215028635474;
156 aPoints( 1, 38 ) = 0.04656036490766434;
157
158 aPoints( 0, 39 ) = 0.8616840189364867;
159 aPoints( 1, 39 ) = 0.038363684775374655;
160
161 aPoints( 0, 40 ) = 0.5701446928909732;
162 aPoints( 1, 40 ) = 0.009831548292802588;
163
164 aPoints( 0, 41 ) = 0.6118777035474257;
165 aPoints( 1, 41 ) = 0.05498747914298685;
166
167 aPoints( 0, 42 ) = 0.7086813757203236;
168 aPoints( 1, 42 ) = 0.01073721285601111;
169
170 aPoints( 0, 43 ) = 0.06409058560843404;
171 aPoints( 1, 43 ) = 0.9310544767839422;
172
173 aPoints( 0, 44 ) = 0.2156070573900944;
174 aPoints( 1, 44 ) = 0.6781657378896355;
175
176 aPoints( 0, 45 ) = 0.15913370765706722;
177 aPoints( 1, 45 ) = 0.8332955118382361;
178
179 aPoints( 0, 46 ) = 0.317860123835772;
180 aPoints( 1, 46 ) = 0.5423318041724281;
181
182 aPoints( 0, 47 ) = 0.19851813222878817;
183 aPoints( 1, 47 ) = 0.7549215028635474;
184
185 aPoints( 0, 48 ) = 0.09995229628813862;
186 aPoints( 1, 48 ) = 0.8616840189364867;
187
188 aPoints( 0, 49 ) = 0.42002375881622406;
189 aPoints( 1, 49 ) = 0.5701446928909732;
190
191 aPoints( 0, 50 ) = 0.33313481730958744;
192 aPoints( 1, 50 ) = 0.6118777035474257;
193
194 aPoints( 0, 51 ) = 0.2805814114236652;
195 aPoints( 1, 51 ) = 0.7086813757203236;
196
197 aPoints( 0, 52 ) = 0.06409058560843404;
198 aPoints( 1, 52 ) = 0.004854937607623827;
199
200 aPoints( 0, 53 ) = 0.2156070573900944;
201 aPoints( 1, 53 ) = 0.10622720472027006;
202
203 aPoints( 0, 54 ) = 0.15913370765706722;
204 aPoints( 1, 54 ) = 0.007570780504696579;
205
206 aPoints( 0, 55 ) = 0.317860123835772;
207 aPoints( 1, 55 ) = 0.13980807199179993;
208
209 aPoints( 0, 56 ) = 0.19851813222878817;
210 aPoints( 1, 56 ) = 0.04656036490766434;
211
212 aPoints( 0, 57 ) = 0.09995229628813862;
213 aPoints( 1, 57 ) = 0.038363684775374655;
214
215 aPoints( 0, 58 ) = 0.42002375881622406;
216 aPoints( 1, 58 ) = 0.009831548292802588;
217
218 aPoints( 0, 59 ) = 0.33313481730958744;
219 aPoints( 1, 59 ) = 0.05498747914298685;
220
221 aPoints( 0, 60 ) = 0.2805814114236652;
222 aPoints( 1, 60 ) = 0.01073721285601111;
223
224 aPoints( 0, 61 ) = 0.9310544767839422;
225 aPoints( 1, 61 ) = 0.06409058560843404;
226
227 aPoints( 0, 62 ) = 0.6781657378896355;
228 aPoints( 1, 62 ) = 0.2156070573900944;
229
230 aPoints( 0, 63 ) = 0.8332955118382361;
231 aPoints( 1, 63 ) = 0.15913370765706722;
232
233 aPoints( 0, 64 ) = 0.5423318041724281;
234 aPoints( 1, 64 ) = 0.317860123835772;
235
236 aPoints( 0, 65 ) = 0.7549215028635474;
237 aPoints( 1, 65 ) = 0.19851813222878817;
238
239 aPoints( 0, 66 ) = 0.8616840189364867;
240 aPoints( 1, 66 ) = 0.09995229628813862;
241
242 aPoints( 0, 67 ) = 0.5701446928909732;
243 aPoints( 1, 67 ) = 0.42002375881622406;
244
245 aPoints( 0, 68 ) = 0.6118777035474257;
246 aPoints( 1, 68 ) = 0.33313481730958744;
247
248 aPoints( 0, 69 ) = 0.7086813757203236;
249 aPoints( 1, 69 ) = 0.2805814114236652;
250
251 aPoints( 0, 70 ) = 0.004854937607623827;
252 aPoints( 1, 70 ) = 0.9310544767839422;
253
254 aPoints( 0, 71 ) = 0.10622720472027006;
255 aPoints( 1, 71 ) = 0.6781657378896355;
256
257 aPoints( 0, 72 ) = 0.007570780504696579;
258 aPoints( 1, 72 ) = 0.8332955118382361;
259
260 aPoints( 0, 73 ) = 0.13980807199179993;
261 aPoints( 1, 73 ) = 0.5423318041724281;
262
263 aPoints( 0, 74 ) = 0.04656036490766434;
264 aPoints( 1, 74 ) = 0.7549215028635474;
265
266 aPoints( 0, 75 ) = 0.038363684775374655;
267 aPoints( 1, 75 ) = 0.8616840189364867;
268
269 aPoints( 0, 76 ) = 0.009831548292802588;
270 aPoints( 1, 76 ) = 0.5701446928909732;
271
272 aPoints( 0, 77 ) = 0.05498747914298685;
273 aPoints( 1, 77 ) = 0.6118777035474257;
274
275 aPoints( 0, 78 ) = 0.01073721285601111;
276 aPoints( 1, 78 ) = 0.7086813757203236;
277
278 for( uint k=0; k<79; ++k )
279 {
280 aPoints( 2, k ) = 1.0
281 - aPoints( 0, k )
282 - aPoints( 1, k );
283 }
284
285 aWeights.set_size( 79 );
286
287 aWeights( 0 ) = 0.013910110701453116;
288 aWeights( 1 ) = 0.009173462974252915;
289 aWeights( 2 ) = 0.0021612754106655778;
290 aWeights( 3 ) = 0.007101825303408441;
291 aWeights( 4 ) = 0.009452399933232448;
292 aWeights( 5 ) = 0.014083201307520249;
293 aWeights( 6 ) = 0.013788050629070459;
294 aWeights( 7 ) = 0.00079884079106662;
295 aWeights( 8 ) = 0.007830230776074535;
296 aWeights( 9 ) = 0.009173462974252915;
297 aWeights( 10 ) = 0.0021612754106655778;
298 aWeights( 11 ) = 0.007101825303408441;
299 aWeights( 12 ) = 0.009452399933232448;
300 aWeights( 13 ) = 0.014083201307520249;
301 aWeights( 14 ) = 0.013788050629070459;
302 aWeights( 15 ) = 0.00079884079106662;
303 aWeights( 16 ) = 0.007830230776074535;
304 aWeights( 17 ) = 0.009173462974252915;
305 aWeights( 18 ) = 0.0021612754106655778;
306 aWeights( 19 ) = 0.007101825303408441;
307 aWeights( 20 ) = 0.009452399933232448;
308 aWeights( 21 ) = 0.014083201307520249;
309 aWeights( 22 ) = 0.013788050629070459;
310 aWeights( 23 ) = 0.00079884079106662;
311 aWeights( 24 ) = 0.007830230776074535;
312 aWeights( 25 ) = 0.0011298696021258656;
313 aWeights( 26 ) = 0.007722607822099231;
314 aWeights( 27 ) = 0.002202897418558498;
315 aWeights( 28 ) = 0.011691745731827735;
316 aWeights( 29 ) = 0.00598639857895469;
317 aWeights( 30 ) = 0.004145711527613858;
318 aWeights( 31 ) = 0.003695681500255298;
319 aWeights( 32 ) = 0.008667225567219335;
320 aWeights( 33 ) = 0.0035782002384576856;
321 aWeights( 34 ) = 0.0011298696021258656;
322 aWeights( 35 ) = 0.007722607822099231;
323 aWeights( 36 ) = 0.002202897418558498;
324 aWeights( 37 ) = 0.011691745731827735;
325 aWeights( 38 ) = 0.00598639857895469;
326 aWeights( 39 ) = 0.004145711527613858;
327 aWeights( 40 ) = 0.003695681500255298;
328 aWeights( 41 ) = 0.008667225567219335;
329 aWeights( 42 ) = 0.0035782002384576856;
330 aWeights( 43 ) = 0.0011298696021258656;
331 aWeights( 44 ) = 0.007722607822099231;
332 aWeights( 45 ) = 0.002202897418558498;
333 aWeights( 46 ) = 0.011691745731827735;
334 aWeights( 47 ) = 0.00598639857895469;
335 aWeights( 48 ) = 0.004145711527613858;
336 aWeights( 49 ) = 0.003695681500255298;
337 aWeights( 50 ) = 0.008667225567219335;
338 aWeights( 51 ) = 0.0035782002384576856;
339 aWeights( 52 ) = 0.0011298696021258656;
340 aWeights( 53 ) = 0.007722607822099231;
341 aWeights( 54 ) = 0.002202897418558498;
342 aWeights( 55 ) = 0.011691745731827735;
343 aWeights( 56 ) = 0.00598639857895469;
344 aWeights( 57 ) = 0.004145711527613858;
345 aWeights( 58 ) = 0.003695681500255298;
346 aWeights( 59 ) = 0.008667225567219335;
347 aWeights( 60 ) = 0.0035782002384576856;
348 aWeights( 61 ) = 0.0011298696021258656;
349 aWeights( 62 ) = 0.007722607822099231;
350 aWeights( 63 ) = 0.002202897418558498;
351 aWeights( 64 ) = 0.011691745731827735;
352 aWeights( 65 ) = 0.00598639857895469;
353 aWeights( 66 ) = 0.004145711527613858;
354 aWeights( 67 ) = 0.003695681500255298;
355 aWeights( 68 ) = 0.008667225567219335;
356 aWeights( 69 ) = 0.0035782002384576856;
357 aWeights( 70 ) = 0.0011298696021258656;
358 aWeights( 71 ) = 0.007722607822099231;
359 aWeights( 72 ) = 0.002202897418558498;
360 aWeights( 73 ) = 0.011691745731827735;
361 aWeights( 74 ) = 0.00598639857895469;
362 aWeights( 75 ) = 0.004145711527613858;
363 aWeights( 76 ) = 0.003695681500255298;
364 aWeights( 77 ) = 0.008667225567219335;
365 aWeights( 78 ) = 0.0035782002384576856;
366
367 aWeights( 0 ) = 0.0;
368 aWeights( 0 ) = 0.5 - sum( aWeights );
369 }
370
371// ----------------------------------------------------------------------------
372 } /* namespace integration */
373} /* end namespace belfem */
374
375#endif // BELFEM_FN_INTPOINTS_GAUSS_TRI79_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_tri79(Vector< real > &aWeights, Matrix< real > &aPoints)
20th order interpolation
Definition fn_intpoints_gauss_tri79.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