$extrastylesheet
quadrature_gauss_lobatto_1D.C
Go to the documentation of this file.
00001 // The libMesh Finite Element Library.
00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
00003 
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2.1 of the License, or (at your option) any later version.
00008 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 
00018 
00019 
00020 // C++ includes
00021 
00022 // Local includes
00023 #include "libmesh/quadrature_gauss_lobatto.h"
00024 
00025 namespace libMesh
00026 {
00027 
00028 void QGaussLobatto::init_1D(const ElemType,
00029                             unsigned int p)
00030 {
00031   //----------------------------------------------------------------------
00032   // 1D quadrature rules
00033   switch(_order + 2*p)
00034     {
00035       // Since Gauss-Lobatto rules must include the endpoints of the
00036       // domain, there is no 1-point rule.  The two-point
00037       // Gauss-Lobatto rule is equivalent to the trapezoidal rule.
00038     case CONSTANT:
00039     case FIRST:
00040       {
00041         _points.resize (2);
00042         _weights.resize(2);
00043 
00044         _points[0](0) = -1.0L;
00045         _points[1]    = -_points[0];
00046 
00047         _weights[0]   = 1.;
00048         _weights[1]   = _weights[0];
00049 
00050         return;
00051       }
00052 
00053       // The three-point Gauss-Lobatto rule is equivalent to Simpsons' rule.
00054       // It can integrate cubic polynomials exactly.
00055     case SECOND:
00056     case THIRD:
00057       {
00058         _points.resize (3);
00059         _weights.resize(3);
00060 
00061         _points[0](0) = -1.0L;
00062         _points[1]    = 0.0L;
00063         _points[2]    = -_points[0];
00064 
00065         _weights[0]   = 1.0L / 3.0L;
00066         _weights[1]   = 4.0L / 3.0L;
00067         _weights[2]   = _weights[0];
00068         return;
00069       }
00070 
00071       // The four-point Gauss-Lobatto rule can integrate 2*4-3 =
00072       // 5th-order polynomials exactly.
00073     case FOURTH:
00074     case FIFTH:
00075       {
00076         _points.resize (4);
00077         _weights.resize(4);
00078 
00079         _points[ 0](0) = -1.0L;
00080         _points[ 1](0) = -std::sqrt(1.0L/5.0L);
00081         _points[ 2]    = -_points[1];
00082         _points[ 3]    = -_points[0];
00083 
00084         _weights[ 0]   = 1.0L/6.0L;
00085         _weights[ 1]   = 5.0L/6.0L;
00086         _weights[ 2]   = _weights[1];
00087         _weights[ 3]   = _weights[0];
00088 
00089         return;
00090       }
00091 
00092       // The five-point Gauss-Lobatto rule can integrate 2*5-3 =
00093       // 7th-order polynomials exactly.
00094     case SIXTH:
00095     case SEVENTH:
00096       {
00097         _points.resize (5);
00098         _weights.resize(5);
00099 
00100         _points[ 0](0) = -1.0L;
00101         _points[ 1](0) = -std::sqrt(3.0L/7.0L);
00102         _points[ 2](0) = 0.;
00103         _points[ 3]    = -_points[1];
00104         _points[ 4]    = -_points[0];
00105 
00106         _weights[ 0]   = 1.0L/10.0L;
00107         _weights[ 1]   = 49.0L/90.0L;
00108         _weights[ 2]   = 32.0L/45.0L;
00109         _weights[ 3]   = _weights[1];
00110         _weights[ 4]   = _weights[0];
00111 
00112         return;
00113       }
00114 
00115       // 2*6-3 = 9
00116     case EIGHTH:
00117     case NINTH:
00118       {
00119         _points.resize (6);
00120         _weights.resize(6);
00121 
00122         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00123         _points[ 1](0) = -7.6505532392946469285100297395934e-01L;
00124         _points[ 2](0) = -2.8523151648064509631415099404088e-01L;
00125         _points[ 3]    = -_points[2];
00126         _points[ 4]    = -_points[1];
00127         _points[ 5]    = -_points[0];
00128 
00129         _weights[ 0]   = 6.6666666666666666666666666666667e-02L;
00130         _weights[ 1]   = 3.7847495629784698031661280821202e-01L;
00131         _weights[ 2]   = 5.5485837703548635301672052512131e-01L;
00132         _weights[ 3]   = _weights[2];
00133         _weights[ 4]   = _weights[1];
00134         _weights[ 5]   = _weights[0];
00135 
00136         return;
00137       }
00138 
00139       // 2*7-3 = 11
00140     case TENTH:
00141     case ELEVENTH:
00142       {
00143         _points.resize (7);
00144         _weights.resize(7);
00145 
00146         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00147         _points[ 1](0) = -8.3022389627856692987203221396747e-01L;
00148         _points[ 2](0) = -4.6884879347071421380377188190877e-01L;
00149         _points[ 3](0) = 0.;
00150         _points[ 4]    = -_points[2];
00151         _points[ 5]    = -_points[1];
00152         _points[ 6]    = -_points[0];
00153 
00154         _weights[ 0]   = 4.7619047619047619047619047619048e-02L;
00155         _weights[ 1]   = 2.7682604736156594801070040629007e-01L;
00156         _weights[ 2]   = 4.3174538120986262341787102228136e-01L;
00157         _weights[ 3]   = 4.8761904761904761904761904761905e-01L;
00158         _weights[ 4]   = _weights[2];
00159         _weights[ 5]   = _weights[1];
00160         _weights[ 6]   = _weights[0];
00161 
00162         return;
00163       }
00164 
00165       // 2*8-3 = 13
00166     case TWELFTH:
00167     case THIRTEENTH:
00168       {
00169         _points.resize (8);
00170         _weights.resize(8);
00171 
00172         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00173         _points[ 1](0) = -8.7174014850960661533744576122066e-01L;
00174         _points[ 2](0) = -5.9170018143314230214451073139795e-01L;
00175         _points[ 3](0) = -2.0929921790247886876865726034535e-01L;
00176         _points[ 4]    = -_points[3];
00177         _points[ 5]    = -_points[2];
00178         _points[ 6]    = -_points[1];
00179         _points[ 7]    = -_points[0];
00180 
00181         _weights[ 0]   = 3.5714285714285714285714285714286e-02L;
00182         _weights[ 1]   = 2.1070422714350603938299206577576e-01L;
00183         _weights[ 2]   = 3.4112269248350436476424067710775e-01L;
00184         _weights[ 3]   = 4.1245879465870388156705297140221e-01L;
00185         _weights[ 4]   = _weights[3];
00186         _weights[ 5]   = _weights[2];
00187         _weights[ 6]   = _weights[1];
00188         _weights[ 7]   = _weights[0];
00189 
00190         return;
00191       }
00192 
00193       // 2*9-3 = 15
00194     case FOURTEENTH:
00195     case FIFTEENTH:
00196       {
00197         _points.resize (9);
00198         _weights.resize(9);
00199 
00200         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00201         _points[ 1](0) = -8.9975799541146015731234524441834e-01L;
00202         _points[ 2](0) = -6.7718627951073775344588542709134e-01L;
00203         _points[ 3](0) = -3.6311746382617815871075206870866e-01L;
00204         _points[ 4](0) = 0.;
00205         _points[ 5]    = -_points[3];
00206         _points[ 6]    = -_points[2];
00207         _points[ 7]    = -_points[1];
00208         _points[ 8]    = -_points[0];
00209 
00210         _weights[ 0]   = 2.7777777777777777777777777777778e-02L;
00211         _weights[ 1]   = 1.6549536156080552504633972002921e-01L;
00212         _weights[ 2]   = 2.7453871250016173528070561857937e-01L;
00213         _weights[ 3]   = 3.4642851097304634511513153213972e-01L;
00214         _weights[ 4]   = 3.7151927437641723356009070294785e-01L;
00215         _weights[ 5]   = _weights[3];
00216         _weights[ 6]   = _weights[2];
00217         _weights[ 7]   = _weights[1];
00218         _weights[ 8]   = _weights[0];
00219 
00220         return;
00221       }
00222 
00223       // 2*10-3 = 17
00224     case SIXTEENTH:
00225     case SEVENTEENTH:
00226       {
00227         _points.resize (10);
00228         _weights.resize(10);
00229 
00230         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00231         _points[ 1](0) = -9.1953390816645881382893266082234e-01L;
00232         _points[ 2](0) = -7.3877386510550507500310617485983e-01L;
00233         _points[ 3](0) = -4.7792494981044449566117509273126e-01L;
00234         _points[ 4](0) = -1.6527895766638702462621976595817e-01L;
00235         _points[ 5]    = -_points[4];
00236         _points[ 6]    = -_points[3];
00237         _points[ 7]    = -_points[2];
00238         _points[ 8]    = -_points[1];
00239         _points[ 9]    = -_points[0];
00240 
00241         _weights[ 0]   = 2.2222222222222222222222222222222e-02L;
00242         _weights[ 1]   = 1.3330599085107011112622717075539e-01L;
00243         _weights[ 2]   = 2.2488934206312645211945782173105e-01L;
00244         _weights[ 3]   = 2.9204268367968375787558225737444e-01L;
00245         _weights[ 4]   = 3.2753976118389745665651052791689e-01L;
00246         _weights[ 5]   = _weights[4];
00247         _weights[ 6]   = _weights[3];
00248         _weights[ 7]   = _weights[2];
00249         _weights[ 8]   = _weights[1];
00250         _weights[ 9]   = _weights[0];
00251 
00252         return;
00253       }
00254 
00255       // 2*11-3 = 19
00256     case EIGHTTEENTH:
00257     case NINETEENTH:
00258       {
00259         _points.resize (11);
00260         _weights.resize(11);
00261 
00262         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00263         _points[ 1](0) = -9.3400143040805913433227413609938e-01L;
00264         _points[ 2](0) = -7.8448347366314441862241781610846e-01L;
00265         _points[ 3](0) = -5.6523532699620500647096396947775e-01L;
00266         _points[ 4](0) = -2.9575813558693939143191151555906e-01L;
00267         _points[ 5](0) = 0.;
00268         _points[ 6]    = -_points[4];
00269         _points[ 7]    = -_points[3];
00270         _points[ 8]    = -_points[2];
00271         _points[ 9]    = -_points[1];
00272         _points[10]    = -_points[0];
00273 
00274         _weights[ 0]   = 1.8181818181818181818181818181818e-02L;
00275         _weights[ 1]   = 1.0961227326699486446140344958035e-01L;
00276         _weights[ 2]   = 1.8716988178030520410814152189943e-01L;
00277         _weights[ 3]   = 2.4804810426402831404008486642187e-01L;
00278         _weights[ 4]   = 2.8687912477900808867922240333154e-01L;
00279         _weights[ 5]   = 3.0021759545569069378593188116998e-01L;
00280         _weights[ 6]   = _weights[4];
00281         _weights[ 7]   = _weights[3];
00282         _weights[ 8]   = _weights[2];
00283         _weights[ 9]   = _weights[1];
00284         _weights[10]   = _weights[0];
00285 
00286         return;
00287       }
00288 
00289       // 2*12-3 = 21
00290     case TWENTIETH:
00291     case TWENTYFIRST:
00292       {
00293         _points.resize (12);
00294         _weights.resize(12);
00295 
00296         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00297         _points[ 1](0) = -9.4489927222288222340758013830322e-01L;
00298         _points[ 2](0) = -8.1927932164400667834864158171690e-01L;
00299         _points[ 3](0) = -6.3287615303186067766240485444366e-01L;
00300         _points[ 4](0) = -3.9953094096534893226434979156697e-01L;
00301         _points[ 5](0) = -1.3655293285492755486406185573969e-01L;
00302         _points[ 6]    = -_points[5];
00303         _points[ 7]    = -_points[4];
00304         _points[ 8]    = -_points[3];
00305         _points[ 9]    = -_points[2];
00306         _points[10]    = -_points[1];
00307         _points[11]    = -_points[0];
00308 
00309         _weights[ 0]   = 1.5151515151515151515151515151515e-02L;
00310         _weights[ 1]   = 9.1684517413196130668342594134079e-02L;
00311         _weights[ 2]   = 1.5797470556437011516467106270034e-01L;
00312         _weights[ 3]   = 2.1250841776102114535830207736687e-01L;
00313         _weights[ 4]   = 2.5127560319920128029324441214760e-01L;
00314         _weights[ 5]   = 2.7140524091069617700028833849960e-01L;
00315         _weights[ 6]   = _weights[5];
00316         _weights[ 7]   = _weights[4];
00317         _weights[ 8]   = _weights[3];
00318         _weights[ 9]   = _weights[2];
00319         _weights[10]   = _weights[1];
00320         _weights[11]   = _weights[0];
00321 
00322         return;
00323       }
00324 
00325       // 2*13-3 = 23
00326     case TWENTYSECOND:
00327     case TWENTYTHIRD:
00328       {
00329         _points.resize (13);
00330         _weights.resize(13);
00331 
00332         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00333         _points[ 1](0) = -9.5330984664216391189690546475545e-01L;
00334         _points[ 2](0) = -8.4634756465187231686592560709875e-01L;
00335         _points[ 3](0) = -6.8618846908175742607275903956636e-01L;
00336         _points[ 4](0) = -4.8290982109133620174693723363693e-01L;
00337         _points[ 5](0) = -2.4928693010623999256867370037423e-01L;
00338         _points[ 6](0) = 0.;
00339         _points[ 7]    = -_points[5];
00340         _points[ 8]    = -_points[4];
00341         _points[ 9]    = -_points[3];
00342         _points[10]    = -_points[2];
00343         _points[11]    = -_points[1];
00344         _points[12]    = -_points[0];
00345 
00346         _weights[ 0]   = 1.2820512820512820512820512820513e-02L;
00347         _weights[ 1]   = 7.7801686746818927793588988333134e-02L;
00348         _weights[ 2]   = 1.3498192668960834911991476258937e-01L;
00349         _weights[ 3]   = 1.8364686520355009200749425874681e-01L;
00350         _weights[ 4]   = 2.2076779356611008608553400837940e-01L;
00351         _weights[ 5]   = 2.4401579030667635645857814836016e-01L;
00352         _weights[ 6]   = 2.5193084933344673604413864154124e-01L;
00353         _weights[ 7]   = _weights[5];
00354         _weights[ 8]   = _weights[4];
00355         _weights[ 9]   = _weights[3];
00356         _weights[10]   = _weights[2];
00357         _weights[11]   = _weights[1];
00358         _weights[12]   = _weights[0];
00359 
00360         return;
00361       }
00362 
00363       // 2*14-3 = 25
00364     case TWENTYFOURTH:
00365     case TWENTYFIFTH:
00366       {
00367         _points.resize (14);
00368         _weights.resize(14);
00369 
00370         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00371         _points[ 1](0) = -9.5993504526726090135510016201542e-01L;
00372         _points[ 2](0) = -8.6780105383034725100022020290826e-01L;
00373         _points[ 3](0) = -7.2886859909132614058467240052088e-01L;
00374         _points[ 4](0) = -5.5063940292864705531662270585908e-01L;
00375         _points[ 5](0) = -3.4272401334271284504390340364167e-01L;
00376         _points[ 6](0) = -1.1633186888370386765877670973616e-01L;
00377         _points[ 7]    = -_points[6];
00378         _points[ 8]    = -_points[5];
00379         _points[ 9]    = -_points[4];
00380         _points[10]    = -_points[3];
00381         _points[11]    = -_points[2];
00382         _points[12]    = -_points[1];
00383         _points[13]    = -_points[0];
00384 
00385         _weights[ 0]   = 1.0989010989010989010989010989011e-02L;
00386         _weights[ 1]   = 6.6837284497681284634070660746053e-02L;
00387         _weights[ 2]   = 1.1658665589871165154099667065465e-01L;
00388         _weights[ 3]   = 1.6002185176295214241282099798759e-01L;
00389         _weights[ 4]   = 1.9482614937341611864033177837588e-01L;
00390         _weights[ 5]   = 2.1912625300977075487116252395417e-01L;
00391         _weights[ 6]   = 2.3161279446845705888962835729264e-01L;
00392         _weights[ 7]   = _weights[6];
00393         _weights[ 8]   = _weights[5];
00394         _weights[ 9]   = _weights[4];
00395         _weights[10]   = _weights[3];
00396         _weights[11]   = _weights[2];
00397         _weights[12]   = _weights[1];
00398         _weights[13]   = _weights[0];
00399 
00400         return;
00401       }
00402 
00403       // 2*15-3 = 27
00404     case TWENTYSIXTH:
00405     case TWENTYSEVENTH:
00406       {
00407         _points.resize (15);
00408         _weights.resize(15);
00409 
00410         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00411         _points[ 1](0) = -9.6524592650383857279585139206960e-01L;
00412         _points[ 2](0) = -8.8508204422297629882540163148223e-01L;
00413         _points[ 3](0) = -7.6351968995181520070411847597629e-01L;
00414         _points[ 4](0) = -6.0625320546984571112352993863673e-01L;
00415         _points[ 5](0) = -4.2063805471367248092189693873858e-01L;
00416         _points[ 6](0) = -2.1535395536379423822567944627292e-01L;
00417         _points[ 7](0) = 0.;
00418         _points[ 8]    = -_points[6];
00419         _points[ 9]    = -_points[5];
00420         _points[10]    = -_points[4];
00421         _points[11]    = -_points[3];
00422         _points[12]    = -_points[2];
00423         _points[13]    = -_points[1];
00424         _points[14]    = -_points[0];
00425 
00426         _weights[ 0]   = 9.5238095238095238095238095238095e-03L;
00427         _weights[ 1]   = 5.8029893028601249096880584025282e-02L;
00428         _weights[ 2]   = 1.0166007032571806760366617078880e-01L;
00429         _weights[ 3]   = 1.4051169980242810946044680564367e-01L;
00430         _weights[ 4]   = 1.7278964725360094905207709940835e-01L;
00431         _weights[ 5]   = 1.9698723596461335609250034650741e-01L;
00432         _weights[ 6]   = 2.1197358592682092012743007697722e-01L;
00433         _weights[ 7]   = 2.1704811634881564951495021425091e-01L;
00434         _weights[ 8]   = _weights[6];
00435         _weights[ 9]   = _weights[5];
00436         _weights[10]   = _weights[4];
00437         _weights[11]   = _weights[3];
00438         _weights[12]   = _weights[2];
00439         _weights[13]   = _weights[1];
00440         _weights[14]   = _weights[0];
00441 
00442         return;
00443       }
00444 
00445       // 2*16-3 = 29
00446     case TWENTYEIGHTH:
00447     case TWENTYNINTH:
00448       {
00449         _points.resize (16);
00450         _weights.resize(16);
00451 
00452         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00453         _points[ 1](0) = -9.6956804627021793295224273836746e-01L;
00454         _points[ 2](0) = -8.9920053309347209299462826151985e-01L;
00455         _points[ 3](0) = -7.9200829186181506393108827096315e-01L;
00456         _points[ 4](0) = -6.5238870288249308946788321964058e-01L;
00457         _points[ 5](0) = -4.8605942188713761178189078584687e-01L;
00458         _points[ 6](0) = -2.9983046890076320809835345472230e-01L;
00459         _points[ 7](0) = -1.0132627352194944784303300504592e-01L;
00460         _points[ 8]    = -_points[7];
00461         _points[ 9]    = -_points[6];
00462         _points[10]    = -_points[5];
00463         _points[11]    = -_points[4];
00464         _points[12]    = -_points[3];
00465         _points[13]    = -_points[2];
00466         _points[14]    = -_points[1];
00467         _points[15]    = -_points[0];
00468 
00469         _weights[ 0]   = 8.3333333333333333333333333333333e-03L;
00470         _weights[ 1]   = 5.0850361005919905403244919565455e-02L;
00471         _weights[ 2]   = 8.9393697325930800991052080166084e-02L;
00472         _weights[ 3]   = 1.2425538213251409834953633265731e-01L;
00473         _weights[ 4]   = 1.5402698080716428081564494048499e-01L;
00474         _weights[ 5]   = 1.7749191339170412530107566952836e-01L;
00475         _weights[ 6]   = 1.9369002382520358431691359885352e-01L;
00476         _weights[ 7]   = 2.0195830817822987148919912541094e-01L;
00477         _weights[ 8]   = _weights[7];
00478         _weights[ 9]   = _weights[6];
00479         _weights[10]   = _weights[5];
00480         _weights[11]   = _weights[4];
00481         _weights[12]   = _weights[3];
00482         _weights[13]   = _weights[2];
00483         _weights[14]   = _weights[1];
00484         _weights[15]   = _weights[0];
00485 
00486         return;
00487       }
00488 
00489       // 2*17-3 = 31
00490     case THIRTIETH:
00491     case THIRTYFIRST:
00492       {
00493         _points.resize (17);
00494         _weights.resize(17);
00495 
00496         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00497         _points[ 1](0) = -9.7313217663141831415697950187372e-01L;
00498         _points[ 2](0) = -9.1087999591557359562380250639773e-01L;
00499         _points[ 3](0) = -8.1569625122177030710675055323753e-01L;
00500         _points[ 4](0) = -6.9102898062768470539491935737245e-01L;
00501         _points[ 5](0) = -5.4138539933010153912373340750406e-01L;
00502         _points[ 6](0) = -3.7217443356547704190723468073526e-01L;
00503         _points[ 7](0) = -1.8951197351831738830426301475311e-01L;
00504         _points[ 8](0) = 0.;
00505         _points[ 9]    = -_points[7];
00506         _points[10]    = -_points[6];
00507         _points[11]    = -_points[5];
00508         _points[12]    = -_points[4];
00509         _points[13]    = -_points[3];
00510         _points[14]    = -_points[2];
00511         _points[15]    = -_points[1];
00512         _points[16]    = -_points[0];
00513 
00514         _weights[ 0]   = 7.3529411764705882352941176470588e-03L;
00515         _weights[ 1]   = 4.4921940543254209647400954623212e-02L;
00516         _weights[ 2]   = 7.9198270503687119190264429952835e-02L;
00517         _weights[ 3]   = 1.1059290900702816137577270522008e-01L;
00518         _weights[ 4]   = 1.3798774620192655905620157495403e-01L;
00519         _weights[ 5]   = 1.6039466199762153951632836586475e-01L;
00520         _weights[ 6]   = 1.7700425351565787043694574536329e-01L;
00521         _weights[ 7]   = 1.8721633967761923589208848286062e-01L;
00522         _weights[ 8]   = 1.9066187475346943329940724702825e-01L;
00523         _weights[ 9]   = _weights[7];
00524         _weights[10]   = _weights[6];
00525         _weights[11]   = _weights[5];
00526         _weights[12]   = _weights[4];
00527         _weights[13]   = _weights[3];
00528         _weights[14]   = _weights[2];
00529         _weights[15]   = _weights[1];
00530         _weights[16]   = _weights[0];
00531 
00532         return;
00533       }
00534 
00535       // 2*18-3 = 33
00536     case THIRTYSECOND:
00537     case THIRTYTHIRD:
00538       {
00539         _points.resize (18);
00540         _weights.resize(18);
00541 
00542         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00543         _points[ 1](0) = -9.7610555741219854286451892434170e-01L;
00544         _points[ 2](0) = -9.2064918534753387383785462543128e-01L;
00545         _points[ 3](0) = -8.3559353521809021371364636232794e-01L;
00546         _points[ 4](0) = -7.2367932928324268130621036530207e-01L;
00547         _points[ 5](0) = -5.8850483431866176117353589319356e-01L;
00548         _points[ 6](0) = -4.3441503691212397534228713674067e-01L;
00549         _points[ 7](0) = -2.6636265287828098416766533202560e-01L;
00550         _points[ 8](0) = -8.9749093484652111022645010088562e-02L;
00551         _points[ 9]    = -_points[8];
00552         _points[10]    = -_points[7];
00553         _points[11]    = -_points[6];
00554         _points[12]    = -_points[5];
00555         _points[13]    = -_points[4];
00556         _points[14]    = -_points[3];
00557         _points[15]    = -_points[2];
00558         _points[16]    = -_points[1];
00559         _points[17]    = -_points[0];
00560 
00561         _weights[ 0]   = 6.5359477124183006535947712418301e-03L;
00562         _weights[ 1]   = 3.9970628810914066137599176410101e-02L;
00563         _weights[ 2]   = 7.0637166885633664999222960167786e-02L;
00564         _weights[ 3]   = 9.9016271717502802394423605318672e-02L;
00565         _weights[ 4]   = 1.2421053313296710026339635889675e-01L;
00566         _weights[ 5]   = 1.4541196157380226798300321049443e-01L;
00567         _weights[ 6]   = 1.6193951723760248926432670670023e-01L;
00568         _weights[ 7]   = 1.7326210948945622601061440382668e-01L;
00569         _weights[ 8]   = 1.7901586343970308229381880694353e-01L;
00570         _weights[ 9]   = _weights[8];
00571         _weights[10]   = _weights[7];
00572         _weights[11]   = _weights[6];
00573         _weights[12]   = _weights[5];
00574         _weights[13]   = _weights[4];
00575         _weights[14]   = _weights[3];
00576         _weights[15]   = _weights[2];
00577         _weights[16]   = _weights[1];
00578         _weights[17]   = _weights[0];
00579 
00580         return;
00581       }
00582 
00583       // 2*19-3 = 35
00584     case THIRTYFOURTH:
00585     case THIRTYFIFTH:
00586       {
00587         _points.resize (19);
00588         _weights.resize(19);
00589 
00590         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00591         _points[ 1](0) = -9.7861176622208009515263406311022e-01L;
00592         _points[ 2](0) = -9.2890152815258624371794025879655e-01L;
00593         _points[ 3](0) = -8.5246057779664609308595597004106e-01L;
00594         _points[ 4](0) = -7.5149420255261301416363748963394e-01L;
00595         _points[ 5](0) = -6.2890813726522049776683230622873e-01L;
00596         _points[ 6](0) = -4.8822928568071350277790963762492e-01L;
00597         _points[ 7](0) = -3.3350484782449861029850010384493e-01L;
00598         _points[ 8](0) = -1.6918602340928157137515415344488e-01L;
00599         _points[ 9](0) = 0.;
00600         _points[10]    = -_points[8];
00601         _points[11]    = -_points[7];
00602         _points[12]    = -_points[6];
00603         _points[13]    = -_points[5];
00604         _points[14]    = -_points[4];
00605         _points[15]    = -_points[3];
00606         _points[16]    = -_points[2];
00607         _points[17]    = -_points[1];
00608         _points[18]    = -_points[0];
00609 
00610         _weights[ 0]   = 5.8479532163742690058479532163743e-03L;
00611         _weights[ 1]   = 3.5793365186176477115425569035122e-02L;
00612         _weights[ 2]   = 6.3381891762629736851695690418317e-02L;
00613         _weights[ 3]   = 8.9131757099207084448008790556153e-02L;
00614         _weights[ 4]   = 1.1231534147730504407091001546378e-01L;
00615         _weights[ 5]   = 1.3226728044875077692604673390973e-01L;
00616         _weights[ 6]   = 1.4841394259593888500968064366841e-01L;
00617         _weights[ 7]   = 1.6029092404406124197991096818359e-01L;
00618         _weights[ 8]   = 1.6755658452714286727013727774026e-01L;
00619         _weights[ 9]   = 1.7000191928482723464467271561652e-01L;
00620         _weights[10]   = _weights[8];
00621         _weights[11]   = _weights[7];
00622         _weights[12]   = _weights[6];
00623         _weights[13]   = _weights[5];
00624         _weights[14]   = _weights[4];
00625         _weights[15]   = _weights[3];
00626         _weights[16]   = _weights[2];
00627         _weights[17]   = _weights[1];
00628         _weights[18]   = _weights[0];
00629 
00630         return;
00631       }
00632 
00633       // 2*20-3 = 37
00634     case THIRTYSIXTH:
00635     case THIRTYSEVENTH:
00636       {
00637         _points.resize (20);
00638         _weights.resize(20);
00639 
00640         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00641         _points[ 1](0) = -9.8074370489391417192544643858423e-01L;
00642         _points[ 2](0) = -9.3593449881266543571618158493063e-01L;
00643         _points[ 3](0) = -8.6687797808995014130984721461629e-01L;
00644         _points[ 4](0) = -7.7536826095205587041431752759469e-01L;
00645         _points[ 5](0) = -6.6377640229031128984640332297116e-01L;
00646         _points[ 6](0) = -5.3499286403188626164813596182898e-01L;
00647         _points[ 7](0) = -3.9235318371390929938647470381582e-01L;
00648         _points[ 8](0) = -2.3955170592298649518240135692709e-01L;
00649         _points[ 9](0) = -8.0545937238821837975944518159554e-02L;
00650         _points[10]    = -_points[9];
00651         _points[11]    = -_points[8];
00652         _points[12]    = -_points[7];
00653         _points[13]    = -_points[6];
00654         _points[14]    = -_points[5];
00655         _points[15]    = -_points[4];
00656         _points[16]    = -_points[3];
00657         _points[17]    = -_points[2];
00658         _points[18]    = -_points[1];
00659         _points[19]    = -_points[0];
00660 
00661         _weights[ 0]   = 5.2631578947368421052631578947368e-03L;
00662         _weights[ 1]   = 3.2237123188488941491605028117294e-02L;
00663         _weights[ 2]   = 5.7181802127566826004753627173243e-02L;
00664         _weights[ 3]   = 8.0631763996119603144776846113721e-02L;
00665         _weights[ 4]   = 1.0199149969945081568378120573289e-01L;
00666         _weights[ 5]   = 1.2070922762867472509942970500239e-01L;
00667         _weights[ 6]   = 1.3630048235872418448978079298903e-01L;
00668         _weights[ 7]   = 1.4836155407091682581471301373397e-01L;
00669         _weights[ 8]   = 1.5658010264747548715816989679364e-01L;
00670         _weights[ 9]   = 1.6074328638784574900772672644908e-01L;
00671         _weights[10]   = _weights[9];
00672         _weights[11]   = _weights[8];
00673         _weights[12]   = _weights[7];
00674         _weights[13]   = _weights[6];
00675         _weights[14]   = _weights[5];
00676         _weights[15]   = _weights[4];
00677         _weights[16]   = _weights[3];
00678         _weights[17]   = _weights[2];
00679         _weights[18]   = _weights[1];
00680         _weights[19]   = _weights[0];
00681 
00682         return;
00683       }
00684 
00685       // 2*21-3 = 39
00686     case THIRTYEIGHTH:
00687     case THIRTYNINTH:
00688       {
00689         _points.resize (21);
00690         _weights.resize(21);
00691 
00692         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00693         _points[ 1](0) = -9.8257229660454802823448127655541e-01L;
00694         _points[ 2](0) = -9.4197629695974553429610265066144e-01L;
00695         _points[ 3](0) = -8.7929475532359046445115359630494e-01L;
00696         _points[ 4](0) = -7.9600192607771240474431258966036e-01L;
00697         _points[ 5](0) = -6.9405102606222323262731639319467e-01L;
00698         _points[ 6](0) = -5.7583196026183068692702187033809e-01L;
00699         _points[ 7](0) = -4.4411578327900210119451634960735e-01L;
00700         _points[ 8](0) = -3.0198985650876488727535186785875e-01L;
00701         _points[ 9](0) = -1.5278551580218546600635832848567e-01L;
00702         _points[10](0) = 0.;
00703         _points[11]    = -_points[9];
00704         _points[12]    = -_points[8];
00705         _points[13]    = -_points[7];
00706         _points[14]    = -_points[6];
00707         _points[15]    = -_points[5];
00708         _points[16]    = -_points[4];
00709         _points[17]    = -_points[3];
00710         _points[18]    = -_points[2];
00711         _points[19]    = -_points[1];
00712         _points[20]    = -_points[0];
00713 
00714         _weights[ 0]   = 4.7619047619047619047619047619048e-03L;
00715         _weights[ 1]   = 2.9184840098505458609458543613171e-02L;
00716         _weights[ 2]   = 5.1843169000849625072722971852830e-02L;
00717         _weights[ 3]   = 7.3273918185074144252547861041894e-02L;
00718         _weights[ 4]   = 9.2985467957886065301137664149214e-02L;
00719         _weights[ 5]   = 1.1051708321912333526700048678439e-01L;
00720         _weights[ 6]   = 1.2545812119086894801515753570800e-01L;
00721         _weights[ 7]   = 1.3745846286004134358089961741515e-01L;
00722         _weights[ 8]   = 1.4623686244797745926727053063439e-01L;
00723         _weights[ 9]   = 1.5158757511168138445325068150529e-01L;
00724         _weights[10]   = 1.5338519033217494855158440506754e-01L;
00725         _weights[11]   = _weights[9];
00726         _weights[12]   = _weights[8];
00727         _weights[13]   = _weights[7];
00728         _weights[14]   = _weights[6];
00729         _weights[15]   = _weights[5];
00730         _weights[16]   = _weights[4];
00731         _weights[17]   = _weights[3];
00732         _weights[18]   = _weights[2];
00733         _weights[19]   = _weights[1];
00734         _weights[20]   = _weights[0];
00735 
00736         return;
00737       }
00738 
00739       // 2*22-3 = 41
00740     case FORTIETH:
00741     case FORTYFIRST:
00742       {
00743         _points.resize (22);
00744         _weights.resize(22);
00745 
00746         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00747         _points[ 1](0) = -9.8415243845764617655228962221207e-01L;
00748         _points[ 2](0) = -9.4720428399922868052421376661573e-01L;
00749         _points[ 3](0) = -8.9006229019090447052965782577909e-01L;
00750         _points[ 4](0) = -8.1394892761192113604544184805614e-01L;
00751         _points[ 5](0) = -7.2048723996120215811988189639847e-01L;
00752         _points[ 6](0) = -6.1166943828425897122621160586993e-01L;
00753         _points[ 7](0) = -4.8981487518990234980875123568327e-01L;
00754         _points[ 8](0) = -3.5752071013891953806095728024018e-01L;
00755         _points[ 9](0) = -2.1760658515928504178795509346539e-01L;
00756         _points[10](0) = -7.3054540010898334761088790464107e-02L;
00757         _points[11]    = -_points[10];
00758         _points[12]    = -_points[9];
00759         _points[13]    = -_points[8];
00760         _points[14]    = -_points[7];
00761         _points[15]    = -_points[6];
00762         _points[16]    = -_points[5];
00763         _points[17]    = -_points[4];
00764         _points[18]    = -_points[3];
00765         _points[19]    = -_points[2];
00766         _points[20]    = -_points[1];
00767         _points[21]    = -_points[0];
00768 
00769         _weights[ 0]   = 4.3290043290043290043290043290043e-03L;
00770         _weights[ 1]   = 2.6545747682501757911627904520543e-02L;
00771         _weights[ 2]   = 4.7214465293740752123775734864792e-02L;
00772         _weights[ 3]   = 6.6865605864553076012404194157097e-02L;
00773         _weights[ 4]   = 8.5090060391838447815711236095748e-02L;
00774         _weights[ 5]   = 1.0150057480164767437243730374960e-01L;
00775         _weights[ 6]   = 1.1574764465393906659003636772146e-01L;
00776         _weights[ 7]   = 1.2752769665343027553084445930883e-01L;
00777         _weights[ 8]   = 1.3658968861374142668617736220617e-01L;
00778         _weights[ 9]   = 1.4274049227136140033623599356679e-01L;
00779         _weights[10]   = 1.4584901944424179361642043947997e-01L;
00780         _weights[11]   = _weights[10];
00781         _weights[12]   = _weights[9];
00782         _weights[13]   = _weights[8];
00783         _weights[14]   = _weights[7];
00784         _weights[15]   = _weights[6];
00785         _weights[16]   = _weights[5];
00786         _weights[17]   = _weights[4];
00787         _weights[18]   = _weights[3];
00788         _weights[19]   = _weights[2];
00789         _weights[20]   = _weights[1];
00790         _weights[21]   = _weights[0];
00791 
00792         return;
00793       }
00794 
00795       // 2*23-3 = 43
00796     case FORTYSECOND:
00797     case FORTYTHIRD:
00798       {
00799         _points.resize (23);
00800         _weights.resize(23);
00801 
00802         _points[ 0](0) = -1.0000000000000000000000000000000e+00L;
00803         _points[ 1](0) = -9.8552715587873257808146276673810e-01L;
00804         _points[ 2](0) = -9.5175795571071020413563967985143e-01L;
00805         _points[ 3](0) = -8.9945855804034501095016032034737e-01L;
00806         _points[ 4](0) = -8.2965109665128588622320061929000e-01L;
00807         _points[ 5](0) = -7.4369504117206068394516354306700e-01L;
00808         _points[ 6](0) = -6.4326364446013620847614553360277e-01L;
00809         _points[ 7](0) = -5.3031177113684416813011532015230e-01L;
00810         _points[ 8](0) = -4.0703793791447482919595048821510e-01L;
00811         _points[ 9](0) = -2.7584154894579306710687763267914e-01L;
00812         _points[10](0) = -1.3927620404066839859186261298277e-01L;
00813         _points[11](0) = 0.;
00814         _points[12]    = -_points[10];
00815         _points[13]    = -_points[9];
00816         _points[14]    = -_points[8];
00817         _points[15]    = -_points[7];
00818         _points[16]    = -_points[6];
00819         _points[17]    = -_points[5];
00820         _points[18]    = -_points[4];
00821         _points[19]    = -_points[3];
00822         _points[20]    = -_points[2];
00823         _points[21]    = -_points[1];
00824         _points[22]    = -_points[0];
00825 
00826         _weights[ 0]   = 3.9525691699604743083003952569170e-03L;
00827         _weights[ 1]   = 2.4248600771531736517399658937097e-02L;
00828         _weights[ 2]   = 4.3175871170241834748876465612042e-02L;
00829         _weights[ 3]   = 6.1252477129554206381382847440355e-02L;
00830         _weights[ 4]   = 7.8135449475569989741934255347965e-02L;
00831         _weights[ 5]   = 9.3497246163512341833500706906697e-02L;
00832         _weights[ 6]   = 1.0703910172433651153518362791547e-01L;
00833         _weights[ 7]   = 1.1849751066274913130212600472426e-01L;
00834         _weights[ 8]   = 1.2764947470175887663614855305567e-01L;
00835         _weights[ 9]   = 1.3431687263860381990156489770071e-01L;
00836         _weights[10]   = 1.3836993638580739452350273386294e-01L;
00837         _weights[11]   = 1.3972978001274736514015970647975e-01L;
00838         _weights[12]   = _weights[10];
00839         _weights[13]   = _weights[9];
00840         _weights[14]   = _weights[8];
00841         _weights[15]   = _weights[7];
00842         _weights[16]   = _weights[6];
00843         _weights[17]   = _weights[5];
00844         _weights[18]   = _weights[4];
00845         _weights[19]   = _weights[3];
00846         _weights[20]   = _weights[2];
00847         _weights[21]   = _weights[1];
00848         _weights[22]   = _weights[0];
00849 
00850         return;
00851       }
00852 
00853     default:
00854       libmesh_error_msg("Quadrature rule " << _order << " not supported!");
00855     }
00856 }
00857 
00858 } // namespace libMesh