libMesh
Loading...
Searching...
No Matches
quadrature_gauss_lobatto_1D.C
Go to the documentation of this file.
1// The libMesh Finite Element Library.
2// Copyright (C) 2002-2026 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
20// C++ includes
21
22// Local includes
23#include "libmesh/quadrature_gauss_lobatto.h"
24
25namespace libMesh
26{
27
29{
30 //----------------------------------------------------------------------
31 // 1D quadrature rules
32 switch(get_order())
33 {
34 // Since Gauss-Lobatto rules must include the endpoints of the
35 // domain, there is no 1-point rule. The two-point
36 // Gauss-Lobatto rule is equivalent to the trapezoidal rule.
37 case CONSTANT:
38 case FIRST:
39 {
40 _points.resize (2);
41 _weights.resize(2);
42
43 _points[0](0) = -1;
44 _points[1] = -_points[0];
45
46 _weights[0] = 1.;
47 _weights[1] = _weights[0];
48
49 return;
50 }
51
52 // The three-point Gauss-Lobatto rule is equivalent to Simpsons' rule.
53 // It can integrate cubic polynomials exactly.
54 case SECOND:
55 case THIRD:
56 {
57 _points.resize (3);
58 _weights.resize(3);
59
60 _points[0](0) = -1;
61 _points[1] = 0;
62 _points[2] = -_points[0];
63
64 _weights[0] = Real(1)/3;
65 _weights[1] = Real(4)/3;
66 _weights[2] = _weights[0];
67 return;
68 }
69
70 // The four-point Gauss-Lobatto rule can integrate 2*4-3 =
71 // 5th-order polynomials exactly.
72 case FOURTH:
73 case FIFTH:
74 {
75 _points.resize (4);
76 _weights.resize(4);
77
78 _points[ 0](0) = -1;
79 _points[ 1](0) = -std::sqrt(Real(1)/5); // ~ -0.4472135955
80 _points[ 2] = -_points[1];
81 _points[ 3] = -_points[0];
82
83 _weights[ 0] = Real(1)/6;
84 _weights[ 1] = Real(5)/6;
85 _weights[ 2] = _weights[1];
86 _weights[ 3] = _weights[0];
87
88 return;
89 }
90
91 // The five-point Gauss-Lobatto rule can integrate 2*5-3 =
92 // 7th-order polynomials exactly.
93 case SIXTH:
94 case SEVENTH:
95 {
96 _points.resize (5);
97 _weights.resize(5);
98
99 _points[ 0](0) = -1;
100 _points[ 1](0) = -std::sqrt(Real(3)/7); // ~ -0.6546536707
101 _points[ 2](0) = 0.;
102 _points[ 3] = -_points[1];
103 _points[ 4] = -_points[0];
104
105 _weights[ 0] = 1/Real(10);
106 _weights[ 1] = Real(49)/90;
107 _weights[ 2] = Real(32)/45;
108 _weights[ 3] = _weights[1];
109 _weights[ 4] = _weights[0];
110
111 return;
112 }
113
114 // 2*6-3 = 9
115 case EIGHTH:
116 case NINTH:
117 {
118 _points.resize (6);
119 _weights.resize(6);
120
121 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
122 _points[ 1](0) = -7.6505532392946469285100297395934e-01_R;
123 _points[ 2](0) = -2.8523151648064509631415099404088e-01_R;
124 _points[ 3] = -_points[2];
125 _points[ 4] = -_points[1];
126 _points[ 5] = -_points[0];
127
128 _weights[ 0] = 6.6666666666666666666666666666667e-02_R;
129 _weights[ 1] = 3.7847495629784698031661280821202e-01_R;
130 _weights[ 2] = 5.5485837703548635301672052512131e-01_R;
131 _weights[ 3] = _weights[2];
132 _weights[ 4] = _weights[1];
133 _weights[ 5] = _weights[0];
134
135 return;
136 }
137
138 // 2*7-3 = 11
139 case TENTH:
140 case ELEVENTH:
141 {
142 _points.resize (7);
143 _weights.resize(7);
144
145 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
146 _points[ 1](0) = -8.3022389627856692987203221396747e-01_R;
147 _points[ 2](0) = -4.6884879347071421380377188190877e-01_R;
148 _points[ 3](0) = 0.;
149 _points[ 4] = -_points[2];
150 _points[ 5] = -_points[1];
151 _points[ 6] = -_points[0];
152
153 _weights[ 0] = 4.7619047619047619047619047619048e-02_R;
154 _weights[ 1] = 2.7682604736156594801070040629007e-01_R;
155 _weights[ 2] = 4.3174538120986262341787102228136e-01_R;
156 _weights[ 3] = 4.8761904761904761904761904761905e-01_R;
157 _weights[ 4] = _weights[2];
158 _weights[ 5] = _weights[1];
159 _weights[ 6] = _weights[0];
160
161 return;
162 }
163
164 // 2*8-3 = 13
165 case TWELFTH:
166 case THIRTEENTH:
167 {
168 _points.resize (8);
169 _weights.resize(8);
170
171 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
172 _points[ 1](0) = -8.7174014850960661533744576122066e-01_R;
173 _points[ 2](0) = -5.9170018143314230214451073139795e-01_R;
174 _points[ 3](0) = -2.0929921790247886876865726034535e-01_R;
175 _points[ 4] = -_points[3];
176 _points[ 5] = -_points[2];
177 _points[ 6] = -_points[1];
178 _points[ 7] = -_points[0];
179
180 _weights[ 0] = 3.5714285714285714285714285714286e-02_R;
181 _weights[ 1] = 2.1070422714350603938299206577576e-01_R;
182 _weights[ 2] = 3.4112269248350436476424067710775e-01_R;
183 _weights[ 3] = 4.1245879465870388156705297140221e-01_R;
184 _weights[ 4] = _weights[3];
185 _weights[ 5] = _weights[2];
186 _weights[ 6] = _weights[1];
187 _weights[ 7] = _weights[0];
188
189 return;
190 }
191
192 // 2*9-3 = 15
193 case FOURTEENTH:
194 case FIFTEENTH:
195 {
196 _points.resize (9);
197 _weights.resize(9);
198
199 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
200 _points[ 1](0) = -8.9975799541146015731234524441834e-01_R;
201 _points[ 2](0) = -6.7718627951073775344588542709134e-01_R;
202 _points[ 3](0) = -3.6311746382617815871075206870866e-01_R;
203 _points[ 4](0) = 0.;
204 _points[ 5] = -_points[3];
205 _points[ 6] = -_points[2];
206 _points[ 7] = -_points[1];
207 _points[ 8] = -_points[0];
208
209 _weights[ 0] = 2.7777777777777777777777777777778e-02_R;
210 _weights[ 1] = 1.6549536156080552504633972002921e-01_R;
211 _weights[ 2] = 2.7453871250016173528070561857937e-01_R;
212 _weights[ 3] = 3.4642851097304634511513153213972e-01_R;
213 _weights[ 4] = 3.7151927437641723356009070294785e-01_R;
214 _weights[ 5] = _weights[3];
215 _weights[ 6] = _weights[2];
216 _weights[ 7] = _weights[1];
217 _weights[ 8] = _weights[0];
218
219 return;
220 }
221
222 // 2*10-3 = 17
223 case SIXTEENTH:
224 case SEVENTEENTH:
225 {
226 _points.resize (10);
227 _weights.resize(10);
228
229 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
230 _points[ 1](0) = -9.1953390816645881382893266082234e-01_R;
231 _points[ 2](0) = -7.3877386510550507500310617485983e-01_R;
232 _points[ 3](0) = -4.7792494981044449566117509273126e-01_R;
233 _points[ 4](0) = -1.6527895766638702462621976595817e-01_R;
234 _points[ 5] = -_points[4];
235 _points[ 6] = -_points[3];
236 _points[ 7] = -_points[2];
237 _points[ 8] = -_points[1];
238 _points[ 9] = -_points[0];
239
240 _weights[ 0] = 2.2222222222222222222222222222222e-02_R;
241 _weights[ 1] = 1.3330599085107011112622717075539e-01_R;
242 _weights[ 2] = 2.2488934206312645211945782173105e-01_R;
243 _weights[ 3] = 2.9204268367968375787558225737444e-01_R;
244 _weights[ 4] = 3.2753976118389745665651052791689e-01_R;
245 _weights[ 5] = _weights[4];
246 _weights[ 6] = _weights[3];
247 _weights[ 7] = _weights[2];
248 _weights[ 8] = _weights[1];
249 _weights[ 9] = _weights[0];
250
251 return;
252 }
253
254 // 2*11-3 = 19
255 case EIGHTTEENTH:
256 case NINETEENTH:
257 {
258 _points.resize (11);
259 _weights.resize(11);
260
261 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
262 _points[ 1](0) = -9.3400143040805913433227413609938e-01_R;
263 _points[ 2](0) = -7.8448347366314441862241781610846e-01_R;
264 _points[ 3](0) = -5.6523532699620500647096396947775e-01_R;
265 _points[ 4](0) = -2.9575813558693939143191151555906e-01_R;
266 _points[ 5](0) = 0.;
267 _points[ 6] = -_points[4];
268 _points[ 7] = -_points[3];
269 _points[ 8] = -_points[2];
270 _points[ 9] = -_points[1];
271 _points[10] = -_points[0];
272
273 _weights[ 0] = 1.8181818181818181818181818181818e-02_R;
274 _weights[ 1] = 1.0961227326699486446140344958035e-01_R;
275 _weights[ 2] = 1.8716988178030520410814152189943e-01_R;
276 _weights[ 3] = 2.4804810426402831404008486642187e-01_R;
277 _weights[ 4] = 2.8687912477900808867922240333154e-01_R;
278 _weights[ 5] = 3.0021759545569069378593188116998e-01_R;
279 _weights[ 6] = _weights[4];
280 _weights[ 7] = _weights[3];
281 _weights[ 8] = _weights[2];
282 _weights[ 9] = _weights[1];
283 _weights[10] = _weights[0];
284
285 return;
286 }
287
288 // 2*12-3 = 21
289 case TWENTIETH:
290 case TWENTYFIRST:
291 {
292 _points.resize (12);
293 _weights.resize(12);
294
295 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
296 _points[ 1](0) = -9.4489927222288222340758013830322e-01_R;
297 _points[ 2](0) = -8.1927932164400667834864158171690e-01_R;
298 _points[ 3](0) = -6.3287615303186067766240485444366e-01_R;
299 _points[ 4](0) = -3.9953094096534893226434979156697e-01_R;
300 _points[ 5](0) = -1.3655293285492755486406185573969e-01_R;
301 _points[ 6] = -_points[5];
302 _points[ 7] = -_points[4];
303 _points[ 8] = -_points[3];
304 _points[ 9] = -_points[2];
305 _points[10] = -_points[1];
306 _points[11] = -_points[0];
307
308 _weights[ 0] = 1.5151515151515151515151515151515e-02_R;
309 _weights[ 1] = 9.1684517413196130668342594134079e-02_R;
310 _weights[ 2] = 1.5797470556437011516467106270034e-01_R;
311 _weights[ 3] = 2.1250841776102114535830207736687e-01_R;
312 _weights[ 4] = 2.5127560319920128029324441214760e-01_R;
313 _weights[ 5] = 2.7140524091069617700028833849960e-01_R;
314 _weights[ 6] = _weights[5];
315 _weights[ 7] = _weights[4];
316 _weights[ 8] = _weights[3];
317 _weights[ 9] = _weights[2];
318 _weights[10] = _weights[1];
319 _weights[11] = _weights[0];
320
321 return;
322 }
323
324 // 2*13-3 = 23
325 case TWENTYSECOND:
326 case TWENTYTHIRD:
327 {
328 _points.resize (13);
329 _weights.resize(13);
330
331 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
332 _points[ 1](0) = -9.5330984664216391189690546475545e-01_R;
333 _points[ 2](0) = -8.4634756465187231686592560709875e-01_R;
334 _points[ 3](0) = -6.8618846908175742607275903956636e-01_R;
335 _points[ 4](0) = -4.8290982109133620174693723363693e-01_R;
336 _points[ 5](0) = -2.4928693010623999256867370037423e-01_R;
337 _points[ 6](0) = 0.;
338 _points[ 7] = -_points[5];
339 _points[ 8] = -_points[4];
340 _points[ 9] = -_points[3];
341 _points[10] = -_points[2];
342 _points[11] = -_points[1];
343 _points[12] = -_points[0];
344
345 _weights[ 0] = 1.2820512820512820512820512820513e-02_R;
346 _weights[ 1] = 7.7801686746818927793588988333134e-02_R;
347 _weights[ 2] = 1.3498192668960834911991476258937e-01_R;
348 _weights[ 3] = 1.8364686520355009200749425874681e-01_R;
349 _weights[ 4] = 2.2076779356611008608553400837940e-01_R;
350 _weights[ 5] = 2.4401579030667635645857814836016e-01_R;
351 _weights[ 6] = 2.5193084933344673604413864154124e-01_R;
352 _weights[ 7] = _weights[5];
353 _weights[ 8] = _weights[4];
354 _weights[ 9] = _weights[3];
355 _weights[10] = _weights[2];
356 _weights[11] = _weights[1];
357 _weights[12] = _weights[0];
358
359 return;
360 }
361
362 // 2*14-3 = 25
363 case TWENTYFOURTH:
364 case TWENTYFIFTH:
365 {
366 _points.resize (14);
367 _weights.resize(14);
368
369 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
370 _points[ 1](0) = -9.5993504526726090135510016201542e-01_R;
371 _points[ 2](0) = -8.6780105383034725100022020290826e-01_R;
372 _points[ 3](0) = -7.2886859909132614058467240052088e-01_R;
373 _points[ 4](0) = -5.5063940292864705531662270585908e-01_R;
374 _points[ 5](0) = -3.4272401334271284504390340364167e-01_R;
375 _points[ 6](0) = -1.1633186888370386765877670973616e-01_R;
376 _points[ 7] = -_points[6];
377 _points[ 8] = -_points[5];
378 _points[ 9] = -_points[4];
379 _points[10] = -_points[3];
380 _points[11] = -_points[2];
381 _points[12] = -_points[1];
382 _points[13] = -_points[0];
383
384 _weights[ 0] = 1.0989010989010989010989010989011e-02_R;
385 _weights[ 1] = 6.6837284497681284634070660746053e-02_R;
386 _weights[ 2] = 1.1658665589871165154099667065465e-01_R;
387 _weights[ 3] = 1.6002185176295214241282099798759e-01_R;
388 _weights[ 4] = 1.9482614937341611864033177837588e-01_R;
389 _weights[ 5] = 2.1912625300977075487116252395417e-01_R;
390 _weights[ 6] = 2.3161279446845705888962835729264e-01_R;
391 _weights[ 7] = _weights[6];
392 _weights[ 8] = _weights[5];
393 _weights[ 9] = _weights[4];
394 _weights[10] = _weights[3];
395 _weights[11] = _weights[2];
396 _weights[12] = _weights[1];
397 _weights[13] = _weights[0];
398
399 return;
400 }
401
402 // 2*15-3 = 27
403 case TWENTYSIXTH:
404 case TWENTYSEVENTH:
405 {
406 _points.resize (15);
407 _weights.resize(15);
408
409 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
410 _points[ 1](0) = -9.6524592650383857279585139206960e-01_R;
411 _points[ 2](0) = -8.8508204422297629882540163148223e-01_R;
412 _points[ 3](0) = -7.6351968995181520070411847597629e-01_R;
413 _points[ 4](0) = -6.0625320546984571112352993863673e-01_R;
414 _points[ 5](0) = -4.2063805471367248092189693873858e-01_R;
415 _points[ 6](0) = -2.1535395536379423822567944627292e-01_R;
416 _points[ 7](0) = 0.;
417 _points[ 8] = -_points[6];
418 _points[ 9] = -_points[5];
419 _points[10] = -_points[4];
420 _points[11] = -_points[3];
421 _points[12] = -_points[2];
422 _points[13] = -_points[1];
423 _points[14] = -_points[0];
424
425 _weights[ 0] = 9.5238095238095238095238095238095e-03_R;
426 _weights[ 1] = 5.8029893028601249096880584025282e-02_R;
427 _weights[ 2] = 1.0166007032571806760366617078880e-01_R;
428 _weights[ 3] = 1.4051169980242810946044680564367e-01_R;
429 _weights[ 4] = 1.7278964725360094905207709940835e-01_R;
430 _weights[ 5] = 1.9698723596461335609250034650741e-01_R;
431 _weights[ 6] = 2.1197358592682092012743007697722e-01_R;
432 _weights[ 7] = 2.1704811634881564951495021425091e-01_R;
433 _weights[ 8] = _weights[6];
434 _weights[ 9] = _weights[5];
435 _weights[10] = _weights[4];
436 _weights[11] = _weights[3];
437 _weights[12] = _weights[2];
438 _weights[13] = _weights[1];
439 _weights[14] = _weights[0];
440
441 return;
442 }
443
444 // 2*16-3 = 29
445 case TWENTYEIGHTH:
446 case TWENTYNINTH:
447 {
448 _points.resize (16);
449 _weights.resize(16);
450
451 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
452 _points[ 1](0) = -9.6956804627021793295224273836746e-01_R;
453 _points[ 2](0) = -8.9920053309347209299462826151985e-01_R;
454 _points[ 3](0) = -7.9200829186181506393108827096315e-01_R;
455 _points[ 4](0) = -6.5238870288249308946788321964058e-01_R;
456 _points[ 5](0) = -4.8605942188713761178189078584687e-01_R;
457 _points[ 6](0) = -2.9983046890076320809835345472230e-01_R;
458 _points[ 7](0) = -1.0132627352194944784303300504592e-01_R;
459 _points[ 8] = -_points[7];
460 _points[ 9] = -_points[6];
461 _points[10] = -_points[5];
462 _points[11] = -_points[4];
463 _points[12] = -_points[3];
464 _points[13] = -_points[2];
465 _points[14] = -_points[1];
466 _points[15] = -_points[0];
467
468 _weights[ 0] = 8.3333333333333333333333333333333e-03_R;
469 _weights[ 1] = 5.0850361005919905403244919565455e-02_R;
470 _weights[ 2] = 8.9393697325930800991052080166084e-02_R;
471 _weights[ 3] = 1.2425538213251409834953633265731e-01_R;
472 _weights[ 4] = 1.5402698080716428081564494048499e-01_R;
473 _weights[ 5] = 1.7749191339170412530107566952836e-01_R;
474 _weights[ 6] = 1.9369002382520358431691359885352e-01_R;
475 _weights[ 7] = 2.0195830817822987148919912541094e-01_R;
476 _weights[ 8] = _weights[7];
477 _weights[ 9] = _weights[6];
478 _weights[10] = _weights[5];
479 _weights[11] = _weights[4];
480 _weights[12] = _weights[3];
481 _weights[13] = _weights[2];
482 _weights[14] = _weights[1];
483 _weights[15] = _weights[0];
484
485 return;
486 }
487
488 // 2*17-3 = 31
489 case THIRTIETH:
490 case THIRTYFIRST:
491 {
492 _points.resize (17);
493 _weights.resize(17);
494
495 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
496 _points[ 1](0) = -9.7313217663141831415697950187372e-01_R;
497 _points[ 2](0) = -9.1087999591557359562380250639773e-01_R;
498 _points[ 3](0) = -8.1569625122177030710675055323753e-01_R;
499 _points[ 4](0) = -6.9102898062768470539491935737245e-01_R;
500 _points[ 5](0) = -5.4138539933010153912373340750406e-01_R;
501 _points[ 6](0) = -3.7217443356547704190723468073526e-01_R;
502 _points[ 7](0) = -1.8951197351831738830426301475311e-01_R;
503 _points[ 8](0) = 0.;
504 _points[ 9] = -_points[7];
505 _points[10] = -_points[6];
506 _points[11] = -_points[5];
507 _points[12] = -_points[4];
508 _points[13] = -_points[3];
509 _points[14] = -_points[2];
510 _points[15] = -_points[1];
511 _points[16] = -_points[0];
512
513 _weights[ 0] = 7.3529411764705882352941176470588e-03_R;
514 _weights[ 1] = 4.4921940543254209647400954623212e-02_R;
515 _weights[ 2] = 7.9198270503687119190264429952835e-02_R;
516 _weights[ 3] = 1.1059290900702816137577270522008e-01_R;
517 _weights[ 4] = 1.3798774620192655905620157495403e-01_R;
518 _weights[ 5] = 1.6039466199762153951632836586475e-01_R;
519 _weights[ 6] = 1.7700425351565787043694574536329e-01_R;
520 _weights[ 7] = 1.8721633967761923589208848286062e-01_R;
521 _weights[ 8] = 1.9066187475346943329940724702825e-01_R;
522 _weights[ 9] = _weights[7];
523 _weights[10] = _weights[6];
524 _weights[11] = _weights[5];
525 _weights[12] = _weights[4];
526 _weights[13] = _weights[3];
527 _weights[14] = _weights[2];
528 _weights[15] = _weights[1];
529 _weights[16] = _weights[0];
530
531 return;
532 }
533
534 // 2*18-3 = 33
535 case THIRTYSECOND:
536 case THIRTYTHIRD:
537 {
538 _points.resize (18);
539 _weights.resize(18);
540
541 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
542 _points[ 1](0) = -9.7610555741219854286451892434170e-01_R;
543 _points[ 2](0) = -9.2064918534753387383785462543128e-01_R;
544 _points[ 3](0) = -8.3559353521809021371364636232794e-01_R;
545 _points[ 4](0) = -7.2367932928324268130621036530207e-01_R;
546 _points[ 5](0) = -5.8850483431866176117353589319356e-01_R;
547 _points[ 6](0) = -4.3441503691212397534228713674067e-01_R;
548 _points[ 7](0) = -2.6636265287828098416766533202560e-01_R;
549 _points[ 8](0) = -8.9749093484652111022645010088562e-02_R;
550 _points[ 9] = -_points[8];
551 _points[10] = -_points[7];
552 _points[11] = -_points[6];
553 _points[12] = -_points[5];
554 _points[13] = -_points[4];
555 _points[14] = -_points[3];
556 _points[15] = -_points[2];
557 _points[16] = -_points[1];
558 _points[17] = -_points[0];
559
560 _weights[ 0] = 6.5359477124183006535947712418301e-03_R;
561 _weights[ 1] = 3.9970628810914066137599176410101e-02_R;
562 _weights[ 2] = 7.0637166885633664999222960167786e-02_R;
563 _weights[ 3] = 9.9016271717502802394423605318672e-02_R;
564 _weights[ 4] = 1.2421053313296710026339635889675e-01_R;
565 _weights[ 5] = 1.4541196157380226798300321049443e-01_R;
566 _weights[ 6] = 1.6193951723760248926432670670023e-01_R;
567 _weights[ 7] = 1.7326210948945622601061440382668e-01_R;
568 _weights[ 8] = 1.7901586343970308229381880694353e-01_R;
569 _weights[ 9] = _weights[8];
570 _weights[10] = _weights[7];
571 _weights[11] = _weights[6];
572 _weights[12] = _weights[5];
573 _weights[13] = _weights[4];
574 _weights[14] = _weights[3];
575 _weights[15] = _weights[2];
576 _weights[16] = _weights[1];
577 _weights[17] = _weights[0];
578
579 return;
580 }
581
582 // 2*19-3 = 35
583 case THIRTYFOURTH:
584 case THIRTYFIFTH:
585 {
586 _points.resize (19);
587 _weights.resize(19);
588
589 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
590 _points[ 1](0) = -9.7861176622208009515263406311022e-01_R;
591 _points[ 2](0) = -9.2890152815258624371794025879655e-01_R;
592 _points[ 3](0) = -8.5246057779664609308595597004106e-01_R;
593 _points[ 4](0) = -7.5149420255261301416363748963394e-01_R;
594 _points[ 5](0) = -6.2890813726522049776683230622873e-01_R;
595 _points[ 6](0) = -4.8822928568071350277790963762492e-01_R;
596 _points[ 7](0) = -3.3350484782449861029850010384493e-01_R;
597 _points[ 8](0) = -1.6918602340928157137515415344488e-01_R;
598 _points[ 9](0) = 0.;
599 _points[10] = -_points[8];
600 _points[11] = -_points[7];
601 _points[12] = -_points[6];
602 _points[13] = -_points[5];
603 _points[14] = -_points[4];
604 _points[15] = -_points[3];
605 _points[16] = -_points[2];
606 _points[17] = -_points[1];
607 _points[18] = -_points[0];
608
609 _weights[ 0] = 5.8479532163742690058479532163743e-03_R;
610 _weights[ 1] = 3.5793365186176477115425569035122e-02_R;
611 _weights[ 2] = 6.3381891762629736851695690418317e-02_R;
612 _weights[ 3] = 8.9131757099207084448008790556153e-02_R;
613 _weights[ 4] = 1.1231534147730504407091001546378e-01_R;
614 _weights[ 5] = 1.3226728044875077692604673390973e-01_R;
615 _weights[ 6] = 1.4841394259593888500968064366841e-01_R;
616 _weights[ 7] = 1.6029092404406124197991096818359e-01_R;
617 _weights[ 8] = 1.6755658452714286727013727774026e-01_R;
618 _weights[ 9] = 1.7000191928482723464467271561652e-01_R;
619 _weights[10] = _weights[8];
620 _weights[11] = _weights[7];
621 _weights[12] = _weights[6];
622 _weights[13] = _weights[5];
623 _weights[14] = _weights[4];
624 _weights[15] = _weights[3];
625 _weights[16] = _weights[2];
626 _weights[17] = _weights[1];
627 _weights[18] = _weights[0];
628
629 return;
630 }
631
632 // 2*20-3 = 37
633 case THIRTYSIXTH:
634 case THIRTYSEVENTH:
635 {
636 _points.resize (20);
637 _weights.resize(20);
638
639 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
640 _points[ 1](0) = -9.8074370489391417192544643858423e-01_R;
641 _points[ 2](0) = -9.3593449881266543571618158493063e-01_R;
642 _points[ 3](0) = -8.6687797808995014130984721461629e-01_R;
643 _points[ 4](0) = -7.7536826095205587041431752759469e-01_R;
644 _points[ 5](0) = -6.6377640229031128984640332297116e-01_R;
645 _points[ 6](0) = -5.3499286403188626164813596182898e-01_R;
646 _points[ 7](0) = -3.9235318371390929938647470381582e-01_R;
647 _points[ 8](0) = -2.3955170592298649518240135692709e-01_R;
648 _points[ 9](0) = -8.0545937238821837975944518159554e-02_R;
649 _points[10] = -_points[9];
650 _points[11] = -_points[8];
651 _points[12] = -_points[7];
652 _points[13] = -_points[6];
653 _points[14] = -_points[5];
654 _points[15] = -_points[4];
655 _points[16] = -_points[3];
656 _points[17] = -_points[2];
657 _points[18] = -_points[1];
658 _points[19] = -_points[0];
659
660 _weights[ 0] = 5.2631578947368421052631578947368e-03_R;
661 _weights[ 1] = 3.2237123188488941491605028117294e-02_R;
662 _weights[ 2] = 5.7181802127566826004753627173243e-02_R;
663 _weights[ 3] = 8.0631763996119603144776846113721e-02_R;
664 _weights[ 4] = 1.0199149969945081568378120573289e-01_R;
665 _weights[ 5] = 1.2070922762867472509942970500239e-01_R;
666 _weights[ 6] = 1.3630048235872418448978079298903e-01_R;
667 _weights[ 7] = 1.4836155407091682581471301373397e-01_R;
668 _weights[ 8] = 1.5658010264747548715816989679364e-01_R;
669 _weights[ 9] = 1.6074328638784574900772672644908e-01_R;
670 _weights[10] = _weights[9];
671 _weights[11] = _weights[8];
672 _weights[12] = _weights[7];
673 _weights[13] = _weights[6];
674 _weights[14] = _weights[5];
675 _weights[15] = _weights[4];
676 _weights[16] = _weights[3];
677 _weights[17] = _weights[2];
678 _weights[18] = _weights[1];
679 _weights[19] = _weights[0];
680
681 return;
682 }
683
684 // 2*21-3 = 39
685 case THIRTYEIGHTH:
686 case THIRTYNINTH:
687 {
688 _points.resize (21);
689 _weights.resize(21);
690
691 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
692 _points[ 1](0) = -9.8257229660454802823448127655541e-01_R;
693 _points[ 2](0) = -9.4197629695974553429610265066144e-01_R;
694 _points[ 3](0) = -8.7929475532359046445115359630494e-01_R;
695 _points[ 4](0) = -7.9600192607771240474431258966036e-01_R;
696 _points[ 5](0) = -6.9405102606222323262731639319467e-01_R;
697 _points[ 6](0) = -5.7583196026183068692702187033809e-01_R;
698 _points[ 7](0) = -4.4411578327900210119451634960735e-01_R;
699 _points[ 8](0) = -3.0198985650876488727535186785875e-01_R;
700 _points[ 9](0) = -1.5278551580218546600635832848567e-01_R;
701 _points[10](0) = 0.;
702 _points[11] = -_points[9];
703 _points[12] = -_points[8];
704 _points[13] = -_points[7];
705 _points[14] = -_points[6];
706 _points[15] = -_points[5];
707 _points[16] = -_points[4];
708 _points[17] = -_points[3];
709 _points[18] = -_points[2];
710 _points[19] = -_points[1];
711 _points[20] = -_points[0];
712
713 _weights[ 0] = 4.7619047619047619047619047619048e-03_R;
714 _weights[ 1] = 2.9184840098505458609458543613171e-02_R;
715 _weights[ 2] = 5.1843169000849625072722971852830e-02_R;
716 _weights[ 3] = 7.3273918185074144252547861041894e-02_R;
717 _weights[ 4] = 9.2985467957886065301137664149214e-02_R;
718 _weights[ 5] = 1.1051708321912333526700048678439e-01_R;
719 _weights[ 6] = 1.2545812119086894801515753570800e-01_R;
720 _weights[ 7] = 1.3745846286004134358089961741515e-01_R;
721 _weights[ 8] = 1.4623686244797745926727053063439e-01_R;
722 _weights[ 9] = 1.5158757511168138445325068150529e-01_R;
723 _weights[10] = 1.5338519033217494855158440506754e-01_R;
724 _weights[11] = _weights[9];
725 _weights[12] = _weights[8];
726 _weights[13] = _weights[7];
727 _weights[14] = _weights[6];
728 _weights[15] = _weights[5];
729 _weights[16] = _weights[4];
730 _weights[17] = _weights[3];
731 _weights[18] = _weights[2];
732 _weights[19] = _weights[1];
733 _weights[20] = _weights[0];
734
735 return;
736 }
737
738 // 2*22-3 = 41
739 case FORTIETH:
740 case FORTYFIRST:
741 {
742 _points.resize (22);
743 _weights.resize(22);
744
745 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
746 _points[ 1](0) = -9.8415243845764617655228962221207e-01_R;
747 _points[ 2](0) = -9.4720428399922868052421376661573e-01_R;
748 _points[ 3](0) = -8.9006229019090447052965782577909e-01_R;
749 _points[ 4](0) = -8.1394892761192113604544184805614e-01_R;
750 _points[ 5](0) = -7.2048723996120215811988189639847e-01_R;
751 _points[ 6](0) = -6.1166943828425897122621160586993e-01_R;
752 _points[ 7](0) = -4.8981487518990234980875123568327e-01_R;
753 _points[ 8](0) = -3.5752071013891953806095728024018e-01_R;
754 _points[ 9](0) = -2.1760658515928504178795509346539e-01_R;
755 _points[10](0) = -7.3054540010898334761088790464107e-02_R;
756 _points[11] = -_points[10];
757 _points[12] = -_points[9];
758 _points[13] = -_points[8];
759 _points[14] = -_points[7];
760 _points[15] = -_points[6];
761 _points[16] = -_points[5];
762 _points[17] = -_points[4];
763 _points[18] = -_points[3];
764 _points[19] = -_points[2];
765 _points[20] = -_points[1];
766 _points[21] = -_points[0];
767
768 _weights[ 0] = 4.3290043290043290043290043290043e-03_R;
769 _weights[ 1] = 2.6545747682501757911627904520543e-02_R;
770 _weights[ 2] = 4.7214465293740752123775734864792e-02_R;
771 _weights[ 3] = 6.6865605864553076012404194157097e-02_R;
772 _weights[ 4] = 8.5090060391838447815711236095748e-02_R;
773 _weights[ 5] = 1.0150057480164767437243730374960e-01_R;
774 _weights[ 6] = 1.1574764465393906659003636772146e-01_R;
775 _weights[ 7] = 1.2752769665343027553084445930883e-01_R;
776 _weights[ 8] = 1.3658968861374142668617736220617e-01_R;
777 _weights[ 9] = 1.4274049227136140033623599356679e-01_R;
778 _weights[10] = 1.4584901944424179361642043947997e-01_R;
779 _weights[11] = _weights[10];
780 _weights[12] = _weights[9];
781 _weights[13] = _weights[8];
782 _weights[14] = _weights[7];
783 _weights[15] = _weights[6];
784 _weights[16] = _weights[5];
785 _weights[17] = _weights[4];
786 _weights[18] = _weights[3];
787 _weights[19] = _weights[2];
788 _weights[20] = _weights[1];
789 _weights[21] = _weights[0];
790
791 return;
792 }
793
794 // 2*23-3 = 43
795 case FORTYSECOND:
796 case FORTYTHIRD:
797 {
798 _points.resize (23);
799 _weights.resize(23);
800
801 _points[ 0](0) = -1.0000000000000000000000000000000e+00_R;
802 _points[ 1](0) = -9.8552715587873257808146276673810e-01_R;
803 _points[ 2](0) = -9.5175795571071020413563967985143e-01_R;
804 _points[ 3](0) = -8.9945855804034501095016032034737e-01_R;
805 _points[ 4](0) = -8.2965109665128588622320061929000e-01_R;
806 _points[ 5](0) = -7.4369504117206068394516354306700e-01_R;
807 _points[ 6](0) = -6.4326364446013620847614553360277e-01_R;
808 _points[ 7](0) = -5.3031177113684416813011532015230e-01_R;
809 _points[ 8](0) = -4.0703793791447482919595048821510e-01_R;
810 _points[ 9](0) = -2.7584154894579306710687763267914e-01_R;
811 _points[10](0) = -1.3927620404066839859186261298277e-01_R;
812 _points[11](0) = 0.;
813 _points[12] = -_points[10];
814 _points[13] = -_points[9];
815 _points[14] = -_points[8];
816 _points[15] = -_points[7];
817 _points[16] = -_points[6];
818 _points[17] = -_points[5];
819 _points[18] = -_points[4];
820 _points[19] = -_points[3];
821 _points[20] = -_points[2];
822 _points[21] = -_points[1];
823 _points[22] = -_points[0];
824
825 _weights[ 0] = 3.9525691699604743083003952569170e-03_R;
826 _weights[ 1] = 2.4248600771531736517399658937097e-02_R;
827 _weights[ 2] = 4.3175871170241834748876465612042e-02_R;
828 _weights[ 3] = 6.1252477129554206381382847440355e-02_R;
829 _weights[ 4] = 7.8135449475569989741934255347965e-02_R;
830 _weights[ 5] = 9.3497246163512341833500706906697e-02_R;
831 _weights[ 6] = 1.0703910172433651153518362791547e-01_R;
832 _weights[ 7] = 1.1849751066274913130212600472426e-01_R;
833 _weights[ 8] = 1.2764947470175887663614855305567e-01_R;
834 _weights[ 9] = 1.3431687263860381990156489770071e-01_R;
835 _weights[10] = 1.3836993638580739452350273386294e-01_R;
836 _weights[11] = 1.3972978001274736514015970647975e-01_R;
837 _weights[12] = _weights[10];
838 _weights[13] = _weights[9];
839 _weights[14] = _weights[8];
840 _weights[15] = _weights[7];
841 _weights[16] = _weights[6];
842 _weights[17] = _weights[5];
843 _weights[18] = _weights[4];
844 _weights[19] = _weights[3];
845 _weights[20] = _weights[2];
846 _weights[21] = _weights[1];
847 _weights[22] = _weights[0];
848
849 return;
850 }
851
852 default:
853 libmesh_error_msg("Quadrature rule " << _order << " not supported!");
854 }
855}
856
857} // namespace libMesh
std::vector< Point > _points
The locations of the quadrature points in reference element space.
Definition quadrature.h:409
Order get_order() const
Definition quadrature.h:249
std::vector< Real > _weights
The quadrature weights.
Definition quadrature.h:415
Order _order
The polynomial order which the quadrature rule is capable of integrating exactly.
Definition quadrature.h:385
virtual void init_1D() override
Initializes the 1D quadrature rule by filling the points and weights vectors with the appropriate val...
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
@ TWENTYSECOND
Definition enum_order.h:64
@ THIRTYFOURTH
Definition enum_order.h:76
@ TWENTYSIXTH
Definition enum_order.h:68
@ SEVENTEENTH
Definition enum_order.h:58
@ FORTYFIRST
Definition enum_order.h:83
@ TWENTYFIRST
Definition enum_order.h:63
@ FORTYSECOND
Definition enum_order.h:84
@ TWENTYEIGHTH
Definition enum_order.h:70
@ THIRTYFIRST
Definition enum_order.h:73
@ THIRTYSECOND
Definition enum_order.h:74
@ SIXTEENTH
Definition enum_order.h:57
@ FORTYTHIRD
Definition enum_order.h:85
@ THIRTYNINTH
Definition enum_order.h:81
@ THIRTYSEVENTH
Definition enum_order.h:79
@ THIRTYSIXTH
Definition enum_order.h:78
@ THIRTYEIGHTH
Definition enum_order.h:80
@ TWENTYSEVENTH
Definition enum_order.h:69
@ TWENTIETH
Definition enum_order.h:62
@ TWENTYNINTH
Definition enum_order.h:71
@ THIRTIETH
Definition enum_order.h:72
@ TWENTYTHIRD
Definition enum_order.h:65
@ TWENTYFIFTH
Definition enum_order.h:67
@ FIFTEENTH
Definition enum_order.h:56
@ FOURTEENTH
Definition enum_order.h:55
@ THIRTYFIFTH
Definition enum_order.h:77
@ EIGHTTEENTH
Definition enum_order.h:59
@ TWENTYFOURTH
Definition enum_order.h:66
@ NINETEENTH
Definition enum_order.h:61
@ THIRTYTHIRD
Definition enum_order.h:75
@ THIRTEENTH
Definition enum_order.h:54