libMesh
quadrature_gauss_lobatto_1D.C
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2024 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 
25 namespace libMesh
26 {
27 
28 void QGaussLobatto::init_1D(const ElemType, unsigned int)
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.0L;
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.0L;
61  _points[1] = 0.0L;
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.0L;
79  _points[ 1](0) = -std::sqrt(Real(1)/5);
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.0L;
100  _points[ 1](0) = -std::sqrt(Real(3)/7);
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) = Real(-1.0000000000000000000000000000000e+00L);
122  _points[ 1](0) = Real(-7.6505532392946469285100297395934e-01L);
123  _points[ 2](0) = Real(-2.8523151648064509631415099404088e-01L);
124  _points[ 3] = -_points[2];
125  _points[ 4] = -_points[1];
126  _points[ 5] = -_points[0];
127 
128  _weights[ 0] = Real(6.6666666666666666666666666666667e-02L);
129  _weights[ 1] = Real(3.7847495629784698031661280821202e-01L);
130  _weights[ 2] = Real(5.5485837703548635301672052512131e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
146  _points[ 1](0) = Real(-8.3022389627856692987203221396747e-01L);
147  _points[ 2](0) = Real(-4.6884879347071421380377188190877e-01L);
148  _points[ 3](0) = 0.;
149  _points[ 4] = -_points[2];
150  _points[ 5] = -_points[1];
151  _points[ 6] = -_points[0];
152 
153  _weights[ 0] = Real(4.7619047619047619047619047619048e-02L);
154  _weights[ 1] = Real(2.7682604736156594801070040629007e-01L);
155  _weights[ 2] = Real(4.3174538120986262341787102228136e-01L);
156  _weights[ 3] = Real(4.8761904761904761904761904761905e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
172  _points[ 1](0) = Real(-8.7174014850960661533744576122066e-01L);
173  _points[ 2](0) = Real(-5.9170018143314230214451073139795e-01L);
174  _points[ 3](0) = Real(-2.0929921790247886876865726034535e-01L);
175  _points[ 4] = -_points[3];
176  _points[ 5] = -_points[2];
177  _points[ 6] = -_points[1];
178  _points[ 7] = -_points[0];
179 
180  _weights[ 0] = Real(3.5714285714285714285714285714286e-02L);
181  _weights[ 1] = Real(2.1070422714350603938299206577576e-01L);
182  _weights[ 2] = Real(3.4112269248350436476424067710775e-01L);
183  _weights[ 3] = Real(4.1245879465870388156705297140221e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
200  _points[ 1](0) = Real(-8.9975799541146015731234524441834e-01L);
201  _points[ 2](0) = Real(-6.7718627951073775344588542709134e-01L);
202  _points[ 3](0) = Real(-3.6311746382617815871075206870866e-01L);
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] = Real(2.7777777777777777777777777777778e-02L);
210  _weights[ 1] = Real(1.6549536156080552504633972002921e-01L);
211  _weights[ 2] = Real(2.7453871250016173528070561857937e-01L);
212  _weights[ 3] = Real(3.4642851097304634511513153213972e-01L);
213  _weights[ 4] = Real(3.7151927437641723356009070294785e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
230  _points[ 1](0) = Real(-9.1953390816645881382893266082234e-01L);
231  _points[ 2](0) = Real(-7.3877386510550507500310617485983e-01L);
232  _points[ 3](0) = Real(-4.7792494981044449566117509273126e-01L);
233  _points[ 4](0) = Real(-1.6527895766638702462621976595817e-01L);
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] = Real(2.2222222222222222222222222222222e-02L);
241  _weights[ 1] = Real(1.3330599085107011112622717075539e-01L);
242  _weights[ 2] = Real(2.2488934206312645211945782173105e-01L);
243  _weights[ 3] = Real(2.9204268367968375787558225737444e-01L);
244  _weights[ 4] = Real(3.2753976118389745665651052791689e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
262  _points[ 1](0) = Real(-9.3400143040805913433227413609938e-01L);
263  _points[ 2](0) = Real(-7.8448347366314441862241781610846e-01L);
264  _points[ 3](0) = Real(-5.6523532699620500647096396947775e-01L);
265  _points[ 4](0) = Real(-2.9575813558693939143191151555906e-01L);
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] = Real(1.8181818181818181818181818181818e-02L);
274  _weights[ 1] = Real(1.0961227326699486446140344958035e-01L);
275  _weights[ 2] = Real(1.8716988178030520410814152189943e-01L);
276  _weights[ 3] = Real(2.4804810426402831404008486642187e-01L);
277  _weights[ 4] = Real(2.8687912477900808867922240333154e-01L);
278  _weights[ 5] = Real(3.0021759545569069378593188116998e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
296  _points[ 1](0) = Real(-9.4489927222288222340758013830322e-01L);
297  _points[ 2](0) = Real(-8.1927932164400667834864158171690e-01L);
298  _points[ 3](0) = Real(-6.3287615303186067766240485444366e-01L);
299  _points[ 4](0) = Real(-3.9953094096534893226434979156697e-01L);
300  _points[ 5](0) = Real(-1.3655293285492755486406185573969e-01L);
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] = Real(1.5151515151515151515151515151515e-02L);
309  _weights[ 1] = Real(9.1684517413196130668342594134079e-02L);
310  _weights[ 2] = Real(1.5797470556437011516467106270034e-01L);
311  _weights[ 3] = Real(2.1250841776102114535830207736687e-01L);
312  _weights[ 4] = Real(2.5127560319920128029324441214760e-01L);
313  _weights[ 5] = Real(2.7140524091069617700028833849960e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
332  _points[ 1](0) = Real(-9.5330984664216391189690546475545e-01L);
333  _points[ 2](0) = Real(-8.4634756465187231686592560709875e-01L);
334  _points[ 3](0) = Real(-6.8618846908175742607275903956636e-01L);
335  _points[ 4](0) = Real(-4.8290982109133620174693723363693e-01L);
336  _points[ 5](0) = Real(-2.4928693010623999256867370037423e-01L);
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] = Real(1.2820512820512820512820512820513e-02L);
346  _weights[ 1] = Real(7.7801686746818927793588988333134e-02L);
347  _weights[ 2] = Real(1.3498192668960834911991476258937e-01L);
348  _weights[ 3] = Real(1.8364686520355009200749425874681e-01L);
349  _weights[ 4] = Real(2.2076779356611008608553400837940e-01L);
350  _weights[ 5] = Real(2.4401579030667635645857814836016e-01L);
351  _weights[ 6] = Real(2.5193084933344673604413864154124e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
370  _points[ 1](0) = Real(-9.5993504526726090135510016201542e-01L);
371  _points[ 2](0) = Real(-8.6780105383034725100022020290826e-01L);
372  _points[ 3](0) = Real(-7.2886859909132614058467240052088e-01L);
373  _points[ 4](0) = Real(-5.5063940292864705531662270585908e-01L);
374  _points[ 5](0) = Real(-3.4272401334271284504390340364167e-01L);
375  _points[ 6](0) = Real(-1.1633186888370386765877670973616e-01L);
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] = Real(1.0989010989010989010989010989011e-02L);
385  _weights[ 1] = Real(6.6837284497681284634070660746053e-02L);
386  _weights[ 2] = Real(1.1658665589871165154099667065465e-01L);
387  _weights[ 3] = Real(1.6002185176295214241282099798759e-01L);
388  _weights[ 4] = Real(1.9482614937341611864033177837588e-01L);
389  _weights[ 5] = Real(2.1912625300977075487116252395417e-01L);
390  _weights[ 6] = Real(2.3161279446845705888962835729264e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
410  _points[ 1](0) = Real(-9.6524592650383857279585139206960e-01L);
411  _points[ 2](0) = Real(-8.8508204422297629882540163148223e-01L);
412  _points[ 3](0) = Real(-7.6351968995181520070411847597629e-01L);
413  _points[ 4](0) = Real(-6.0625320546984571112352993863673e-01L);
414  _points[ 5](0) = Real(-4.2063805471367248092189693873858e-01L);
415  _points[ 6](0) = Real(-2.1535395536379423822567944627292e-01L);
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] = Real(9.5238095238095238095238095238095e-03L);
426  _weights[ 1] = Real(5.8029893028601249096880584025282e-02L);
427  _weights[ 2] = Real(1.0166007032571806760366617078880e-01L);
428  _weights[ 3] = Real(1.4051169980242810946044680564367e-01L);
429  _weights[ 4] = Real(1.7278964725360094905207709940835e-01L);
430  _weights[ 5] = Real(1.9698723596461335609250034650741e-01L);
431  _weights[ 6] = Real(2.1197358592682092012743007697722e-01L);
432  _weights[ 7] = Real(2.1704811634881564951495021425091e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
452  _points[ 1](0) = Real(-9.6956804627021793295224273836746e-01L);
453  _points[ 2](0) = Real(-8.9920053309347209299462826151985e-01L);
454  _points[ 3](0) = Real(-7.9200829186181506393108827096315e-01L);
455  _points[ 4](0) = Real(-6.5238870288249308946788321964058e-01L);
456  _points[ 5](0) = Real(-4.8605942188713761178189078584687e-01L);
457  _points[ 6](0) = Real(-2.9983046890076320809835345472230e-01L);
458  _points[ 7](0) = Real(-1.0132627352194944784303300504592e-01L);
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] = Real(8.3333333333333333333333333333333e-03L);
469  _weights[ 1] = Real(5.0850361005919905403244919565455e-02L);
470  _weights[ 2] = Real(8.9393697325930800991052080166084e-02L);
471  _weights[ 3] = Real(1.2425538213251409834953633265731e-01L);
472  _weights[ 4] = Real(1.5402698080716428081564494048499e-01L);
473  _weights[ 5] = Real(1.7749191339170412530107566952836e-01L);
474  _weights[ 6] = Real(1.9369002382520358431691359885352e-01L);
475  _weights[ 7] = Real(2.0195830817822987148919912541094e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
496  _points[ 1](0) = Real(-9.7313217663141831415697950187372e-01L);
497  _points[ 2](0) = Real(-9.1087999591557359562380250639773e-01L);
498  _points[ 3](0) = Real(-8.1569625122177030710675055323753e-01L);
499  _points[ 4](0) = Real(-6.9102898062768470539491935737245e-01L);
500  _points[ 5](0) = Real(-5.4138539933010153912373340750406e-01L);
501  _points[ 6](0) = Real(-3.7217443356547704190723468073526e-01L);
502  _points[ 7](0) = Real(-1.8951197351831738830426301475311e-01L);
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] = Real(7.3529411764705882352941176470588e-03L);
514  _weights[ 1] = Real(4.4921940543254209647400954623212e-02L);
515  _weights[ 2] = Real(7.9198270503687119190264429952835e-02L);
516  _weights[ 3] = Real(1.1059290900702816137577270522008e-01L);
517  _weights[ 4] = Real(1.3798774620192655905620157495403e-01L);
518  _weights[ 5] = Real(1.6039466199762153951632836586475e-01L);
519  _weights[ 6] = Real(1.7700425351565787043694574536329e-01L);
520  _weights[ 7] = Real(1.8721633967761923589208848286062e-01L);
521  _weights[ 8] = Real(1.9066187475346943329940724702825e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
542  _points[ 1](0) = Real(-9.7610555741219854286451892434170e-01L);
543  _points[ 2](0) = Real(-9.2064918534753387383785462543128e-01L);
544  _points[ 3](0) = Real(-8.3559353521809021371364636232794e-01L);
545  _points[ 4](0) = Real(-7.2367932928324268130621036530207e-01L);
546  _points[ 5](0) = Real(-5.8850483431866176117353589319356e-01L);
547  _points[ 6](0) = Real(-4.3441503691212397534228713674067e-01L);
548  _points[ 7](0) = Real(-2.6636265287828098416766533202560e-01L);
549  _points[ 8](0) = Real(-8.9749093484652111022645010088562e-02L);
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] = Real(6.5359477124183006535947712418301e-03L);
561  _weights[ 1] = Real(3.9970628810914066137599176410101e-02L);
562  _weights[ 2] = Real(7.0637166885633664999222960167786e-02L);
563  _weights[ 3] = Real(9.9016271717502802394423605318672e-02L);
564  _weights[ 4] = Real(1.2421053313296710026339635889675e-01L);
565  _weights[ 5] = Real(1.4541196157380226798300321049443e-01L);
566  _weights[ 6] = Real(1.6193951723760248926432670670023e-01L);
567  _weights[ 7] = Real(1.7326210948945622601061440382668e-01L);
568  _weights[ 8] = Real(1.7901586343970308229381880694353e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
590  _points[ 1](0) = Real(-9.7861176622208009515263406311022e-01L);
591  _points[ 2](0) = Real(-9.2890152815258624371794025879655e-01L);
592  _points[ 3](0) = Real(-8.5246057779664609308595597004106e-01L);
593  _points[ 4](0) = Real(-7.5149420255261301416363748963394e-01L);
594  _points[ 5](0) = Real(-6.2890813726522049776683230622873e-01L);
595  _points[ 6](0) = Real(-4.8822928568071350277790963762492e-01L);
596  _points[ 7](0) = Real(-3.3350484782449861029850010384493e-01L);
597  _points[ 8](0) = Real(-1.6918602340928157137515415344488e-01L);
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] = Real(5.8479532163742690058479532163743e-03L);
610  _weights[ 1] = Real(3.5793365186176477115425569035122e-02L);
611  _weights[ 2] = Real(6.3381891762629736851695690418317e-02L);
612  _weights[ 3] = Real(8.9131757099207084448008790556153e-02L);
613  _weights[ 4] = Real(1.1231534147730504407091001546378e-01L);
614  _weights[ 5] = Real(1.3226728044875077692604673390973e-01L);
615  _weights[ 6] = Real(1.4841394259593888500968064366841e-01L);
616  _weights[ 7] = Real(1.6029092404406124197991096818359e-01L);
617  _weights[ 8] = Real(1.6755658452714286727013727774026e-01L);
618  _weights[ 9] = Real(1.7000191928482723464467271561652e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
640  _points[ 1](0) = Real(-9.8074370489391417192544643858423e-01L);
641  _points[ 2](0) = Real(-9.3593449881266543571618158493063e-01L);
642  _points[ 3](0) = Real(-8.6687797808995014130984721461629e-01L);
643  _points[ 4](0) = Real(-7.7536826095205587041431752759469e-01L);
644  _points[ 5](0) = Real(-6.6377640229031128984640332297116e-01L);
645  _points[ 6](0) = Real(-5.3499286403188626164813596182898e-01L);
646  _points[ 7](0) = Real(-3.9235318371390929938647470381582e-01L);
647  _points[ 8](0) = Real(-2.3955170592298649518240135692709e-01L);
648  _points[ 9](0) = Real(-8.0545937238821837975944518159554e-02L);
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] = Real(5.2631578947368421052631578947368e-03L);
661  _weights[ 1] = Real(3.2237123188488941491605028117294e-02L);
662  _weights[ 2] = Real(5.7181802127566826004753627173243e-02L);
663  _weights[ 3] = Real(8.0631763996119603144776846113721e-02L);
664  _weights[ 4] = Real(1.0199149969945081568378120573289e-01L);
665  _weights[ 5] = Real(1.2070922762867472509942970500239e-01L);
666  _weights[ 6] = Real(1.3630048235872418448978079298903e-01L);
667  _weights[ 7] = Real(1.4836155407091682581471301373397e-01L);
668  _weights[ 8] = Real(1.5658010264747548715816989679364e-01L);
669  _weights[ 9] = Real(1.6074328638784574900772672644908e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
692  _points[ 1](0) = Real(-9.8257229660454802823448127655541e-01L);
693  _points[ 2](0) = Real(-9.4197629695974553429610265066144e-01L);
694  _points[ 3](0) = Real(-8.7929475532359046445115359630494e-01L);
695  _points[ 4](0) = Real(-7.9600192607771240474431258966036e-01L);
696  _points[ 5](0) = Real(-6.9405102606222323262731639319467e-01L);
697  _points[ 6](0) = Real(-5.7583196026183068692702187033809e-01L);
698  _points[ 7](0) = Real(-4.4411578327900210119451634960735e-01L);
699  _points[ 8](0) = Real(-3.0198985650876488727535186785875e-01L);
700  _points[ 9](0) = Real(-1.5278551580218546600635832848567e-01L);
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] = Real(4.7619047619047619047619047619048e-03L);
714  _weights[ 1] = Real(2.9184840098505458609458543613171e-02L);
715  _weights[ 2] = Real(5.1843169000849625072722971852830e-02L);
716  _weights[ 3] = Real(7.3273918185074144252547861041894e-02L);
717  _weights[ 4] = Real(9.2985467957886065301137664149214e-02L);
718  _weights[ 5] = Real(1.1051708321912333526700048678439e-01L);
719  _weights[ 6] = Real(1.2545812119086894801515753570800e-01L);
720  _weights[ 7] = Real(1.3745846286004134358089961741515e-01L);
721  _weights[ 8] = Real(1.4623686244797745926727053063439e-01L);
722  _weights[ 9] = Real(1.5158757511168138445325068150529e-01L);
723  _weights[10] = Real(1.5338519033217494855158440506754e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
746  _points[ 1](0) = Real(-9.8415243845764617655228962221207e-01L);
747  _points[ 2](0) = Real(-9.4720428399922868052421376661573e-01L);
748  _points[ 3](0) = Real(-8.9006229019090447052965782577909e-01L);
749  _points[ 4](0) = Real(-8.1394892761192113604544184805614e-01L);
750  _points[ 5](0) = Real(-7.2048723996120215811988189639847e-01L);
751  _points[ 6](0) = Real(-6.1166943828425897122621160586993e-01L);
752  _points[ 7](0) = Real(-4.8981487518990234980875123568327e-01L);
753  _points[ 8](0) = Real(-3.5752071013891953806095728024018e-01L);
754  _points[ 9](0) = Real(-2.1760658515928504178795509346539e-01L);
755  _points[10](0) = Real(-7.3054540010898334761088790464107e-02L);
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] = Real(4.3290043290043290043290043290043e-03L);
769  _weights[ 1] = Real(2.6545747682501757911627904520543e-02L);
770  _weights[ 2] = Real(4.7214465293740752123775734864792e-02L);
771  _weights[ 3] = Real(6.6865605864553076012404194157097e-02L);
772  _weights[ 4] = Real(8.5090060391838447815711236095748e-02L);
773  _weights[ 5] = Real(1.0150057480164767437243730374960e-01L);
774  _weights[ 6] = Real(1.1574764465393906659003636772146e-01L);
775  _weights[ 7] = Real(1.2752769665343027553084445930883e-01L);
776  _weights[ 8] = Real(1.3658968861374142668617736220617e-01L);
777  _weights[ 9] = Real(1.4274049227136140033623599356679e-01L);
778  _weights[10] = Real(1.4584901944424179361642043947997e-01L);
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) = Real(-1.0000000000000000000000000000000e+00L);
802  _points[ 1](0) = Real(-9.8552715587873257808146276673810e-01L);
803  _points[ 2](0) = Real(-9.5175795571071020413563967985143e-01L);
804  _points[ 3](0) = Real(-8.9945855804034501095016032034737e-01L);
805  _points[ 4](0) = Real(-8.2965109665128588622320061929000e-01L);
806  _points[ 5](0) = Real(-7.4369504117206068394516354306700e-01L);
807  _points[ 6](0) = Real(-6.4326364446013620847614553360277e-01L);
808  _points[ 7](0) = Real(-5.3031177113684416813011532015230e-01L);
809  _points[ 8](0) = Real(-4.0703793791447482919595048821510e-01L);
810  _points[ 9](0) = Real(-2.7584154894579306710687763267914e-01L);
811  _points[10](0) = Real(-1.3927620404066839859186261298277e-01L);
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] = Real(3.9525691699604743083003952569170e-03L);
826  _weights[ 1] = Real(2.4248600771531736517399658937097e-02L);
827  _weights[ 2] = Real(4.3175871170241834748876465612042e-02L);
828  _weights[ 3] = Real(6.1252477129554206381382847440355e-02L);
829  _weights[ 4] = Real(7.8135449475569989741934255347965e-02L);
830  _weights[ 5] = Real(9.3497246163512341833500706906697e-02L);
831  _weights[ 6] = Real(1.0703910172433651153518362791547e-01L);
832  _weights[ 7] = Real(1.1849751066274913130212600472426e-01L);
833  _weights[ 8] = Real(1.2764947470175887663614855305567e-01L);
834  _weights[ 9] = Real(1.3431687263860381990156489770071e-01L);
835  _weights[10] = Real(1.3836993638580739452350273386294e-01L);
836  _weights[11] = Real(1.3972978001274736514015970647975e-01L);
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
ElemType
Defines an enum for geometric element types.
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
Definition: type_vector.h:53
The libMesh namespace provides an interface to certain functionality in the library.
std::vector< Point > _points
The locations of the quadrature points in reference element space.
Definition: quadrature.h:383
std::vector< Real > _weights
The quadrature weights.
Definition: quadrature.h:389
Order get_order() const
Definition: quadrature.h:218
Order _order
The polynomial order which the quadrature rule is capable of integrating exactly. ...
Definition: quadrature.h:365
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void init_1D(const ElemType, unsigned int) override
Initializes the 1D quadrature rule by filling the points and weights vectors with the appropriate val...