$extrastylesheet
inf_fe_lagrange_eval.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 // Local Includes
00020 #include "libmesh/libmesh_config.h"
00021 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
00022 #include "libmesh/inf_fe.h"
00023 
00024 namespace libMesh
00025 {
00026 
00027 // Anonymous namespace for local helper functions
00028 namespace {
00029 
00030 Real lagrange_eval(Real v, Order o_radial, unsigned i)
00031 {
00032   libmesh_assert (-1.-1.e-5 <= v && v < 1.);
00033 
00034   switch (o_radial)
00035     {
00036     case CONSTANT:
00037       switch (i)
00038         {
00039         case 0:
00040           return 1.;
00041 
00042         default:
00043           libmesh_error_msg("bad index i = " << i);
00044         }
00045 
00046 
00047     case FIRST:
00048       switch (i)
00049         {
00050         case 0:
00051           return -1.*v;
00052 
00053         case 1:
00054           return v+1.;
00055 
00056         default:
00057           libmesh_error_msg("bad index i = " << i);
00058         }
00059 
00060 
00061     case SECOND:
00062       switch (i)
00063         {
00064         case 0:
00065           return 2.*v*(v+.5);
00066 
00067         case 1:
00068           return 2.*(v+1.)*(v+.5);
00069 
00070         case 2:
00071           return -4.*(v+1.)*v;
00072 
00073         default:
00074           libmesh_error_msg("bad index i = " << i);
00075         }
00076 
00077 
00078     case THIRD:
00079       switch (i)
00080         {
00081         case 0:
00082           return -4.5*v*(v+.6666666666666667)*(v+.3333333333333333);
00083 
00084         case 1:
00085           return 4.5*(v+1.)*(v+.6666666666666667)*(v+.3333333333333333);
00086 
00087         case 2:
00088           return 13.5*(v+1.)*v*(v+.3333333333333333);
00089 
00090         case 3:
00091           return -13.5*(v+1.)*v*(v+.6666666666666667);
00092 
00093         default:
00094           libmesh_error_msg("bad index i = " << i);
00095         }
00096 
00097 
00098     case FOURTH:
00099       switch (i)
00100         {
00101         case 0:
00102           return 10.66666666666667*v*(v+.75)*(v+.5)*(v+.25);
00103 
00104         case 1:
00105           return 10.66666666666667*(v+1.)*(v+.75)*(v+.5)*(v+.25);
00106 
00107         case 2:
00108           return -42.66666666666667*(v+1.)*v*(v+.5)*(v+.25);
00109 
00110         case 3:
00111           return 64.*(v+1.)*v*(v+.75)*(v+.25);
00112 
00113         case 4:
00114           return -42.66666666666667*(v+1.)*v*(v+.75)*(v+.5);
00115 
00116         default:
00117           libmesh_error_msg("bad index i = " << i);
00118         }
00119 
00120 
00121     case FIFTH:
00122       switch (i)
00123         {
00124         case 0:
00125           return -26.04166666666667*v*(v+.8)*(v+.6)*(v+.4)*(v+.2);
00126 
00127         case 1:
00128           return 26.04166666666667*(v+1.)*(v+.8)*(v+.6)*(v+.4)*(v+.2);
00129 
00130         case 2:
00131           return 130.2083333333333*(v+1.)*v*(v+.6)*(v+.4)*(v+.2);
00132 
00133         case 3:
00134           return -260.4166666666667*(v+1.)*v*(v+.8)*(v+.4)*(v+.2);
00135 
00136         case 4:
00137           return 260.4166666666667*(v+1.)*v*(v+.8)*(v+.6)*(v+.2);
00138 
00139         case 5:
00140           return -130.2083333333333*(v+1.)*v*(v+.8)*(v+.6)*(v+.4);
00141 
00142         default:
00143           libmesh_error_msg("bad index i = " << i);
00144         }
00145 
00146 
00147     case SIXTH:
00148       switch (i)
00149         {
00150         case 0:
00151           return 64.8*v*(v+.8333333333333333)*(v+.6666666666666667)*(v+.5)*(v+.3333333333333333)*(v+.1666666666666667);
00152 
00153         case 1:
00154           return 64.8*(v+1.)*(v+.8333333333333333)*(v+.6666666666666667)*(v+.5)*(v+.3333333333333333)*(v+.1666666666666667);
00155 
00156         case 2:
00157           return -388.8*(v+1.)*v*(v+.6666666666666667)*(v+.5)*(v+.3333333333333333)*(v+.1666666666666667);
00158 
00159         case 3:
00160           return 972.*(v+1.)*v*(v+.8333333333333333)*(v+.5)*(v+.3333333333333333)*(v+.1666666666666667);
00161 
00162         case 4:
00163           return -1296.*(v+1.)*v*(v+.8333333333333333)*(v+.6666666666666667)*(v+.3333333333333333)*(v+.1666666666666667);
00164 
00165         case 5:
00166           return 972.*(v+1.)*v*(v+.8333333333333333)*(v+.6666666666666667)*(v+.5)*(v+.1666666666666667);
00167 
00168         case 6:
00169           return -388.8*(v+1.)*v*(v+.8333333333333333)*(v+.6666666666666667)*(v+.5)*(v+.3333333333333333);
00170 
00171         default:
00172           libmesh_error_msg("bad index i = " << i);
00173         }
00174 
00175 
00176     case SEVENTH:
00177       switch (i)
00178         {
00179         case 0:
00180           return -163.401388888889*v*
00181             (v+.8571428571428571)*
00182             (v+.7142857142857143)*
00183             (v+.5714285714285714)*
00184             (v+.4285714285714286)*
00185             (v+.2857142857142857)*
00186             (v+.1428571428571429);
00187 
00188         case 1:
00189           return 163.4013888888888*
00190             (v+1.)*
00191             (v+.8571428571428571)*
00192             (v+.7142857142857143)*
00193             (v+.5714285714285714)*
00194             (v+.4285714285714286)*
00195             (v+.2857142857142857)*
00196             (v+.1428571428571429);
00197 
00198         case 2:
00199           return 1143.809722222222*
00200             (v+1.)*v*
00201             (v+.7142857142857143)*
00202             (v+.5714285714285714)*
00203             (v+.4285714285714286)*
00204             (v+.2857142857142857)*
00205             (v+.1428571428571429);
00206 
00207         case 3:
00208           return -3431.429166666665*
00209             (v+1.)*v*
00210             (v+.8571428571428571)*
00211             (v+.5714285714285714)*
00212             (v+.4285714285714286)*
00213             (v+.2857142857142857)*
00214             (v+.1428571428571429);
00215 
00216         case 4:
00217           return 5719.048611111112*
00218             (v+1.)*v*
00219             (v+.8571428571428571)*
00220             (v+.7142857142857143)*
00221             (v+.4285714285714286)*
00222             (v+.2857142857142857)*
00223             (v+.1428571428571429);
00224 
00225         case 5:
00226           return -5719.048611111112*
00227             (v+1.)*v*
00228             (v+.8571428571428571)*
00229             (v+.7142857142857143)*
00230             (v+.5714285714285714)*
00231             (v+.2857142857142857)*
00232             (v+.1428571428571429);
00233 
00234         case 6:
00235           return 3431.429166666666*
00236             (v+1.)*v*
00237             (v+.8571428571428571)*
00238             (v+.7142857142857143)*
00239             (v+.5714285714285714)*
00240             (v+.4285714285714286)*
00241             (v+.1428571428571429);
00242 
00243         case 7:
00244           return -1143.809722222223*
00245             (v+1.)*v*
00246             (v+.8571428571428571)*
00247             (v+.7142857142857143)*
00248             (v+.5714285714285714)*
00249             (v+.4285714285714286)*
00250             (v+.2857142857142857);
00251 
00252         default:
00253           libmesh_error_msg("bad index i = " << i);
00254         }
00255 
00256 
00257     case EIGHTH:
00258       switch (i)
00259         {
00260         case 0:
00261           return 416.1015873015873*v*(v+.875)*(v+.75)*(v+.625)*(v+.5)*(v+.375)*(v+.25)*(v+.125);
00262 
00263         case 1:
00264           return 416.1015873015873*(v+1.)*(v+.875)*(v+.75)*(v+.625)*(v+.5)*(v+.375)*(v+.25)*(v+.125);
00265 
00266         case 2:
00267           return -3328.812698412698*(v+1.)*v*(v+.75)*(v+.625)*(v+.5)*(v+.375)*(v+.25)*(v+.125);
00268 
00269         case 3:
00270           return 11650.84444444444*(v+1.)*v*(v+.875)*(v+.625)*(v+.5)*(v+.375)*(v+.25)*(v+.125);
00271 
00272         case 4:
00273           return -23301.68888888889*(v+1.)*v*(v+.875)*(v+.75)*(v+.5)*(v+.375)*(v+.25)*(v+.125);
00274 
00275         case 5:
00276           return 29127.11111111111*(v+1.)*v*(v+.875)*(v+.75)*(v+.625)*(v+.375)*(v+.25)*(v+.125);
00277 
00278         case 6:
00279           return -23301.68888888889*(v+1.)*v*(v+.875)*(v+.75)*(v+.625)*(v+.5)*(v+.25)*(v+.125);
00280 
00281         case 7:
00282           return 11650.84444444444*(v+1.)*v*(v+.875)*(v+.75)*(v+.625)*(v+.5)*(v+.375)*(v+.125);
00283 
00284         case 8:
00285           return -3328.812698412698*(v+1.)*v*(v+.875)*(v+.75)*(v+.625)*(v+.5)*(v+.375)*(v+.25);
00286 
00287         default:
00288           libmesh_error_msg("bad index i = " << i);
00289         }
00290 
00291 
00292     case NINTH:
00293       switch (i)
00294         {
00295         case 0:
00296           return -1067.627008928571*v*
00297             (v+.8888888888888889)*
00298             (v+.7777777777777778)*
00299             (v+.6666666666666667)*
00300             (v+.5555555555555556)*
00301             (v+.4444444444444444)*
00302             (v+.3333333333333333)*
00303             (v+.2222222222222222)*
00304             (v+.1111111111111111);
00305 
00306         case 1:
00307           return 1067.627008928571*
00308             (v+1.)*
00309             (v+.8888888888888889)*
00310             (v+.7777777777777778)*
00311             (v+.6666666666666667)*
00312             (v+.5555555555555556)*
00313             (v+.4444444444444444)*
00314             (v+.3333333333333333)*
00315             (v+.2222222222222222)*
00316             (v+.1111111111111111);
00317 
00318         case 2:
00319           return 9608.643080357158*
00320             (v+1.)*v*
00321             (v+.7777777777777778)*
00322             (v+.6666666666666667)*
00323             (v+.5555555555555556)*
00324             (v+.4444444444444444)*
00325             (v+.3333333333333333)*
00326             (v+.2222222222222222)*
00327             (v+.1111111111111111);
00328 
00329         case 3:
00330           return -38434.57232142862*
00331             (v+1.)*v*
00332             (v+.8888888888888889)*
00333             (v+.6666666666666667)*
00334             (v+.5555555555555556)*
00335             (v+.4444444444444444)*
00336             (v+.3333333333333333)*
00337             (v+.2222222222222222)*
00338             (v+.1111111111111111);
00339 
00340         case 4:
00341           return 89680.66874999999*
00342             (v+1.)*v*
00343             (v+.8888888888888889)*
00344             (v+.7777777777777778)*
00345             (v+.5555555555555556)*
00346             (v+.4444444444444444)*
00347             (v+.3333333333333333)*
00348             (v+.2222222222222222)*
00349             (v+.1111111111111111);
00350 
00351         case 5:
00352           return -134521.0031249999*
00353             (v+1.)*v*
00354             (v+.8888888888888889)*
00355             (v+.7777777777777778)*
00356             (v+.6666666666666667)*
00357             (v+.4444444444444444)*
00358             (v+.3333333333333333)*
00359             (v+.2222222222222222)*
00360             (v+.1111111111111111);
00361 
00362         case 6:
00363           return 134521.003125*
00364             (v+1.)*v*
00365             (v+.8888888888888889)*
00366             (v+.7777777777777778)*
00367             (v+.6666666666666667)*
00368             (v+.5555555555555556)*
00369             (v+.3333333333333333)*
00370             (v+.2222222222222222)*
00371             (v+.1111111111111111);
00372 
00373         case 7:
00374           return -89680.66875000004*
00375             (v+1.)*v*
00376             (v+.8888888888888889)*
00377             (v+.7777777777777778)*
00378             (v+.6666666666666667)*
00379             (v+.5555555555555556)*
00380             (v+.4444444444444444)*
00381             (v+.2222222222222222)*
00382             (v+.1111111111111111);
00383 
00384         case 8:
00385           return 38434.57232142857*
00386             (v+1.)*v*
00387             (v+.8888888888888889)*
00388             (v+.7777777777777778)*
00389             (v+.6666666666666667)*
00390             (v+.5555555555555556)*
00391             (v+.4444444444444444)*
00392             (v+.3333333333333333)*
00393             (v+.1111111111111111);
00394 
00395         case 9:
00396           return -9608.643080357148*
00397             (v+1.)*v*
00398             (v+.8888888888888889)*
00399             (v+.7777777777777778)*
00400             (v+.6666666666666667)*
00401             (v+.5555555555555556)*
00402             (v+.4444444444444444)*
00403             (v+.3333333333333333)*
00404             (v+.2222222222222222);
00405 
00406         default:
00407           libmesh_error_msg("bad index i = " << i);
00408         }
00409 
00410 
00411     case TENTH:
00412       switch (i)
00413         {
00414         case 0:
00415           return 2755.73192239859*v*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00416 
00417         case 1:
00418           return 2755.73192239859*(v+1.)*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00419 
00420         case 2:
00421           return -27557.31922398588*(v+1.)*v*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00422 
00423         case 3:
00424           return 124007.9365079364*(v+1.)*v*(v+.9)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00425 
00426         case 4:
00427           return -330687.8306878306*(v+1.)*v*(v+.9)*(v+.8)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00428 
00429         case 5:
00430           return 578703.7037037039*(v+1.)*v*(v+.9)*(v+.8)*(v+.7)*(v+.5)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00431 
00432         case 6:
00433           return -694444.4444444449*(v+1.)*v*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.4)*(v+.3)*(v+.2)*(v+.1);
00434 
00435         case 7:
00436           return 578703.7037037039*(v+1.)*v*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.3)*(v+.2)*(v+.1);
00437 
00438         case 8:
00439           return -330687.8306878306*(v+1.)*v*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.2)*(v+.1);
00440 
00441         case 9:
00442           return 124007.9365079364*(v+1.)*v*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.1);
00443 
00444         case 10:
00445           return -27557.31922398588*(v+1.)*v*(v+.9)*(v+.8)*(v+.7)*(v+.6)*(v+.5)*(v+.4)*(v+.3)*(v+.2);
00446 
00447         default:
00448           libmesh_error_msg("bad index i = " << i);
00449         }
00450 
00451 
00452     case ELEVENTH:
00453       switch (i)
00454         {
00455         case 0:
00456           return -7147.658895778214*v*
00457             (v+.9090909090909091)*
00458             (v+.8181818181818182)*
00459             (v+.7272727272727273)*
00460             (v+.6363636363636364)*
00461             (v+.5454545454545455)*
00462             (v+.4545454545454545)*
00463             (v+.3636363636363636)*
00464             (v+.2727272727272727)*
00465             (v+.1818181818181818)*
00466             (v+.9090909090909091e-1);
00467 
00468         case 1:
00469           return 7147.65889577822*
00470             (v+1.)*
00471             (v+.9090909090909091)*
00472             (v+.8181818181818182)*
00473             (v+.7272727272727273)*
00474             (v+.6363636363636364)*
00475             (v+.5454545454545455)*
00476             (v+.4545454545454545)*
00477             (v+.3636363636363636)*
00478             (v+.2727272727272727)*
00479             (v+.1818181818181818)*
00480             (v+.9090909090909091e-1);
00481 
00482         case 2:
00483           return 78624.2478535604*
00484             (v+1.)*v*
00485             (v+.8181818181818182)*
00486             (v+.7272727272727273)*
00487             (v+.6363636363636364)*
00488             (v+.5454545454545455)*
00489             (v+.4545454545454545)*
00490             (v+.3636363636363636)*
00491             (v+.2727272727272727)*
00492             (v+.1818181818181818)*
00493             (v+.9090909090909091e-1);
00494 
00495         case 3:
00496           return -393121.2392678026*
00497             (v+1.)*v*
00498             (v+.9090909090909091)*
00499             (v+.7272727272727273)*
00500             (v+.6363636363636364)*
00501             (v+.5454545454545455)*
00502             (v+.4545454545454545)*
00503             (v+.3636363636363636)*
00504             (v+.2727272727272727)*
00505             (v+.1818181818181818)*
00506             (v+.9090909090909091e-1);
00507 
00508         case 4:
00509           return 1179363.717803407*
00510             (v+1.)*v*
00511             (v+.9090909090909091)*
00512             (v+.8181818181818182)*
00513             (v+.6363636363636364)*
00514             (v+.5454545454545455)*
00515             (v+.4545454545454545)*
00516             (v+.3636363636363636)*
00517             (v+.2727272727272727)*
00518             (v+.1818181818181818)*
00519             (v+.9090909090909091e-1);
00520 
00521         case 5:
00522           return -2358727.435606812*
00523             (v+1.)*v*
00524             (v+.9090909090909091)*
00525             (v+.8181818181818182)*
00526             (v+.7272727272727273)*
00527             (v+.5454545454545455)*
00528             (v+.4545454545454545)*
00529             (v+.3636363636363636)*
00530             (v+.2727272727272727)*
00531             (v+.1818181818181818)*
00532             (v+.9090909090909091e-1);
00533 
00534         case 6:
00535           return 3302218.409849539*
00536             (v+1.)*v*
00537             (v+.9090909090909091)*
00538             (v+.8181818181818182)*
00539             (v+.7272727272727273)*
00540             (v+.6363636363636364)*
00541             (v+.4545454545454545)*
00542             (v+.3636363636363636)*
00543             (v+.2727272727272727)*
00544             (v+.1818181818181818)*
00545             (v+.9090909090909091e-1);
00546 
00547         case 7:
00548           return -3302218.40984954*
00549             (v+1.)*v*
00550             (v+.9090909090909091)*
00551             (v+.8181818181818182)*
00552             (v+.7272727272727273)*
00553             (v+.6363636363636364)*
00554             (v+.5454545454545455)*
00555             (v+.3636363636363636)*
00556             (v+.2727272727272727)*
00557             (v+.1818181818181818)*
00558             (v+.9090909090909091e-1);
00559 
00560         case 8:
00561           return 2358727.435606811*
00562             (v+1.)*v*
00563             (v+.9090909090909091)*
00564             (v+.8181818181818182)*
00565             (v+.7272727272727273)*
00566             (v+.6363636363636364)*
00567             (v+.5454545454545455)*
00568             (v+.4545454545454545)*
00569             (v+.2727272727272727)*
00570             (v+.1818181818181818)*
00571             (v+.9090909090909091e-1);
00572 
00573         case 9:
00574           return -1179363.717803406*
00575             (v+1.)*v*
00576             (v+.9090909090909091)*
00577             (v+.8181818181818182)*
00578             (v+.7272727272727273)*
00579             (v+.6363636363636364)*
00580             (v+.5454545454545455)*
00581             (v+.4545454545454545)*
00582             (v+.3636363636363636)*
00583             (v+.1818181818181818)*
00584             (v+.9090909090909091e-1);
00585 
00586         case 10:
00587           return 393121.2392678019*
00588             (v+1.)*v*
00589             (v+.9090909090909091)*
00590             (v+.8181818181818182)*
00591             (v+.7272727272727273)*
00592             (v+.6363636363636364)*
00593             (v+.5454545454545455)*
00594             (v+.4545454545454545)*
00595             (v+.3636363636363636)*
00596             (v+.2727272727272727)*
00597             (v+.9090909090909091e-1);
00598 
00599         case 11:
00600           return -78624.24785356052*
00601             (v+1.)*v*
00602             (v+.9090909090909091)*
00603             (v+.8181818181818182)*
00604             (v+.7272727272727273)*
00605             (v+.6363636363636364)*
00606             (v+.5454545454545455)*
00607             (v+.4545454545454545)*
00608             (v+.3636363636363636)*
00609             (v+.2727272727272727)*
00610             (v+.1818181818181818);
00611 
00612         default:
00613           libmesh_error_msg("bad index i = " << i);
00614         }
00615 
00616 
00617     case TWELFTH:
00618       switch (i)
00619         {
00620         case 0:
00621           return 18613.92623376623*v*
00622             (v+.9166666666666667)*
00623             (v+.8333333333333333)*
00624             (v+.75)*
00625             (v+.6666666666666667)*
00626             (v+.5833333333333333)*
00627             (v+.5)*
00628             (v+.4166666666666667)*
00629             (v+.3333333333333333)*
00630             (v+.25)*
00631             (v+.1666666666666667)*
00632             (v+.8333333333333333e-1);
00633 
00634         case 1:
00635           return 18613.92623376623*
00636             (v+1.)*
00637             (v+.9166666666666667)*
00638             (v+.8333333333333333)*
00639             (v+.75)*
00640             (v+.6666666666666667)*
00641             (v+.5833333333333333)*
00642             (v+.5)*
00643             (v+.4166666666666667)*
00644             (v+.3333333333333333)*
00645             (v+.25)*
00646             (v+.1666666666666667)*
00647             (v+.8333333333333333e-1);
00648 
00649         case 2:
00650           return -223367.1148051951*
00651             (v+1.)*v*
00652             (v+.8333333333333333)*
00653             (v+.75)*
00654             (v+.6666666666666667)*
00655             (v+.5833333333333333)*
00656             (v+.5)*
00657             (v+.4166666666666667)*
00658             (v+.3333333333333333)*
00659             (v+.25)*
00660             (v+.1666666666666667)*
00661             (v+.8333333333333333e-1);
00662 
00663         case 3:
00664           return 1228519.131428571*
00665             (v+1.)*v*
00666             (v+.9166666666666667)*
00667             (v+.75)*
00668             (v+.6666666666666667)*
00669             (v+.5833333333333333)*
00670             (v+.5)*
00671             (v+.4166666666666667)*
00672             (v+.3333333333333333)*
00673             (v+.25)*
00674             (v+.1666666666666667)*
00675             (v+.8333333333333333e-1);
00676 
00677         case 4:
00678           return -4095063.771428572*
00679             (v+1.)*v*
00680             (v+.9166666666666667)*
00681             (v+.8333333333333333)*
00682             (v+.6666666666666667)*
00683             (v+.5833333333333333)*
00684             (v+.5)*
00685             (v+.4166666666666667)*
00686             (v+.3333333333333333)*
00687             (v+.25)*
00688             (v+.1666666666666667)*
00689             (v+.8333333333333333e-1);
00690 
00691         case 5:
00692           return 9213893.485714271*
00693             (v+1.)*v*
00694             (v+.9166666666666667)*
00695             (v+.8333333333333333)*
00696             (v+.75)*
00697             (v+.5833333333333333)*
00698             (v+.5)*
00699             (v+.4166666666666667)*
00700             (v+.3333333333333333)*
00701             (v+.25)*
00702             (v+.1666666666666667)*
00703             (v+.8333333333333333e-1);
00704 
00705         case 6:
00706           return -14742229.57714284*
00707             (v+1.)*v*
00708             (v+.9166666666666667)*
00709             (v+.8333333333333333)*
00710             (v+.75)*
00711             (v+.6666666666666667)*
00712             (v+.5)*
00713             (v+.4166666666666667)*
00714             (v+.3333333333333333)*
00715             (v+.25)*
00716             (v+.1666666666666667)*
00717             (v+.8333333333333333e-1);
00718 
00719         case 7:
00720           return 17199267.84*
00721             (v+1.)*v*
00722             (v+.9166666666666667)*
00723             (v+.8333333333333333)*
00724             (v+.75)*
00725             (v+.6666666666666667)*
00726             (v+.5833333333333333)*
00727             (v+.4166666666666667)*
00728             (v+.3333333333333333)*
00729             (v+.25)*
00730             (v+.1666666666666667)*
00731             (v+.8333333333333333e-1);
00732 
00733         case 8:
00734           return -14742229.57714286*
00735             (v+1.)*v*
00736             (v+.9166666666666667)*
00737             (v+.8333333333333333)*
00738             (v+.75)*
00739             (v+.6666666666666667)*
00740             (v+.5833333333333333)*
00741             (v+.5)*
00742             (v+.3333333333333333)*
00743             (v+.25)*
00744             (v+.1666666666666667)*
00745             (v+.8333333333333333e-1);
00746 
00747         case 9:
00748           return 9213893.485714291*
00749             (v+1.)*v*
00750             (v+.9166666666666667)*
00751             (v+.8333333333333333)*
00752             (v+.75)*
00753             (v+.6666666666666667)*
00754             (v+.5833333333333333)*
00755             (v+.5)*
00756             (v+.4166666666666667)*
00757             (v+.25)*
00758             (v+.1666666666666667)*
00759             (v+.8333333333333333e-1);
00760 
00761         case 10:
00762           return -4095063.77142857*
00763             (v+1.)*v*
00764             (v+.9166666666666667)*
00765             (v+.8333333333333333)*
00766             (v+.75)*
00767             (v+.6666666666666667)*
00768             (v+.5833333333333333)*
00769             (v+.5)*
00770             (v+.4166666666666667)*
00771             (v+.3333333333333333)*
00772             (v+.1666666666666667)*
00773             (v+.8333333333333333e-1);
00774 
00775         case 11:
00776           return 1228519.131428571*
00777             (v+1.)*v*
00778             (v+.9166666666666667)*
00779             (v+.8333333333333333)*
00780             (v+.75)*
00781             (v+.6666666666666667)*
00782             (v+.5833333333333333)*
00783             (v+.5)*
00784             (v+.4166666666666667)*
00785             (v+.3333333333333333)*
00786             (v+.25)*
00787             (v+.8333333333333333e-1);
00788 
00789         case 12:
00790           return -223367.1148051951*
00791             (v+1.)*v*
00792             (v+.9166666666666667)*
00793             (v+.8333333333333333)*
00794             (v+.75)*
00795             (v+.6666666666666667)*
00796             (v+.5833333333333333)*
00797             (v+.5)*
00798             (v+.4166666666666667)*
00799             (v+.3333333333333333)*
00800             (v+.25)*
00801             (v+.1666666666666667);
00802 
00803         default:
00804           libmesh_error_msg("bad index i = " << i);
00805         }
00806 
00807 
00808     case THIRTEENTH:
00809       switch (i)
00810         {
00811         case 0:
00812           return -48638.84613847011*v*
00813             (v+.9230769230769231)*
00814             (v+.8461538461538462)*
00815             (v+.7692307692307692)*
00816             (v+.6923076923076923)*
00817             (v+.6153846153846154)*
00818             (v+.5384615384615385)*
00819             (v+.4615384615384615)*
00820             (v+.3846153846153846)*
00821             (v+.3076923076923077)*
00822             (v+.2307692307692308)*
00823             (v+.1538461538461538)*
00824             (v+.7692307692307692e-1);
00825 
00826         case 1:
00827           return 48638.84613847013*
00828             (v+1.)*
00829             (v+.9230769230769231)*
00830             (v+.8461538461538462)*
00831             (v+.7692307692307692)*
00832             (v+.6923076923076923)*
00833             (v+.6153846153846154)*
00834             (v+.5384615384615385)*
00835             (v+.4615384615384615)*
00836             (v+.3846153846153846)*
00837             (v+.3076923076923077)*
00838             (v+.2307692307692308)*
00839             (v+.1538461538461538)*
00840             (v+.7692307692307692e-1);
00841 
00842         case 2:
00843           return 632304.9998001099*
00844             (v+1.)*v*
00845             (v+.8461538461538462)*
00846             (v+.7692307692307692)*
00847             (v+.6923076923076923)*
00848             (v+.6153846153846154)*
00849             (v+.5384615384615385)*
00850             (v+.4615384615384615)*
00851             (v+.3846153846153846)*
00852             (v+.3076923076923077)*
00853             (v+.2307692307692308)*
00854             (v+.1538461538461538)*
00855             (v+.7692307692307692e-1);
00856 
00857         case 3:
00858           return -3793829.998800662*
00859             (v+1.)*v*
00860             (v+.9230769230769231)*
00861             (v+.7692307692307692)*
00862             (v+.6923076923076923)*
00863             (v+.6153846153846154)*
00864             (v+.5384615384615385)*
00865             (v+.4615384615384615)*
00866             (v+.3846153846153846)*
00867             (v+.3076923076923077)*
00868             (v+.2307692307692308)*
00869             (v+.1538461538461538)*
00870             (v+.7692307692307692e-1);
00871 
00872         case 4:
00873           return 13910709.99560246*
00874             (v+1.)*v*
00875             (v+.9230769230769231)*
00876             (v+.8461538461538462)*
00877             (v+.6923076923076923)*
00878             (v+.6153846153846154)*
00879             (v+.5384615384615385)*
00880             (v+.4615384615384615)*
00881             (v+.3846153846153846)*
00882             (v+.3076923076923077)*
00883             (v+.2307692307692308)*
00884             (v+.1538461538461538)*
00885             (v+.7692307692307692e-1);
00886 
00887         case 5:
00888           return -34776774.98900616*
00889             (v+1.)*v*
00890             (v+.9230769230769231)*
00891             (v+.8461538461538462)*
00892             (v+.7692307692307692)*
00893             (v+.6153846153846154)*
00894             (v+.5384615384615385)*
00895             (v+.4615384615384615)*
00896             (v+.3846153846153846)*
00897             (v+.3076923076923077)*
00898             (v+.2307692307692308)*
00899             (v+.1538461538461538)*
00900             (v+.7692307692307692e-1);
00901 
00902         case 6:
00903           return 62598194.98021102*
00904             (v+1.)*v*
00905             (v+.9230769230769231)*
00906             (v+.8461538461538462)*
00907             (v+.7692307692307692)*
00908             (v+.6923076923076923)*
00909             (v+.5384615384615385)*
00910             (v+.4615384615384615)*
00911             (v+.3846153846153846)*
00912             (v+.3076923076923077)*
00913             (v+.2307692307692308)*
00914             (v+.1538461538461538)*
00915             (v+.7692307692307692e-1);
00916 
00917         case 7:
00918           return -83464259.97361468*
00919             (v+1.)*v*
00920             (v+.9230769230769231)*
00921             (v+.8461538461538462)*
00922             (v+.7692307692307692)*
00923             (v+.6923076923076923)*
00924             (v+.6153846153846154)*
00925             (v+.4615384615384615)*
00926             (v+.3846153846153846)*
00927             (v+.3076923076923077)*
00928             (v+.2307692307692308)*
00929             (v+.1538461538461538)*
00930             (v+.7692307692307692e-1);
00931 
00932         case 8:
00933           return 83464259.97361466*
00934             (v+1.)*v*
00935             (v+.9230769230769231)*
00936             (v+.8461538461538462)*
00937             (v+.7692307692307692)*
00938             (v+.6923076923076923)*
00939             (v+.6153846153846154)*
00940             (v+.5384615384615385)*
00941             (v+.3846153846153846)*
00942             (v+.3076923076923077)*
00943             (v+.2307692307692308)*
00944             (v+.1538461538461538)*
00945             (v+.7692307692307692e-1);
00946 
00947         case 9:
00948           return -62598194.98021099*
00949             (v+1.)*v*
00950             (v+.9230769230769231)*
00951             (v+.8461538461538462)*
00952             (v+.7692307692307692)*
00953             (v+.6923076923076923)*
00954             (v+.6153846153846154)*
00955             (v+.5384615384615385)*
00956             (v+.4615384615384615)*
00957             (v+.3076923076923077)*
00958             (v+.2307692307692308)*
00959             (v+.1538461538461538)*
00960             (v+.7692307692307692e-1);
00961 
00962         case 10:
00963           return 34776774.98900612*
00964             (v+1.)*v*
00965             (v+.9230769230769231)*
00966             (v+.8461538461538462)*
00967             (v+.7692307692307692)*
00968             (v+.6923076923076923)*
00969             (v+.6153846153846154)*
00970             (v+.5384615384615385)*
00971             (v+.4615384615384615)*
00972             (v+.3846153846153846)*
00973             (v+.2307692307692308)*
00974             (v+.1538461538461538)*
00975             (v+.7692307692307692e-1);
00976 
00977         case 11:
00978           return -13910709.99560244*
00979             (v+1.)*v*
00980             (v+.9230769230769231)*
00981             (v+.8461538461538462)*
00982             (v+.7692307692307692)*
00983             (v+.6923076923076923)*
00984             (v+.6153846153846154)*
00985             (v+.5384615384615385)*
00986             (v+.4615384615384615)*
00987             (v+.3846153846153846)*
00988             (v+.3076923076923077)*
00989             (v+.1538461538461538)*
00990             (v+.7692307692307692e-1);
00991 
00992         case 12:
00993           return 3793829.998800668*
00994             (v+1.)*v*
00995             (v+.9230769230769231)*
00996             (v+.8461538461538462)*
00997             (v+.7692307692307692)*
00998             (v+.6923076923076923)*
00999             (v+.6153846153846154)*
01000             (v+.5384615384615385)*
01001             (v+.4615384615384615)*
01002             (v+.3846153846153846)*
01003             (v+.3076923076923077)*
01004             (v+.2307692307692308)*
01005             (v+.7692307692307692e-1);
01006 
01007         case 13:
01008           return -632304.9998001105*
01009             (v+1.)*v*
01010             (v+.9230769230769231)*
01011             (v+.8461538461538462)*
01012             (v+.7692307692307692)*
01013             (v+.6923076923076923)*
01014             (v+.6153846153846154)*
01015             (v+.5384615384615385)*
01016             (v+.4615384615384615)*
01017             (v+.3846153846153846)*
01018             (v+.3076923076923077)*
01019             (v+.2307692307692308)*
01020             (v+.1538461538461538);
01021 
01022         default:
01023           libmesh_error_msg("bad index i = " << i);
01024         }
01025 
01026 
01027     case FOURTEENTH:
01028       switch (i)
01029         {
01030         case 0:
01031           return 127463.0033762123*v*
01032             (v+.9285714285714286)*
01033             (v+.8571428571428571)*
01034             (v+.7857142857142857)*
01035             (v+.7142857142857143)*
01036             (v+.6428571428571429)*
01037             (v+.5714285714285714)*
01038             (v+.5)*
01039             (v+.4285714285714286)*
01040             (v+.3571428571428571)*
01041             (v+.2857142857142857)*
01042             (v+.2142857142857143)*
01043             (v+.1428571428571429)*
01044             (v+.7142857142857143e-1);
01045 
01046         case 1:
01047           return 127463.0033762123*
01048             (v+1.)*
01049             (v+.9285714285714286)*
01050             (v+.8571428571428571)*
01051             (v+.7857142857142857)*
01052             (v+.7142857142857143)*
01053             (v+.6428571428571429)*
01054             (v+.5714285714285714)*
01055             (v+.5)*
01056             (v+.4285714285714286)*
01057             (v+.3571428571428571)*
01058             (v+.2857142857142857)*
01059             (v+.2142857142857143)*
01060             (v+.1428571428571429)*
01061             (v+.7142857142857143e-1);
01062 
01063         case 2:
01064           return -1784482.047266971*
01065             (v+1.)*v*
01066             (v+.8571428571428571)*
01067             (v+.7857142857142857)*
01068             (v+.7142857142857143)*
01069             (v+.6428571428571429)*
01070             (v+.5714285714285714)*
01071             (v+.5)*
01072             (v+.4285714285714286)*
01073             (v+.3571428571428571)*
01074             (v+.2857142857142857)*
01075             (v+.2142857142857143)*
01076             (v+.1428571428571429)*
01077             (v+.7142857142857143e-1);
01078 
01079         case 3:
01080           return 11599133.30723529*
01081             (v+1.)*v*
01082             (v+.9285714285714286)*
01083             (v+.7857142857142857)*
01084             (v+.7142857142857143)*
01085             (v+.6428571428571429)*
01086             (v+.5714285714285714)*
01087             (v+.5)*
01088             (v+.4285714285714286)*
01089             (v+.3571428571428571)*
01090             (v+.2857142857142857)*
01091             (v+.2142857142857143)*
01092             (v+.1428571428571429)*
01093             (v+.7142857142857143e-1);
01094 
01095         case 4:
01096           return -46396533.2289412*
01097             (v+1.)*v*
01098             (v+.9285714285714286)*
01099             (v+.8571428571428571)*
01100             (v+.7142857142857143)*
01101             (v+.6428571428571429)*
01102             (v+.5714285714285714)*
01103             (v+.5)*
01104             (v+.4285714285714286)*
01105             (v+.3571428571428571)*
01106             (v+.2857142857142857)*
01107             (v+.2142857142857143)*
01108             (v+.1428571428571429)*
01109             (v+.7142857142857143e-1);
01110 
01111         case 5:
01112           return 127590466.3795883*
01113             (v+1.)*v*
01114             (v+.9285714285714286)*
01115             (v+.8571428571428571)*
01116             (v+.7857142857142857)*
01117             (v+.6428571428571429)*
01118             (v+.5714285714285714)*
01119             (v+.5)*
01120             (v+.4285714285714286)*
01121             (v+.3571428571428571)*
01122             (v+.2857142857142857)*
01123             (v+.2142857142857143)*
01124             (v+.1428571428571429)*
01125             (v+.7142857142857143e-1);
01126 
01127         case 6:
01128           return -255180932.7591769*
01129             (v+1.)*v*
01130             (v+.9285714285714286)*
01131             (v+.8571428571428571)*
01132             (v+.7857142857142857)*
01133             (v+.7142857142857143)*
01134             (v+.5714285714285714)*
01135             (v+.5)*
01136             (v+.4285714285714286)*
01137             (v+.3571428571428571)*
01138             (v+.2857142857142857)*
01139             (v+.2142857142857143)*
01140             (v+.1428571428571429)*
01141             (v+.7142857142857143e-1);
01142 
01143         case 7:
01144           return 382771399.1387658*
01145             (v+1.)*v*
01146             (v+.9285714285714286)*
01147             (v+.8571428571428571)*
01148             (v+.7857142857142857)*
01149             (v+.7142857142857143)*
01150             (v+.6428571428571429)*
01151             (v+.5)*
01152             (v+.4285714285714286)*
01153             (v+.3571428571428571)*
01154             (v+.2857142857142857)*
01155             (v+.2142857142857143)*
01156             (v+.1428571428571429)*
01157             (v+.7142857142857143e-1);
01158 
01159         case 8:
01160           return -437453027.5871608*
01161             (v+1.)*v*
01162             (v+.9285714285714286)*
01163             (v+.8571428571428571)*
01164             (v+.7857142857142857)*
01165             (v+.7142857142857143)*
01166             (v+.6428571428571429)*
01167             (v+.5714285714285714)*
01168             (v+.4285714285714286)*
01169             (v+.3571428571428571)*
01170             (v+.2857142857142857)*
01171             (v+.2142857142857143)*
01172             (v+.1428571428571429)*
01173             (v+.7142857142857143e-1);
01174 
01175         case 9:
01176           return 382771399.1387654*
01177             (v+1.)*v*
01178             (v+.9285714285714286)*
01179             (v+.8571428571428571)*
01180             (v+.7857142857142857)*
01181             (v+.7142857142857143)*
01182             (v+.6428571428571429)*
01183             (v+.5714285714285714)*
01184             (v+.5)*
01185             (v+.3571428571428571)*
01186             (v+.2857142857142857)*
01187             (v+.2142857142857143)*
01188             (v+.1428571428571429)*
01189             (v+.7142857142857143e-1);
01190 
01191         case 10:
01192           return -255180932.7591768*
01193             (v+1.)*v*
01194             (v+.9285714285714286)*
01195             (v+.8571428571428571)*
01196             (v+.7857142857142857)*
01197             (v+.7142857142857143)*
01198             (v+.6428571428571429)*
01199             (v+.5714285714285714)*
01200             (v+.5)*
01201             (v+.4285714285714286)*
01202             (v+.2857142857142857)*
01203             (v+.2142857142857143)*
01204             (v+.1428571428571429)*
01205             (v+.7142857142857143e-1);
01206 
01207         case 11:
01208           return 127590466.3795886*
01209             (v+1.)*v*
01210             (v+.9285714285714286)*
01211             (v+.8571428571428571)*
01212             (v+.7857142857142857)*
01213             (v+.7142857142857143)*
01214             (v+.6428571428571429)*
01215             (v+.5714285714285714)*
01216             (v+.5)*
01217             (v+.4285714285714286)*
01218             (v+.3571428571428571)*
01219             (v+.2142857142857143)*
01220             (v+.1428571428571429)*
01221             (v+.7142857142857143e-1);
01222 
01223         case 12:
01224           return -46396533.22894132*
01225             (v+1.)*v*
01226             (v+.9285714285714286)*
01227             (v+.8571428571428571)*
01228             (v+.7857142857142857)*
01229             (v+.7142857142857143)*
01230             (v+.6428571428571429)*
01231             (v+.5714285714285714)*
01232             (v+.5)*
01233             (v+.4285714285714286)*
01234             (v+.3571428571428571)*
01235             (v+.2857142857142857)*
01236             (v+.1428571428571429)*
01237             (v+.7142857142857143e-1);
01238 
01239         case 13:
01240           return 11599133.30723532*
01241             (v+1.)*v*
01242             (v+.9285714285714286)*
01243             (v+.8571428571428571)*
01244             (v+.7857142857142857)*
01245             (v+.7142857142857143)*
01246             (v+.6428571428571429)*
01247             (v+.5714285714285714)*
01248             (v+.5)*
01249             (v+.4285714285714286)*
01250             (v+.3571428571428571)*
01251             (v+.2857142857142857)*
01252             (v+.2142857142857143)*
01253             (v+.7142857142857143e-1);
01254 
01255         case 14:
01256           return -1784482.047266969*
01257             (v+1.)*v*
01258             (v+.9285714285714286)*
01259             (v+.8571428571428571)*
01260             (v+.7857142857142857)*
01261             (v+.7142857142857143)*
01262             (v+.6428571428571429)*
01263             (v+.5714285714285714)*
01264             (v+.5)*
01265             (v+.4285714285714286)*
01266             (v+.3571428571428571)*
01267             (v+.2857142857142857)*
01268             (v+.2142857142857143)*
01269             (v+.1428571428571429);
01270 
01271         default:
01272           libmesh_error_msg("bad index i = " << i);
01273         }
01274 
01275 
01276       // provided the constructor worked fine, we should never end up here.
01277     default:
01278       libmesh_error_msg("Lagrange polynomials only defined up to 15.");
01279     } // switch (o_radial)
01280 
01281   libmesh_error_msg("We'll never get here!");
01282   return 0.;
01283 } // lagrange_eval()
01284 
01285 
01286 
01287 
01288 Real lagrange_eval_deriv(Real v, Order o_radial, unsigned i)
01289 {
01290   libmesh_assert (-1.-1.e-5 <= v && v < 1.);
01291 
01292   switch (o_radial)
01293     {
01294     case CONSTANT:
01295       switch (i)
01296         {
01297         case 0:
01298           return 0.;
01299 
01300         default:
01301           libmesh_error_msg("bad index i = " << i);
01302         }
01303 
01304 
01305     case FIRST:
01306       switch (i)
01307         {
01308         case 0:
01309           return -1.;
01310 
01311         case 1:
01312           return 1.;
01313 
01314         default:
01315           libmesh_error_msg("bad index i = " << i);
01316         }
01317 
01318 
01319     case SECOND:
01320       switch (i)
01321         {
01322         case 0:
01323           return 4.*v+1.;
01324 
01325         case 1:
01326           return 4.*v+3.;
01327 
01328         case 2:
01329           return -8.*v-4.;
01330 
01331         default:
01332           libmesh_error_msg("bad index i = " << i);
01333         }
01334 
01335 
01336     case THIRD:
01337       switch (i)
01338         {
01339         case 0:
01340           return -1.+(-9.-13.5*v)*v;
01341 
01342         case 1:
01343           return 5.5+(18.+13.5*v)*v;
01344 
01345         case 2:
01346           return 4.5+(36.+40.5*v)*v;
01347 
01348         case 3:
01349           return -9.+(-45.-40.5*v)*v;
01350 
01351         default:
01352           libmesh_error_msg("bad index i = " << i);
01353         }
01354 
01355 
01356     case FOURTH:
01357       switch (i)
01358         {
01359         case 0:
01360           return 1.+(14.66666666666667+(48.+42.66666666666667*v)*v)*v;
01361 
01362         case 1:
01363           return 8.333333333333333+(46.66666666666667+(80.+42.66666666666667*v)*v)*v;
01364 
01365         case 2:
01366           return -5.333333333333333+(-74.66666666666667+(-224.-170.6666666666667*v)*v)*v;
01367 
01368         case 3:
01369           return 12.+(152.+(384.+256.*v)*v)*v;
01370 
01371         case 4:
01372           return -16.+(-138.6666666666667+(-288.-170.6666666666667*v)*v)*v;
01373 
01374         default:
01375           libmesh_error_msg("bad index i = " << i);
01376         }
01377 
01378 
01379     case FIFTH:
01380       switch (i)
01381         {
01382         case 0:
01383           return -1.+(-20.83333333333333+(-109.375+(-208.3333333333333-130.2083333333333*v)*v)*v)*v;
01384 
01385         case 1:
01386           return 11.41666666666667+(93.75+(265.625+(312.5+130.2083333333333*v)*v)*v)*v;
01387 
01388         case 2:
01389           return 6.25+(127.0833333333333+(640.625+(1145.833333333333+651.0416666666667*v)*v)*v)*v;
01390 
01391         case 3:
01392           return -16.66666666666667+(-325.+(-1531.25+(-2500.-1302.083333333333*v)*v)*v)*v;
01393 
01394         case 4:
01395           return 25.+(445.8333333333333+(1843.75+(2708.333333333333+1302.083333333333*v)*v)*v)*v;
01396 
01397         case 5:
01398           return -25.+(-320.8333333333333+(-1109.375+(-1458.333333333333-651.0416666666667*v)*v)*v)*v;
01399 
01400         default:
01401           libmesh_error_msg("bad index i = " << i);
01402         }
01403 
01404 
01405     case SIXTH:
01406       switch (i)
01407         {
01408         case 0:
01409           return 1.+(27.4+(202.5+(612.+(810.+388.8*v)*v)*v)*v)*v;
01410 
01411         case 1:
01412           return 14.7+(162.4+(661.5+(1260.+(1134.+388.8*v)*v)*v)*v)*v;
01413 
01414         case 2:
01415           return -7.2+(-194.4+(-1404.+(-4104.+(-5184.-2332.8*v)*v)*v)*v)*v;
01416 
01417         case 3:
01418           return 22.5+(594.+(4144.5+(11556.+(13770.+5832.*v)*v)*v)*v)*v;
01419 
01420         case 4:
01421           return -40.+(-1016.+(-6696.+(-17424.+(-19440.-7776.*v)*v)*v)*v)*v;
01422 
01423         case 5:
01424           return 45.+(1053.+(6223.5+(14796.+(15390.+5832.*v)*v)*v)*v)*v;
01425 
01426         case 6:
01427           return -36.+(-626.4+(-3132.+(-6696.+(-6480.-2332.8*v)*v)*v)*v)*v;
01428 
01429         default:
01430           libmesh_error_msg("bad index i = " << i);
01431         }
01432 
01433 
01434     case SEVENTH:
01435       switch (i)
01436         {
01437         case 0:
01438           return -1.000000000000001+
01439             (-34.30000000000002+
01440              (-331.5666666666668+
01441               (-1400.583333333334+
01442                (-2917.881944444446+
01443                 (-2941.225000000002-1143.809722222223*v)*v)*v)*v)*v)*v;
01444 
01445         case 1:
01446           return 18.14999999999999+
01447             (255.3444444444444+
01448              (1382.004166666666+
01449               (3734.888888888888+
01450                (5368.902777777776+
01451                 (3921.633333333332+1143.809722222222*v)*v)*v)*v)*v)*v;
01452 
01453         case 2:
01454           return 8.166666666666662+
01455             (277.3944444444443+
01456              (2642.529166666665+
01457               (10937.88888888888+
01458                (22175.90277777776+
01459                 (21568.98333333332+8006.668055555551*v)*v)*v)*v)*v)*v;
01460 
01461         case 3:
01462           return -29.39999999999998+
01463             (-984.8999999999994+
01464              (-9192.399999999994+
01465               (-37015.41666666664+
01466                (-72480.18749999995+
01467                 (-67648.17499999996-24020.00416666665*v)*v)*v)*v)*v)*v;
01468 
01469         case 4:
01470           return 61.25000000000001+
01471             (2009.+
01472              (18186.14583333333+
01473               (70429.33333333334+
01474                (131888.2638888889+
01475                 (117649.+40033.34027777778*v)*v)*v)*v)*v)*v;
01476 
01477         case 5:
01478           return -81.66666666666667+
01479             (-2583.388888888889+
01480              (-22237.83333333334+
01481               (-81300.52777777778+
01482                (-144143.3680555556+
01483                 (-122551.0416666667-40033.34027777778*v)*v)*v)*v)*v)*v;
01484 
01485         case 6:
01486           return 73.49999999999999+
01487             (2153.55+
01488              (16845.5875+
01489               (56823.66666666666+
01490                (94539.37499999999+
01491                 (76471.84999999999+24020.00416666666*v)*v)*v)*v)*v)*v;
01492 
01493         case 7:
01494           return -49.00000000000003+
01495             (-1092.700000000001+
01496              (-7294.466666666671+
01497               (-22209.25000000001+
01498                (-34431.00694444447+
01499                 (-26471.02500000002-8006.66805555556*v)*v)*v)*v)*v)*v;
01500 
01501         default:
01502           libmesh_error_msg("bad index i = " << i);
01503         }
01504 
01505 
01506     case EIGHTH:
01507       switch (i)
01508         {
01509         case 0:
01510           return 1.+
01511             (41.48571428571429+
01512              (500.2666666666667+
01513               (2750.577777777778+
01514                (7964.444444444444+
01515                 (12561.06666666667+
01516                  (10194.48888888889+3328.812698412698*v)*v)*v)*v)*v)*v)*v;
01517 
01518         case 1:
01519           return 21.74285714285714+
01520             (374.9968253968254+
01521              (2563.2+
01522               (9122.133333333333+
01523                (18432.+
01524                 (21299.2+
01525                  (13107.2+3328.812698412698*v)*v)*v)*v)*v)*v)*v;
01526 
01527         case 2:
01528           return -9.142857142857143+
01529             (-376.6857142857143+
01530              (-4497.066666666667+
01531               (-24393.95555555556+
01532                (-69404.44444444444+
01533                 (-107042.1333333333+
01534                  (-84468.62222222222-26630.50158730159*v)*v)*v)*v)*v)*v)*v;
01535 
01536         case 3:
01537           return 37.33333333333333+
01538             (1523.911111111111+
01539              (17952.+
01540               (95675.73333333333+
01541                (266240.+
01542                 (399769.6+
01543                  (305834.6666666667+93206.75555555556*v)*v)*v)*v)*v)*v)*v;
01544 
01545         case 4:
01546           return -89.6+
01547             (-3609.6+
01548              (-41736.53333333333+
01549               (-217179.0222222222+
01550                (-587320.8888888889+
01551                 (-854152.5333333333+
01552                  (-632058.3111111111-186413.5111111111*v)*v)*v)*v)*v)*v)*v;
01553 
01554         case 5:
01555           return 140.+
01556             (5528.+
01557              (62165.33333333333+
01558               (312689.7777777778+
01559                (814648.8888888889+
01560                 (1141418.666666667+
01561                  (815559.1111111111+233016.8888888889*v)*v)*v)*v)*v)*v)*v;
01562 
01563         case 6:
01564           return -149.3333333333333+
01565             (-5697.422222222222+
01566              (-61209.6+
01567               (-292727.4666666667+
01568                (-727040.+
01569                 (-976486.4+
01570                  (-672836.2666666667-186413.5111111111*v)*v)*v)*v)*v)*v)*v;
01571 
01572         case 7:
01573           return 112.+
01574             (3974.4+
01575              (39153.06666666667+
01576               (173954.8444444444+
01577                (407324.4444444444+
01578                 (522103.4666666667+
01579                  (346612.6222222222+93206.75555555556*v)*v)*v)*v)*v)*v)*v;
01580 
01581         case 8:
01582           return -64.+
01583             (-1759.085714285714+
01584              (-14890.66666666667+
01585               (-59892.62222222222+
01586                (-130844.4444444444+
01587                 (-159470.9333333333+
01588                  (-101944.8888888889-26630.50158730159*v)*v)*v)*v)*v)*v)*v;
01589 
01590         default:
01591           libmesh_error_msg("bad index i = " << i);
01592         }
01593 
01594 
01595     case NINTH:
01596       switch (i)
01597         {
01598         case 0:
01599           return -.9999999999999998+
01600             (-48.92142857142856+
01601              (-711.9080357142856+
01602               (-4866.074999999999+
01603                (-18264.8671875+
01604                 (-39858.07499999999+
01605                  (-50376.17812499999+
01606                   (-34164.06428571428-9608.643080357141*v)*v)*v)*v)*v)*v)*v)*v;
01607 
01608         case 1:
01609           return 25.46071428571428+
01610             (523.5267857142855+
01611              (4361.464285714284+
01612               (19477.96874999999+
01613                (51479.92968749998+
01614                 (83037.65624999997+
01615                  (80269.73437499997+
01616                   (42705.08035714284+9608.643080357139*v)*v)*v)*v)*v)*v)*v)*v;
01617 
01618         case 2:
01619           return 10.12500000000002+
01620             (492.7982142857151+
01621              (7119.466071428583+
01622               (48200.56875000008+
01623                (178735.9921875003+
01624                 (384187.5562500006+
01625                  (476636.1468750008+
01626                   (316017.5946428576+86477.78772321442*v)*v)*v)*v)*v)*v)*v)*v;
01627 
01628         case 3:
01629           return -46.28571428571434+
01630             (-2237.914285714288+
01631              (-32031.73928571432+
01632               (-214253.1000000003+
01633                (-782604.2812500009+
01634                 (-1651895.775000002+
01635                  (-2006189.775000002+
01636                   (-1298234.442857144-345911.1508928576*v)*v)*v)*v)*v)*v)*v)*v;
01637 
01638         case 4:
01639           return 126.+
01640             (6038.1+
01641              (85360.8375+
01642               (562004.325+
01643                (2014021.96875+
01644                 (4158525.825+
01645                  (4929115.275+
01646                   (3108929.85+807126.01875*v)*v)*v)*v)*v)*v)*v)*v;
01647 
01648         case 5:
01649           return -226.7999999999999+
01650             (-10732.49999999999+
01651              (-149126.0624999999+
01652               (-961004.2499999995+
01653                (-3359744.578124998+
01654                 (-6753729.374999997+
01655                  (-7788932.156249996+
01656                   (-4782968.999999998-1210689.028124999*v)*v)*v)*v)*v)*v)*v)*v;
01657 
01658         case 6:
01659           return 283.5+
01660             (13160.475+
01661              (178213.1625+
01662               (1113994.0125+
01663                (3769397.015624999+
01664                 (7336100.137499999+
01665                  (8207441.943749999+
01666                   (4902543.224999999+1210689.028125*v)*v)*v)*v)*v)*v)*v)*v;
01667 
01668         case 7:
01669           return -252.0000000000001+
01670             (-11320.2+
01671              (-146952.2250000001+
01672               (-877643.1000000003+
01673                (-2844398.531250001+
01674                 (-5327696.025000002+
01675                  (-5766134.850000002+
01676                   (-3348078.300000001-807126.0187500003*v)*v)*v)*v)*v)*v)*v)*v;
01677 
01678         case 8:
01679           return 162.+
01680             (6791.271428571428+
01681              (81375.92678571428+
01682               (453820.725+
01683                (1391547.09375+
01684                 (2493344.025+
01685                  (2604060.9+
01686                   (1469054.764285714+345911.1508928571*v)*v)*v)*v)*v)*v)*v)*v;
01687 
01688         case 9:
01689           return -81.00000000000004+
01690             (-2666.635714285716+
01691              (-27608.92232142859+
01692               (-139731.0750000001+
01693                (-400169.7421875002+
01694                 (-682015.9500000004+
01695                  (-685891.0406250004+
01696                   (-375804.7071428573-86477.78772321433*v)*v)*v)*v)*v)*v)*v)*v;
01697 
01698         default:
01699           libmesh_error_msg("bad index i = " << i);
01700         }
01701 
01702 
01703     case TENTH:
01704       switch (i)
01705         {
01706         case 0:
01707           return 1.+
01708             (56.57936507936509+
01709              (969.4940476190478+
01710               (7977.072310405645+
01711                (37109.37500000001+
01712                 (104618.0555555556+
01713                  (182291.6666666667+
01714                   (191798.9417989418+
01715                    (111607.1428571429+27557.3192239859*v)*v)*v)*v)*v)*v)*v)*v)*v;
01716 
01717         case 1:
01718           return 29.28968253968254+
01719             (702.9087301587303+
01720              (6952.298280423282+
01721               (37664.57231040565+
01722                (124291.087962963+
01723                 (260868.0555555556+
01724                  (350115.7407407408+
01725                   (291005.2910052911+
01726                    (136408.7301587302+27557.3192239859*v)*v)*v)*v)*v)*v)*v)*v)*v;
01727 
01728         case 2:
01729           return -11.11111111111111+
01730             (-626.190476190476+
01731              (-10671.49470899471+
01732               (-87187.38977072308+
01733                (-402025.4629629629+
01734                 (-1121180.555555555+
01735                  (-1928240.74074074+
01736                   (-1997354.497354497+
01737                    (-1140873.015873016-275573.1922398588*v)*v)*v)*v)*v)*v)*v)*v)*v;
01738 
01739         case 3:
01740           return 56.24999999999993+
01741             (3154.464285714282+
01742              (53393.30357142851+
01743               (432433.5317460312+
01744                (1972612.84722222+
01745                 (5430729.16666666+
01746                  (9199652.777777767+
01747                   (9365079.365079354+
01748                    (5245535.714285708+1240079.365079364*v)*v)*v)*v)*v)*v)*v)*v)*v;
01749 
01750         case 4:
01751           return -171.4285714285714+
01752             (-9552.380952380949+
01753              (-160278.5714285714+
01754               (-1283804.232804232+
01755                (-5778472.22222222+
01756                 (-15662499.99999999+
01757                  (-26069444.44444444+
01758                   (-26031746.03174602+
01759                    (-14285714.28571428-3306878.306878306*v)*v)*v)*v)*v)*v)*v)*v)*v;
01760 
01761         case 5:
01762           return 350.0000000000001+
01763             (19336.11111111112+
01764              (320686.8055555557+
01765               (2531768.518518519+
01766                (11203732.63888889+
01767                 (29794791.66666668+
01768                  (48586805.55555557+
01769                   (47500000.00000002+
01770                    (25520833.33333334+5787037.037037039*v)*v)*v)*v)*v)*v)*v)*v)*v;
01771 
01772         case 6:
01773           return -504.0000000000003+
01774             (-27508.00000000002+
01775              (-448875.0000000003+
01776               (-3474944.444444447+
01777                (-15041319.44444445+
01778                 (-39072083.33333336+
01779                  (-62222222.22222226+
01780                   (-59444444.44444448+
01781                    (-31250000.00000002-6944444.444444449*v)*v)*v)*v)*v)*v)*v)*v)*v;
01782 
01783         case 7:
01784           return 525.0000000000002+
01785             (28129.16666666668+
01786              (448056.2500000002+
01787               (3373087.962962964+
01788                (14176475.69444445+
01789                 (35773958.33333335+
01790                  (55440972.22222224+
01791                   (51666666.66666669+
01792                    (26562500.00000001+5787037.037037039*v)*v)*v)*v)*v)*v)*v)*v)*v;
01793 
01794         case 8:
01795           return -399.9999999999999+
01796             (-20765.07936507936+
01797              (-317919.8412698412+
01798               (-2294915.343915343+
01799                (-9270138.888888886+
01800                 (-22579166.66666666+
01801                  (-33930555.55555554+
01802                   (-30793650.79365078+
01803                    (-15476190.47619047-3306878.306878306*v)*v)*v)*v)*v)*v)*v)*v)*v;
01804 
01805         case 9:
01806           return 224.9999999999997+
01807             (10930.35714285713+
01808              (155254.0178571427+
01809               (1050662.698412697+
01810                (4026519.097222217+
01811                 (9399479.166666656+
01812                  (13647569.44444443+
01813                   (12043650.79365078+
01814                    (5915178.571428564+1240079.365079364*v)*v)*v)*v)*v)*v)*v)*v)*v;
01815 
01816         case 10:
01817           return -99.99999999999998+
01818             (-3857.936507936507+
01819              (-47567.26190476189+
01820               (-292742.9453262786+
01821                (-1048784.722222222+
01822                 (-2329513.888888888+
01823                  (-3256944.444444444+
01824                   (-2791005.29100529+
01825                    (-1339285.714285714-275573.1922398588*v)*v)*v)*v)*v)*v)*v)*v)*v;
01826 
01827         default:
01828           libmesh_error_msg("bad index i = " << i);
01829         }
01830 
01831 
01832     case ELEVENTH:
01833       switch (i)
01834         {
01835         case 0:
01836           return -.9999999999999994+
01837             (-64.43730158730155+
01838              (-1275.779345238094+
01839               (-12338.01201499117+
01840                (-68930.87539958109+
01841                 (-240206.4480902776+
01842                  (-539167.6189293978+
01843                   (-779744.6068121688+
01844                    (-701770.1461309519+
01845                     (-357382.9447889107-78624.24785356036*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01846 
01847         case 1:
01848           return 33.2186507936508+
01849             (914.9568650793652+
01850              (10529.28835648148+
01851               (67482.7123346561+
01852                (269102.9154748127+
01853                 (702350.1214583334+
01854                  (1221444.149890046+
01855                   (1403540.292261905+
01856                    (1023414.796440972+
01857                     (428859.5337466932+78624.24785356042*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01858 
01859         case 2:
01860           return 12.1+
01861             (777.2713492063492+
01862              (15323.969375+
01863               (147397.3637345679+
01864                (818004.6489266424+
01865                 (2827608.196111111+
01866                  (6286078.696244213+
01867                   (8988328.740343915+
01868                    (7982635.412239583+
01869                     (4002688.981635802+864866.7263891644*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01870 
01871         case 3:
01872           return -67.22222222222232+
01873             (-4301.74206349207+
01874              (-84371.62344576732+
01875               (-806241.7181878318+
01876                (-4438664.17533345+
01877                 (-15197594.39114585+
01878                  (-33411814.74551509+
01879                   (-47167460.12480165+
01880                    (-41287476.93070442+
01881                     (-20370827.85296795-4324333.631945828*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01882 
01883         case 4:
01884           return 226.8750000000001+
01885             (14449.05654761906+
01886              (281570.0790178573+
01887               (2668897.916302912+
01888                (14550507.15751076+
01889                 (49254931.92812503+
01890                  (106890177.8054688+
01891                   (148732739.4557541+
01892                    (128160772.9371653+
01893                     (62184632.39327054+12973000.89583747*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01894 
01895         case 5:
01896           return -518.5714285714285+
01897             (-32822.69047619047+
01898              (-634337.9624999999+
01899               (-5951161.742195766+
01900                (-32053476.18047288+
01901                 (-107015202.0322916+
01902                  (-228727286.4230902+
01903                   (-313117079.7464285+
01904                    (-265269115.2375+
01905                     (-126513562.4552744-25946001.79167493*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01906 
01907         case 6:
01908           return 847.0000000000005+
01909             (53166.72777777781+
01910              (1016244.195694445+
01911               (9406923.838888894+
01912                (49889787.88686346+
01913                 (163758669.9375001+
01914                  (343777378.7658683+
01915                   (462062476.8222225+
01916                    (384394597.5432294+
01917                     (180121004.1736112+36324402.50834493*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01918 
01919         case 7:
01920           return -1016.400000000001+
01921             (-63054.71333333338+
01922              (-1186862.682500001+
01923               (-10787827.71203705+
01924                (-56070259.81307875+
01925                 (-180193958.0397918+
01926                  (-370348948.3898267+
01927                   (-487666454.2750004+
01928                    (-397903672.8562503+
01929                     (-183123020.9098381-36324402.50834493*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01930 
01931         case 8:
01932           return 907.4999999999995+
01933             (55300.60119047616+
01934              (1017370.052678571+
01935               (9010082.051521159+
01936                (45578544.75252147+
01937                 (142643877.2687499+
01938                  (285964084.8567707+
01939                   (368067808.7646823+
01940                    (294217133.7654016+
01941                     (132946455.4614748+25946001.79167492*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01942 
01943         case 9:
01944           return -604.9999999999997+
01945             (-35757.90079365078+
01946              (-633654.9006944442+
01947               (-5395757.537499998+
01948                (-26303245.82287532+
01949                 (-79634435.01406247+
01950                  (-155083710.9469617+
01951                   (-194666785.3843253+
01952                    (-152284121.7104166+
01953                     (-67545376.56510414-12973000.89583746*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01954 
01955         case 10:
01956           return 302.4999999999999+
01957             (16769.78373015873+
01958              (276810.9617559523+
01959               (2216865.917570546+
01960                (10275947.41824432+
01961                 (29863105.35694444+
01962                  (56249470.99094327+
01963                   (68702588.44748676+
01964                    (52545039.69155505+
01965                     (22872508.46649029+4324333.631945821*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01966 
01967         case 11:
01968           return -121.0000000000002+
01969             (-5376.9134920635+
01970              (-77345.59839285725+
01971               (-564323.0784171084+
01972                (-2447317.912381507+
01973                 (-6769146.883506954+
01974                  (-12277707.14086229+
01975                   (-14559958.38538362+
01976                    (-10877437.26502978+
01977                     (-4645978.282255849-864866.7263891657*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01978 
01979         default:
01980           libmesh_error_msg("bad index i = " << i);
01981         }
01982 
01983 
01984     case TWELFTH:
01985       switch (i)
01986         {
01987         case 0:
01988           return .9999999999999998+
01989             (72.47705627705626+
01990              (1633.311428571428+
01991               (18226.50666666666+
01992                (119469.4285714285+
01993                 (498933.257142857+
01994                  (1381121.28+
01995                   (2566761.325714285+
01996                    (3167275.885714285+
01997                     (2488319.999999999+
01998                      (1126142.537142857+223367.1148051948*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
01999 
02000         case 1:
02001           return 37.23852813852813+
02002             (1161.351341991342+
02003              (15303.19142857143+
02004               (113802.0495238095+
02005                (535247.1428571427+
02006                 (1682751.497142857+
02007                  (3627037.439999999+
02008                   (5382117.668571427+
02009                    (5406763.885714285+
02010                     (3512085.942857142+
02011                      (1330895.725714285+223367.1148051948*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02012 
02013         case 2:
02014           return -13.09090909090911+
02015             (-946.410389610391+
02016              (-21256.04571428574+
02017               (-236192.3657142861+
02018                (-1540134.857142859+
02019                 (-6392069.485714295+
02020                  (-17564843.52000003+
02021                   (-32365222.76571433+
02022                    (-39542959.5428572+
02023                     (-30712978.28571433+
02024                      (-13718463.63428573-2680405.377662341*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02025 
02026         case 3:
02027           return 79.19999999999997+
02028             (5708.502857142855+
02029              (127693.2342857142+
02030               (1411707.84+
02031                (9148841.14285714+
02032                 (37695557.21142856+
02033                  (102712458.24+
02034                   (187435903.2685714+
02035                    (226508214.8571428+
02036                     (173784268.7999999+
02037                      (76577692.52571426+14742229.57714285*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02038 
02039         case 4:
02040           return -293.3333333333333+
02041             (-21064.38095238095+
02042              (-468865.8285714286+
02043               (-5151708.952380953+
02044                (-33141236.57142857+
02045                 (-135381015.7714286+
02046                  (-365282265.6+
02047                   (-659300527.5428572+
02048                    (-787148039.3142857+
02049                     (-596059282.2857143+
02050                      (-259012783.5428571-49140765.25714286*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02051 
02052         case 5:
02053           return 742.4999999999988+
02054             (53071.7142857142+
02055              (1174043.699999998+
02056               (12802072.11428569+
02057                (81618641.99999987+
02058                 (329991648.6857138+
02059                  (880198099.1999986+
02060                   (1568889314.742855+
02061                    (1848249446.399997+
02062                     (1380164461.714284+
02063                      (591224831.9999991+110566721.8285713*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02064 
02065         case 6:
02066           return -1357.714285714284+
02067             (-96463.54285714276+
02068              (-2117125.851428569+
02069               (-22864004.02285712+
02070                (-144144041.142857+
02071                 (-575530346.0571423+
02072                  (-1514417679.359998+
02073                   (-2660955375.908569+
02074                    (-3088957791.085711+
02075                     (-2272760393.142855+
02076                      (-959473441.6457133-176906754.9257141*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02077 
02078         case 7:
02079           return 1848.+
02080             (130241.6+
02081              (2828541.120000001+
02082               (30164287.36000001+
02083                (187472016.+
02084                 (737031225.6000001+
02085                  (1908272701.44+
02086                   (3298536898.560001+
02087                    (3767714611.200001+
02088                     (2729189376.+
02089                      (1135151677.44+206391214.08*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02090 
02091         case 8:
02092           return -1900.800000000001+
02093             (-132442.1485714286+
02094              (-2834453.211428572+
02095               (-29714158.08000001+
02096                (-181251195.4285715+
02097                 (-698873880.1371431+
02098                  (-1774822855.680001+
02099                   (-3011083328.365715+
02100                    (-3379195435.885715+
02101                     (-2407897497.600001+
02102                      (-986500862.5371432-176906754.9257143*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02103 
02104         case 9:
02105           return 1485.000000000001+
02106             (101688.4285714286+
02107              (2129312.185714287+
02108               (21783070.2857143+
02109                (129558540.8571429+
02110                 (487399661.4857146+
02111                  (1209468153.600001+
02112                   (2008852728.685716+
02113                    (2211622370.742859+
02114                     (1549085842.285715+
02115                      (625009108.1142861+110566721.8285715*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02116 
02117         case 10:
02118           return -879.9999999999996+
02119             (-58499.8095238095+
02120              (-1181984.914285714+
02121               (-11651825.06666666+
02122                (-66923129.14285712+
02123                 (-243989962.9714285+
02124                  (-589005043.1999998+
02125                   (-955168885.028571+
02126                    (-1030036509.257142+
02127                     (-708673535.9999997+
02128                      (-281535634.2857142-49140765.25714284*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02129 
02130         case 11:
02131           return 395.9999999999998+
02132             (24740.91428571427+
02133              (467174.4685714284+
02134               (4342689.325714284+
02135                (23761844.57142856+
02136                 (83264161.37142853+
02137                  (194582062.0799999+
02138                   (307216518.582857+
02139                    (324021920.9142856+
02140                     (218829970.2857142+
02141                      (85586832.8228571+14742229.57714285*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02142 
02143         case 12:
02144           return -144.0000000000002+
02145             (-7268.696103896113+
02146              (-120015.3600000001+
02147               (-1017966.994285716+
02148                (-5214864.000000006+
02149                 (-17396664.68571431+
02150                  (-39148945.92000005+
02151                   (-60006903.22285722+
02152                    (-61809868.80000008+
02153                     (-40950637.71428576+
02154                      (-15765995.52000002-2680405.377662341*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02155 
02156         default:
02157           libmesh_error_msg("bad index i = " << i);
02158         }
02159 
02160 
02161     case THIRTEENTH:
02162       switch (i)
02163         {
02164         case 0:
02165           return -1.+
02166             (-80.68347763347765+
02167              (-2044.462258297259+
02168               (-25942.2157164903+
02169                (-195933.4211304931+
02170                 (-958398.5214740412+
02171                  (-3173506.650750547+
02172                   (-7259032.308898811+
02173                    (-11486892.61199839+
02174                     (-12346784.01976549+
02175                      (-8601592.867103291+
02176                       (-3501996.921969848-632304.9998001114*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02177 
02178         case 1:
02179           return 41.34173881673884+
02180             (1443.658316498317+
02181              (21501.124045665+
02182               (182688.9526208849+
02183                (994598.8556921946+
02184                 (3678547.079260226+
02185                  (9525159.921037011+
02186                   (17469603.51956405+
02187                    (22598998.22978734+
02188                     (20166413.89895031+
02189                      (11811756.71224232+
02190                       (4085663.075631491+632304.9998001117*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02191 
02192         case 2:
02193           return 14.0833333333333+
02194             (1133.945087782585+
02195              (28654.62116838017+
02196               (362353.3209476036+
02197                (2725399.981313606+
02198                 (13265700.68549035+
02199                  (43674200.44979463+
02200                   (99236897.21980192+
02201                    (155839062.2764586+
02202                     (166048415.8555637+
02203                      (114536999.7566909+
02204                       (46109626.13926956+8219964.997401429*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02205 
02206         case 3:
02207           return -92.18181818181805+
02208             (-7404.029004328994+
02209              (-186493.2485281383+
02210               (-2348815.46078042+
02211                (-17580908.74629903+
02212                 (-85087791.92399955+
02213                  (-278293001.5682587+
02214                   (-627605520.9915996+
02215                    (-977247224.5855008+
02216                     (-1031431341.958869+
02217                      (-704013624.8070271+
02218                       (-280159753.7575874-49319789.98440861*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02219 
02220         case 4:
02221           return 371.8000000000002+
02222             (29775.036984127+
02223              (747066.9209920639+
02224               (9363907.89718475+
02225                (69688340.39763103+
02226                 (335036414.4353251+
02227                  (1087492542.853534+
02228                   (2431673317.636533+
02229                    (3750776185.102226+
02230                     (3918109445.780044+
02231                      (2644763448.927234+
02232                       (1040093085.825045+180839229.9428319*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02233 
02234         case 5:
02235           return -1032.777777777779+
02236             (-82410.07804232813+
02237              (-2057912.1728836+
02238               (-25644457.74177325+
02239                (-189543869.9955658+
02240                 (-904096807.162213+
02241                  (-2908738078.894543+
02242                   (-6440986214.655237+
02243                    (-9830892990.478734+
02244                     (-10155071564.15431+
02245                      (-6774886171.378993+
02246                       (-2632334353.014005-452098074.8570801*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02247 
02248         case 6:
02249           return 2091.375+
02250             (166125.1892857143+
02251              (4123916.218616072+
02252               (51020732.59433532+
02253                (373953022.277135+
02254                 (1766886624.747501+
02255                  (5625702404.785355+
02256                   (12318759910.9515+
02257                    (18582195606.11107+
02258                     (18963235625.43443+
02259                      (12496303574.24485+
02260                       (4795984784.637706+813776534.7427433*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02261 
02262         case 7:
02263           return -3186.857142857142+
02264             (-251663.5333333333+
02265              (-6200036.526666666+
02266               (-76008876.2598148+
02267                (-551305314.9444829+
02268                 (-2574950087.743402+
02269                  (-8097779517.245471+
02270                   (-17504674905.19222+
02271                    (-26060004891.47182+
02272                     (-26247363320.78761+
02273                      (-17074614556.61409+
02274                       (-6471690311.800277-1085035379.656991*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02275 
02276         case 8:
02277           return 3717.999999999998+
02278             (291305.8365079364+
02279              (7104538.462460314+
02280               (86064016.71082448+
02281                (615956862.0470787+
02282                 (2836014413.233886+
02283                  (8787496836.24099+
02284                   (18714249266.16391+
02285                    (27455001535.18193+
02286                     (27263598620.87599+
02287                      (17498356184.17243+
02288                       (6548734244.083612+1085035379.656991*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02289 
02290         case 9:
02291           return -3346.199999999998+
02292             (-259275.2128571427+
02293              (-6234980.857857139+
02294               (-74314814.73490075+
02295                (-522619068.6865779+
02296                 (-2363180534.798538+
02297                  (-7192365653.835081+
02298                   (-15054787917.48891+
02299                    (-21728631050.65575+
02300                     (-21251474605.34373+
02301                      (-13449722236.25113+
02302                       (-4969333632.275211-813776534.7427428*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02303 
02304         case 10:
02305           return 2323.75+
02306             (177031.3561507936+
02307              (4169023.658209325+
02308               (48551880.14924492+
02309                (333412303.9596687+
02310                 (1473130923.654975+
02311                  (4387072985.810989+
02312                   (9001260757.284597+
02313                    (12758505432.0885+
02314                     (12276977202.42297+
02315                      (7657681228.792217+
02316                       (2792842545.270953+452098074.8570795*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02317 
02318         case 11:
02319           return -1239.333333333332+
02320             (-91731.50105820099+
02321              (-2087506.053492062+
02322               (-23468266.89172691+
02323                (-155895856.7716664+
02324                 (-668508962.9727646+
02325                  (-1939086147.461385+
02326                   (-3888161778.825734+
02327                    (-5402206035.376699+
02328                     (-5109035910.537828+
02329                      (-3139128681.07864+
02330                       (-1129977673.488937-180839229.9428317*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02331 
02332         case 12:
02333           return 507.0000000000001+
02334             (35329.52316017317+
02335              (753439.2988852815+
02336               (8004952.597863758+
02337                (50738883.86584271+
02338                 (209350649.6495577+
02339                  (588284837.5399432+
02340                   (1149033869.66415+
02341                    (1561914935.552244+
02342                     (1450272246.013992+
02343                      (877362472.4445357+
02344                       (311677726.0553165+49319789.98440869*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02345 
02346         case 13:
02347           return -168.9999999999998+
02348             (-9579.507720057708+
02349              (-179166.9826911975+
02350               (-1739358.918309081+
02351                (-10328458.8186393+
02352                 (-40580690.36360362+
02353                  (-109813061.9461516+
02354                   (-208208252.9774634+
02355                    (-276362669.3617079+
02356                     (-251684443.4798346+
02357                      (-149848802.0532203+
02358                       (-52529953.82954764-8219964.997401437*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02359 
02360         default:
02361           libmesh_error_msg("bad index i = " << i);
02362         }
02363 
02364 
02365     case FOURTEENTH:
02366       switch (i)
02367         {
02368         case 0:
02369           return 1.000000000000001+
02370             (89.0437451437452+
02371              (2511.452929292931+
02372               (35805.84699214368+
02373                (307157.435133745+
02374                 (1728831.305617285+
02375                  (6694701.358837453+
02376                   (18287612.31917697+
02377                    (35556011.50111113+
02378                     (48922521.07901238+
02379                      (46544481.35786011+
02380                       (29116191.77122336+
02381                        (10770623.78528994+1784482.047266973*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02382 
02383         case 1:
02384           return 45.52187257187257+
02385             (1763.345698005698+
02386              (29365.83817340067+
02387               (281531.7950991395+
02388                (1747850.189814815+
02389                 (7467146.756049383+
02390                  (22696362.13811728+
02391                   (49892955.87572016+
02392                    (79586280.47222222+
02393                     (91235685.94979424+
02394                      (73234323.81481481+
02395                       (39058306.0345679+
02396                        (12427642.8291807+1784482.047266972*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02397 
02398         case 2:
02399           return -15.07692307692307+
02400             (-1340.186169386169+
02401              (-37713.82505050504+
02402               (-536175.4596184062+
02403                (-4584016.86584362+
02404                 (-25698683.17679012+
02405                  (-99057107.66633743+
02406                   (-269159338.175144+
02407                    (-520164399.5644443+
02408                     (-710821314.4148147+
02409                      (-671058896.060576+
02410                       (-416148497.0228506+
02411                        (-152445752.0379498-24982748.6617376*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02412 
02413         case 3:
02414           return 106.1666666666664+
02415             (9418.0887205387+
02416              (264331.1471464641+
02417               (3745715.752540209+
02418                (31899113.16882709+
02419                 (178017355.746049+
02420                  (682587693.1574368+
02421                   (1843708348.548309+
02422                    (3539222709.936659+
02423                     (4800352165.04608+
02424                      (4494355579.027644+
02425                       (2761777312.15335+
02426                        (1001668012.031962+162387866.3012941*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02427 
02428         case 4:
02429           return -463.2727272727266+
02430             (-40998.84444444439+
02431              (-1147094.434747473+
02432               (-16192604.75699212+
02433                (-137271541.0485595+
02434                 (-762026508.285431+
02435                  (-2904385776.815469+
02436                   (-7792130969.395215+
02437                    (-14846386660.68442+
02438                     (-19971946670.39009+
02439                      (-18532980221.46894+
02440                       (-11280038782.78319+
02441                        (-4049754543.269010-649551465.2051768*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02442 
02443         case 5:
02444           return 1401.399999999998+
02445             (123664.7844444442+
02446              (3447032.944444439+
02447               (48436585.99197523+
02448                (408409296.5789602+
02449                 (2253197088.95512+
02450                  (8528314129.288823+
02451                   (22705190993.54646+
02452                    (42899311094.9277+
02453                     (57192419912.08138+
02454                      (52567132654.44024+
02455                       (31676286194.03451+
02456                        (11255301855.62796+1786266529.314236*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02457 
02458         case 6:
02459           return -3114.222222222221+
02460             (-273841.7629629629+
02461              (-7598211.423703702+
02462               (-106176407.7618107+
02463                (-889486589.4962961+
02464                 (-4871457715.624196+
02465                  (-18289286459.60543+
02466                   (-48264587628.2762+
02467                    (-90336942561.1022+
02468                     (-119250255953.088+
02469                      (-108490582744.8178+
02470                       (-64696178115.65826+
02471                        (-22747557434.53234-3572533058.628476*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02472 
02473         case 7:
02474           return 5255.250000000005+
02475             (460064.2666666671+
02476              (12692565.01916668+
02477               (176150443.0362965+
02478                (1464070863.601545+
02479                 (7947918838.465933+
02480                  (29555009192.81537+
02481                   (77204332615.9018+
02482                    (142978921074.0568+
02483                     (186702987302.2742+
02484                      (168009721889.5444+
02485                       (99106545732.11268+
02486                        (34476766736.71312+5358799587.942721*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02487 
02488         case 8:
02489           return -6864.000000000005+
02490             (-597468.2666666671+
02491              (-16363002.50666668+
02492               (-225121477.611852+
02493                (-1852739107.920989+
02494                 (-9950118584.456304+
02495                  (-36579967858.71213+
02496                   (-94431878855.5576+
02497                    (-172801677847.3068+
02498                     (-222974303851.9113+
02499                      (-198322454721.1221+
02500                       (-115675079151.9764+
02501                        (-39808225510.43164-6124342386.220252*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02502 
02503         case 9:
02504           return 7007.+
02505             (605244.1888888889+
02506              (16415290.29777778+
02507               (223285445.4038272+
02508                (1814617394.563426+
02509                 (9615694831.261296+
02510                  (34866622054.4775+
02511                   (88774809190.10321+
02512                    (160266060424.7967+
02513                     (204118806975.1876+
02514                      (179312358692.2474+
02515                       (103371712751.0874+
02516                        (35187627906.54222+5358799587.942716*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02517 
02518         case 10:
02519           return -5605.599999999996+
02520             (-478963.4577777775+
02521              (-12815269.44444444+
02522               (-171640517.3604937+
02523                (-1371951477.497941+
02524                 (-7147541864.43802+
02525                  (-25485507407.83126+
02526                   (-63848350696.57444+
02527                    (-113517642944.8444+
02528                     (-142532726188.3604+
02529                      (-123573040616.0328+
02530                       (-70383067474.29131+
02531                        (-23695372327.63784-3572533058.628475*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02532 
02533         case 11:
02534           return 3503.500000000003+
02535             (294447.2611111113+
02536              (7720974.358611117+
02537               (101146405.0471606+
02538                (790417783.0809677+
02539                 (4028557079.079386+
02540                  (14071398696.88138+
02541                   (34590639213.49616+
02542                    (60449325371.26783+
02543                     (74730994261.10376+
02544                      (63894320392.36532+
02545                       (35941453213.00941+
02546                        (11966163025.45713+1786266529.31424*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02547 
02548         case 12:
02549           return -1698.666666666669+
02550             (-138798.752861953+
02551              (-3521413.568484853+
02552               (-44599342.83238314+
02553                (-337623011.738272+
02554                 (-1672128961.184199+
02555                  (-5694412271.43013+
02556                   (-13691005583.17104+
02557                    (-23467659366.85336+
02558                     (-28527575611.29551+
02559                      (-24035365582.07213+
02560                       (-13347998549.55889+
02561                        (-4394414504.398299-649551465.2051785*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02562 
02563         case 13:
02564           return 637.0000000000005+
02565             (49076.86565656569+
02566              (1169569.725050506+
02567               (14025401.12147027+
02568                (101447432.0348252+
02569                 (483898256.0019139+
02570                  (1597498806.855073+
02571                   (3742961181.708809+
02572                    (6278720198.481116+
02573                     (7494910301.597536+
02574                      (6218035822.71984+
02575                       (3408014739.270754+
02576                        (1109374249.884864+162387866.3012945*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02577 
02578         case 14:
02579           return -195.9999999999997+
02580             (-12356.57404817403+
02581              (-258935.5802020198+
02582               (-2840808.212210995+
02583                (-19261146.08559668+
02584                 (-87507110.40641962+
02585                  (-278204754.9117691+
02586                   (-632709040.3499579+
02587                    (-1036229385.084443+
02588                     (-1212999534.859257+
02589                      (-990221053.9430438+
02590                       (-535453868.1829846+
02591                        (-172329980.5646387-24982748.66173757*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v)*v;
02592 
02593         default:
02594           libmesh_error_msg("bad index i = " << i);
02595         }
02596 
02597 
02598       // provided the constructor worked fine, we should never end up here.
02599     default:
02600       libmesh_error_msg("Lagrange polynomials only defined up to 15.");
02601     } // switch (o_radial)
02602 
02603   libmesh_error_msg("We'll never get here!");
02604   return 0.;
02605 } // lagrange_eval_deriv()
02606 
02607 } // anonymous namespace
02608 
02609 
02610 
02611   // Specialize the eval() function for 1, 2, and 3 dimensions and the CARTESIAN mapping type
02612   // to call the local helper function from the anonymous namespace.
02613 template <> Real InfFE<1,LAGRANGE,CARTESIAN>::eval(Real v, Order o, unsigned i) { return lagrange_eval(v, o, i); }
02614 template <> Real InfFE<2,LAGRANGE,CARTESIAN>::eval(Real v, Order o, unsigned i) { return lagrange_eval(v, o, i); }
02615 template <> Real InfFE<3,LAGRANGE,CARTESIAN>::eval(Real v, Order o, unsigned i) { return lagrange_eval(v, o, i); }
02616 
02617 // Specialize the eval_deriv() function for 1, 2, and 3 dimensions and the CARTESIAN mapping type
02618 // to call the local helper function from the anonymous namespace.
02619 template <> Real InfFE<1,LAGRANGE,CARTESIAN>::eval_deriv(Real v, Order o, unsigned i) { return lagrange_eval_deriv(v, o, i); }
02620 template <> Real InfFE<2,LAGRANGE,CARTESIAN>::eval_deriv(Real v, Order o, unsigned i) { return lagrange_eval_deriv(v, o, i); }
02621 template <> Real InfFE<3,LAGRANGE,CARTESIAN>::eval_deriv(Real v, Order o, unsigned i) { return lagrange_eval_deriv(v, o, i); }
02622 
02623 
02624 } // namespace libMesh
02625 
02626 #endif // LIBMESH_ENABLE_INFINITE_ELEMENTS