/Users/jack/Code/basso_dev/inc/quadrature_rules.h

Go to the documentation of this file.
00001 
00011 #ifndef _QUADRATURE_RULES_BASSO_H_
00012 #define _QUADRATURE_RULES_BASSO_H_
00013 
00014 // std includes
00015 #include <iostream>
00016 
00017 // Basso includes
00018 #include "basso.h"
00019 #include "QuadraturePoint.h"
00020 
00021 #define QuadratureRule Array< QuadraturePoint >
00022 
00023 namespace basso {
00024 
00026         void quadrature_gauss1d( QuadratureRule &qr )
00027         {
00028                 int npts=vect_size(qr);
00029                 switch (npts) {
00030 
00031                 case 2:
00032                 qr[0]=QuadraturePoint( Point( -0.577350269189626 ), 1.0 );
00033                 qr[1]=QuadraturePoint( Point(  0.577350269189626 ), 1.0 );
00034                 break;
00035 
00036                 case 3:
00037                 qr[0]=QuadraturePoint( Point( -0.774596669241483 ), 0.555555555555556 );
00038                 qr[1]=QuadraturePoint( Point(  0.000000000000000 ), 0.888888888888889 );
00039                 qr[2]=QuadraturePoint( Point(  0.774596669241483 ), 0.555555555555556 );
00040                 break;
00041 
00042                 case 4:
00043                 qr[0]=QuadraturePoint( Point( -0.861134311594053 ), 0.347854845137454 );
00044                 qr[1]=QuadraturePoint( Point( -0.339981043584856 ), 0.652145154862546 );
00045                 qr[2]=QuadraturePoint( Point(  0.339981043584856 ), 0.652145154862546 );
00046                 qr[3]=QuadraturePoint( Point(  0.861134311594053 ), 0.347854845137454 );
00047                 break;
00048 
00049                 case 5:
00050                 qr[0]=QuadraturePoint( Point( -0.906179845938664 ), 0.236726885056189 );
00051                 qr[1]=QuadraturePoint( Point( -0.538469310105683 ), 0.478628670499366 );
00052                 qr[2]=QuadraturePoint( Point(  0.000000000000000 ), 0.568888888888889 );
00053                 qr[3]=QuadraturePoint( Point(  0.538469310105683 ), 0.478628670499366 );
00054                 qr[4]=QuadraturePoint( Point(  0.906179845938664 ), 0.236726885056189 );
00055                 break;
00056 
00057                 case 6:
00058                 qr[0]=QuadraturePoint( Point(  0.932469514203152 ), 0.171324492379170 );
00059                 qr[1]=QuadraturePoint( Point( -0.932469514203152 ), 0.171324492379170 );
00060                 qr[2]=QuadraturePoint( Point(  0.661209386466265 ), 0.360761573048139 );
00061                 qr[3]=QuadraturePoint( Point( -0.661209386466265 ), 0.360761573048139 );
00062                 qr[4]=QuadraturePoint( Point(  0.238619186003152 ), 0.467913934572691 );
00063                 qr[5]=QuadraturePoint( Point( -0.238619186003152 ), 0.467913934572691 );
00064                 break;
00065 
00066                 case 7:
00067                 qr[0]=QuadraturePoint( Point(  0.949107912342759 ), 0.129484966168870 );
00068                 qr[1]=QuadraturePoint( Point( -0.949107912342759 ), 0.129484966168870 );
00069                 qr[2]=QuadraturePoint( Point(  0.741531185599394 ), 0.279705391489277 );
00070                 qr[3]=QuadraturePoint( Point( -0.741531185599394 ), 0.279705391489277 );
00071                 qr[4]=QuadraturePoint( Point(  0.405845151377397 ), 0.381830050505119 );
00072                 qr[5]=QuadraturePoint( Point( -0.405845151377397 ), 0.381830050505119 );
00073                 qr[6]=QuadraturePoint( Point(  0.000000000000000 ), 0.417959183673469 );
00074                 break;
00075 
00076                 case 8:
00077                 qr[0]=QuadraturePoint( Point(  0.960289856497536 ), 0.101228536290376 );
00078                 qr[1]=QuadraturePoint( Point( -0.960289856497536 ), 0.101228536290376 );
00079                 qr[2]=QuadraturePoint( Point(  0.796666477413627 ), 0.222381034453374 );
00080                 qr[3]=QuadraturePoint( Point( -0.796666477413627 ), 0.222381034453374 );
00081                 qr[4]=QuadraturePoint( Point(  0.525532409916329 ), 0.313706645877887 );
00082                 qr[5]=QuadraturePoint( Point( -0.525532409916329 ), 0.313706645877887 );
00083                 qr[6]=QuadraturePoint( Point(  0.183434642495650 ), 0.362683783378362 );
00084                 qr[7]=QuadraturePoint( Point( -0.183434642495650 ), 0.362683783378362 );
00085                 break;
00086 
00087                 default:
00088                 ErrorMessage("quadrature_gauss1d","too many points");
00089                 break;
00090 
00091                 }
00092         }
00093         
00097         void quadrature_gauss2d( QuadratureRule &qr )
00098         {
00099                 double qrsize=vect_size(qr);
00100                 int npts=static_cast<int>(sqrt(qrsize)+0.5);
00101 
00102                 switch (npts) {
00103                         
00104                         case 1:
00105                         qr[0]=QuadraturePoint( Point( 0.0, 0.0 ), 4.0 );
00106                         break;
00107 
00108                         case 2:
00109                         qr[0]=QuadraturePoint( Point(  0.57735026918963,   0.57735026918963 ), 1.0 );
00110                         qr[1]=QuadraturePoint( Point(  0.57735026918963,  -0.57735026918963 ), 1.0 );
00111                         qr[2]=QuadraturePoint( Point( -0.57735026918963,   0.57735026918963 ), 1.0 );
00112                         qr[3]=QuadraturePoint( Point( -0.57735026918963,  -0.57735026918963 ), 1.0 );
00113                         break;
00114 
00115                         case 3:
00116                         qr[0]=QuadraturePoint( Point(  0.77459666924148,  0.77459666924148 ), 0.30864197530864 );
00117                         qr[1]=QuadraturePoint( Point(  0.77459666924148, -0.77459666924148 ), 0.30864197530864 );
00118                         qr[2]=QuadraturePoint( Point(  0.77459666924148,  0.00000000000000 ), 0.49382716049383 );
00119                         qr[3]=QuadraturePoint( Point( -0.77459666924148,  0.77459666924148 ), 0.30864197530864 );
00120                         qr[4]=QuadraturePoint( Point( -0.77459666924148, -0.77459666924148 ), 0.30864197530864 );
00121                         qr[5]=QuadraturePoint( Point( -0.77459666924148,  0.00000000000000 ), 0.49382716049383 );
00122                         qr[6]=QuadraturePoint( Point(  0.00000000000000,  0.77459666924148 ), 0.49382716049383 );
00123                         qr[7]=QuadraturePoint( Point(  0.00000000000000, -0.77459666924148 ), 0.49382716049383 );
00124                         qr[8]=QuadraturePoint( Point(  0.00000000000000,  0.00000000000000 ), 0.79012345679012 );
00125                         break;
00126 
00127                         case 4:
00128                         qr[0]=QuadraturePoint( Point(  0.86113431159405,   0.86113431159405 ), 0.12100299328560 );
00129                         qr[1]=QuadraturePoint( Point(  0.86113431159405,  -0.86113431159405 ), 0.12100299328560 );
00130                         qr[2]=QuadraturePoint( Point(  0.86113431159405,   0.33998104358486 ), 0.22685185185185 );
00131                         qr[3]=QuadraturePoint( Point(  0.86113431159405,  -0.33998104358486 ), 0.22685185185185 );
00132                         qr[4]=QuadraturePoint( Point( -0.86113431159405,   0.86113431159405 ), 0.12100299328560 );
00133                         qr[5]=QuadraturePoint( Point( -0.86113431159405,  -0.86113431159405 ), 0.12100299328560 );
00134                         qr[6]=QuadraturePoint( Point( -0.86113431159405,   0.33998104358486 ), 0.22685185185185 );
00135                         qr[7]=QuadraturePoint( Point( -0.86113431159405,  -0.33998104358486 ), 0.22685185185185 );
00136                         qr[8]=QuadraturePoint( Point(  0.33998104358486,   0.86113431159405 ), 0.22685185185185 );
00137                         qr[9]=QuadraturePoint( Point(  0.33998104358486,  -0.86113431159405 ), 0.22685185185185 );
00138                         qr[10]=QuadraturePoint( Point(  0.33998104358486,   0.33998104358486 ), 0.42529330301069 );
00139                         qr[11]=QuadraturePoint( Point(  0.33998104358486,  -0.33998104358486 ), 0.42529330301069 );
00140                         qr[12]=QuadraturePoint( Point( -0.33998104358486,   0.86113431159405 ), 0.22685185185185 );
00141                         qr[13]=QuadraturePoint( Point( -0.33998104358486,  -0.86113431159405 ), 0.22685185185185 );
00142                         qr[14]=QuadraturePoint( Point( -0.33998104358486,   0.33998104358486 ), 0.42529330301069 );
00143                         qr[14]=QuadraturePoint( Point( -0.33998104358486,  -0.33998104358486 ), 0.42529330301069 );
00144                         break;
00145                         
00146                         default:
00147                         ErrorMessage("quadrature_gauss2d","too many points");
00148                         break;
00149                         
00150                 }
00151         }
00152         
00159         void tensorial_quadrature_rule( const QuadratureRule &q1, const QuadratureRule &q2,
00160                 QuadratureRule &qr )
00161         {
00162 
00163           QuadratureRule::const_iterator q1Itr, q2Itr;
00164                 Numeric xi, wt1, wt;
00165 
00166                 int n=0;
00167           for ( q1Itr=q1.begin(); q1Itr!=q1.end(); ++q1Itr, ++n ) 
00168                 {
00169 
00170                         wt1 = q1Itr->weight();
00171                         xi = (q1Itr->point()).x();
00172 
00173                         for ( q2Itr=q2.begin(); q2Itr!=q2.end(); ++q2Itr ) 
00174                         {
00175                         Point pt( xi, (q2Itr->point()).x() );
00176                         wt=wt1*(q2Itr->weight( ));
00177                         qr[n]=QuadraturePoint( pt, wt );
00178                         }
00179 
00180                 }
00181         }
00182 
00183         
00185         void quadrature_gauss3d( QuadratureRule &qr )
00186         {
00187                 double qrsize=vect_size(qr);
00188                 int npts=static_cast<int>( pow(qrsize,0.33333333333333333333)+0.5 );
00189                 
00190                 switch (npts) 
00191                 {
00192                         case 1:
00193                         qr[0]=QuadraturePoint( Point( 0.0, 0.0, 0.0 ), 8.0 );
00194                         break;
00195 
00196                         case 2:
00197                         qr[0]=QuadraturePoint( Point( 0.57735026918963,   0.57735026918963,   0.57735026918963 ), 1.0 );
00198                         qr[1]=QuadraturePoint( Point( 0.57735026918963,   0.57735026918963,  -0.57735026918963 ), 1.0 );
00199                         qr[2]=QuadraturePoint( Point( 0.57735026918963,  -0.57735026918963,   0.57735026918963 ), 1.0 );
00200                         qr[3]=QuadraturePoint( Point( 0.57735026918963,  -0.57735026918963,  -0.57735026918963 ), 1.0 );
00201                         qr[4]=QuadraturePoint( Point(-0.57735026918963,   0.57735026918963,   0.57735026918963 ), 1.0 );
00202                         qr[5]=QuadraturePoint( Point(-0.57735026918963,   0.57735026918963,  -0.57735026918963 ), 1.0 );
00203                         qr[6]=QuadraturePoint( Point(-0.57735026918963,  -0.57735026918963,   0.57735026918963 ), 1.0 );
00204                         qr[7]=QuadraturePoint( Point(-0.57735026918963,  -0.57735026918963,  -0.57735026918963 ), 1.0 );
00205                         break;
00206 
00207                         case 3:
00208             qr[0]=QuadraturePoint( Point( 0.77459666924148,   0.77459666924148,   0.77459666924148 ), 0.17146776406036 );
00209             qr[0]=QuadraturePoint( Point( 0.77459666924148,   0.77459666924148,  -0.77459666924148 ), 0.17146776406036 );
00210             qr[0]=QuadraturePoint( Point( 0.77459666924148,   0.77459666924148,                0.0 ), 0.27434842249657 );
00211             qr[0]=QuadraturePoint( Point( 0.77459666924148,  -0.77459666924148,   0.77459666924148 ), 0.17146776406036 );
00212             qr[0]=QuadraturePoint( Point( 0.77459666924148,  -0.77459666924148,  -0.77459666924148 ), 0.17146776406036 );
00213             qr[0]=QuadraturePoint( Point( 0.77459666924148,  -0.77459666924148,                0.0 ), 0.27434842249657 );
00214             qr[0]=QuadraturePoint( Point( 0.77459666924148,                0.0,   0.77459666924148 ), 0.27434842249657 );
00215             qr[0]=QuadraturePoint( Point( 0.77459666924148,                0.0,  -0.77459666924148 ), 0.27434842249657 );
00216             qr[0]=QuadraturePoint( Point( 0.77459666924148,                0.0,                0.0 ), 0.43895747599451 );
00217             qr[0]=QuadraturePoint( Point(-0.77459666924148,   0.77459666924148,   0.77459666924148 ), 0.17146776406036 );
00218             qr[0]=QuadraturePoint( Point(-0.77459666924148,   0.77459666924148,  -0.77459666924148 ), 0.17146776406036 );
00219             qr[0]=QuadraturePoint( Point(-0.77459666924148,   0.77459666924148,                0.0 ), 0.27434842249657 );
00220             qr[0]=QuadraturePoint( Point(-0.77459666924148,  -0.77459666924148,   0.77459666924148 ), 0.17146776406036 );
00221             qr[0]=QuadraturePoint( Point(-0.77459666924148,  -0.77459666924148,  -0.77459666924148 ), 0.17146776406036 );
00222             qr[0]=QuadraturePoint( Point(-0.77459666924148,  -0.77459666924148,                0.0 ), 0.27434842249657 );
00223             qr[0]=QuadraturePoint( Point(-0.77459666924148,                0.0,   0.77459666924148 ), 0.27434842249657 );
00224             qr[0]=QuadraturePoint( Point(-0.77459666924148,                0.0,  -0.77459666924148 ), 0.27434842249657 );
00225             qr[0]=QuadraturePoint( Point(-0.77459666924148,                0.0,                0.0 ), 0.43895747599451 );
00226             qr[0]=QuadraturePoint( Point(              0.0,   0.77459666924148,   0.77459666924148 ), 0.27434842249657 );
00227             qr[0]=QuadraturePoint( Point(              0.0,   0.77459666924148,  -0.77459666924148 ), 0.27434842249657 );
00228             qr[0]=QuadraturePoint( Point(              0.0,   0.77459666924148,                0.0 ), 0.43895747599451 );
00229             qr[0]=QuadraturePoint( Point(              0.0,  -0.77459666924148,   0.77459666924148 ), 0.27434842249657 );
00230             qr[0]=QuadraturePoint( Point(              0.0,  -0.77459666924148,  -0.77459666924148 ), 0.27434842249657 );
00231             qr[0]=QuadraturePoint( Point(              0.0,  -0.77459666924148,                0.0 ), 0.43895747599451 );
00232             qr[0]=QuadraturePoint( Point(              0.0,                0.0,   0.77459666924148 ), 0.43895747599451 );
00233             qr[0]=QuadraturePoint( Point(              0.0,                0.0,  -0.77459666924148 ), 0.43895747599451 );
00234                         qr[0]=QuadraturePoint( Point(              0.0,                0.0,                0.0 ), 0.70233196159122 );
00235                         break;
00236                         
00237                         default:
00238                         ErrorMessage("quadrature_gauss3d","too many points");
00239                         break;
00240                         
00241                 }
00242         }
00243         
00245         void quadrature_tria( QuadratureRule &qr )  
00246         {
00247                 int npts=vect_size(qr);
00248                 int ord;
00249                 switch (npts)
00250                 {
00251                         case 1:
00252                         ord=1;
00253                         qr[0]=QuadraturePoint( Point(0.333333333333,0.333333333333), 0.5  );
00254                         break;
00255 
00256                         case 3:
00257                         ord=2;
00258                         qr[0]=QuadraturePoint( Point( 0.1666666666667, 0.1666666666667 ),  0.1666666666667  );
00259                         qr[1]=QuadraturePoint( Point( 0.6666666666667, 0.1666666666667 ),  0.1666666666667  );
00260                         qr[2]=QuadraturePoint( Point( 0.1666666666667, 0.6666666666667 ),  0.1666666666667  );
00261                         break;
00262 
00263                         case 4:
00264                         ord=3;
00265                         qr[0]=QuadraturePoint( Point( 0.333333333333333, 0.333333333333333 ), -0.5625000000000000*0.5  );
00266                         qr[1]=QuadraturePoint( Point( 0.600000000000000, 0.200000000000000 ),  0.5208333333333333*0.5  );
00267                         qr[2]=QuadraturePoint( Point( 0.200000000000000, 0.600000000000000 ),  0.5208333333333333*0.5  );
00268                         qr[3]=QuadraturePoint( Point( 0.200000000000000, 0.200000000000000 ),  0.5208333333333333*0.5  );
00269                         break;
00270 
00271                         case 6:
00272                         ord= 4;
00273                         qr[0]=QuadraturePoint( Point( 0.816847572980459, 0.091576213509770 ), 0.109951743655233*0.5 );
00274                         qr[1]=QuadraturePoint( Point( 0.091576213509771, 0.816847572980459 ), 0.109951743655233*0.5 );
00275                         qr[2]=QuadraturePoint( Point( 0.091576213509771, 0.091576213509771 ), 0.109951743655233*0.5 );
00276                         qr[3]=QuadraturePoint( Point( 0.108103018168070, 0.445948490915965 ), 0.223381589678011*0.5 );
00277                         qr[4]=QuadraturePoint( Point( 0.445948490915965, 0.108103018168070 ), 0.223381589678011*0.5 );
00278                         qr[5]=QuadraturePoint( Point( 0.445948490915965, 0.445948490915965 ), 0.223381589678011*0.5 );
00279                         break;
00280 
00281                         case 7:
00282                         ord=5;
00283                         qr[0]=QuadraturePoint( Point( 0.1012865073235, 0.1012865073235 ), 0.06296959027240 );
00284                         qr[1]=QuadraturePoint( Point( 0.7974269853531, 0.1012865073235 ), 0.06296959027240 );
00285                         qr[2]=QuadraturePoint( Point( 0.1012865073235, 0.7974269853531 ), 0.06296959027240 );
00286                         qr[3]=QuadraturePoint( Point( 0.4701420641051, 0.0597158717898 ), 0.06619707639425 );
00287                         qr[4]=QuadraturePoint( Point( 0.4701420641051, 0.4701420641051 ), 0.06619707639425 );
00288                         qr[5]=QuadraturePoint( Point( 0.0597158717898, 0.4701420641051 ), 0.06619707639425 );
00289                         qr[6]=QuadraturePoint( Point( 0.3333333333333, 0.3333333333333 ), 0.11250000000000 );
00290                         break;
00291 
00292                         case 9:
00293                         ord=5;
00294                         qr[0]=QuadraturePoint( Point( 0.124949503233232, 0.437525248383384 ), 0.205950504760887*0.5 );
00295                         qr[1]=QuadraturePoint( Point( 0.437525248383384, 0.124949503233232 ), 0.205950504760887*0.5 );
00296                         qr[2]=QuadraturePoint( Point( 0.437525248383384, 0.437525248383384 ), 0.205950504760887*0.5 );
00297                         qr[3]=QuadraturePoint( Point( 0.797112651860071, 0.165409927389841 ), 0.063691414286223*0.5 );
00298                         qr[4]=QuadraturePoint( Point( 0.797112651860071, 0.037477420750088 ), 0.063691414286223*0.5 );
00299                         qr[5]=QuadraturePoint( Point( 0.165409927389841, 0.797112651860071 ), 0.063691414286223*0.5 );
00300                         qr[6]=QuadraturePoint( Point( 0.165409927389841, 0.037477420750088 ), 0.063691414286223*0.5 );
00301                         qr[7]=QuadraturePoint( Point( 0.037477420750088, 0.797112651860071 ), 0.063691414286223*0.5 );
00302                         qr[8]=QuadraturePoint( Point( 0.037477420750088, 0.165409927389841 ), 0.063691414286223*0.5 );
00303                         break;
00304 
00305                         case 12:
00306                         ord=6;
00307                         qr[0]=QuadraturePoint( Point( 0.873821971016996, 0.063089014491502 ), 0.050844906370207*0.5 );
00308                         qr[1]=QuadraturePoint( Point( 0.063089014491502, 0.873821971016996 ), 0.050844906370207*0.5 );
00309                         qr[2]=QuadraturePoint( Point( 0.063089014491502, 0.063089014491502 ), 0.050844906370207*0.5 );
00310                         qr[3]=QuadraturePoint( Point( 0.501426509658179, 0.249286745170910 ), 0.116786275726379*0.5 );
00311                         qr[4]=QuadraturePoint( Point( 0.249286745170910, 0.501426509658179 ), 0.116786275726379*0.5 );
00312                         qr[5]=QuadraturePoint( Point( 0.249286745170910, 0.249286745170910 ), 0.116786275726379*0.5 );
00313                         qr[6]=QuadraturePoint( Point( 0.636502499121399, 0.310352451033785 ), 0.082581075618374*0.5 );  
00314                         qr[7]=QuadraturePoint( Point( 0.636502499121399, 0.053145049844816 ), 0.082581075618374*0.5 );  
00315                         qr[8]=QuadraturePoint( Point( 0.310352451033785, 0.636502499121399 ), 0.082581075618374*0.5 );
00316                         qr[9]=QuadraturePoint( Point( 0.310352451033785, 0.053145049844816 ), 0.082581075618374*0.5 );          
00317                         qr[10]=QuadraturePoint( Point( 0.053145049844816, 0.636502499121399 ), 0.082581075618374*0.5 ); 
00318                         qr[11]=QuadraturePoint( Point( 0.053145049844816, 0.310352451033785 ), 0.082581075618374*0.5 );
00319                         break;
00320 
00321                         case 13:
00322                         ord=7;
00323                         qr[0]=QuadraturePoint( Point( 0.0651301029022, 0.0651301029022 ),  0.02667361780440 );
00324                         qr[1]=QuadraturePoint( Point( 0.8697397941956, 0.0651301029022 ),  0.02667361780440 );
00325                         qr[2]=QuadraturePoint( Point( 0.0651301029022, 0.8697397941956 ),  0.02667361780440 );
00326                         qr[3]=QuadraturePoint( Point( 0.3128654960049, 0.0486903154253 ),  0.03855688044515 );
00327                         qr[4]=QuadraturePoint( Point( 0.6384441885698, 0.3128654960049 ),  0.03855688044515 );
00328                         qr[5]=QuadraturePoint( Point( 0.0486903154253, 0.6384441885698 ),  0.03855688044515 );
00329                         qr[6]=QuadraturePoint( Point( 0.6384441885698, 0.0486903154253 ),  0.03855688044515 );
00330                         qr[7]=QuadraturePoint( Point( 0.3128654960049, 0.6384441885698 ),  0.03855688044515 );
00331                         qr[8]=QuadraturePoint( Point( 0.0486903154253, 0.3128654960049 ),  0.03855688044515 );
00332                         qr[9]=QuadraturePoint( Point( 0.2603459660790, 0.2603459660790 ),  0.08780762881660 );
00333                         qr[10]=QuadraturePoint( Point( 0.4793080678419, 0.2603459660790 ),  0.08780762881660 );
00334                         qr[11]=QuadraturePoint( Point( 0.2603459660790, 0.4793080678419 ),  0.08780762881660 );
00335                         qr[12]=QuadraturePoint( Point( 0.3333333333333, 0.3333333333333 ), -0.07478502223385 );
00336                         break;
00337 
00338                         default:
00339                         ErrorMessage("quadrature_tria","Incorrect number of points");
00340                         break;
00341 
00342                 }
00343         }
00344         
00345         
00349         void quadrature_tetra( QuadratureRule &qr ) 
00350         {
00351                 int npts=vect_size(qr);
00352                 int ord;
00353                 switch (npts)
00354                 {
00355                         case 1:
00356                         ord=1;
00357                         qr[0]=QuadraturePoint( Point(0.25000000000000,   0.25000000000000,  0.25000000000000), 0.16666666666667 );
00358                         break;
00359 
00360                         case 4:
00361                         ord=2;
00362                         qr[0]=QuadraturePoint( Point( 0.58541020000000,   0.13819660000000,   0.13819660000000 ),  0.04166666666667 );
00363                         qr[1]=QuadraturePoint( Point( 0.13819660000000,   0.58541020000000,   0.13819660000000 ),  0.04166666666667 );
00364                         qr[2]=QuadraturePoint( Point( 0.13819660000000,   0.13819660000000,   0.58541020000000 ),  0.04166666666667 );
00365                         qr[3]=QuadraturePoint( Point( 0.13819660000000,   0.13819660000000,   0.13819660000000 ),  0.04166666666667 );
00366                         break;
00367 
00368                         case 5:
00369                         ord=3;
00370                         qr[0]=QuadraturePoint( Point( 0.25000000000000,   0.25000000000000,   0.25000000000000 ), -0.13333333333333 );
00371                         qr[1]=QuadraturePoint( Point( 0.50000000000000,   0.16666666666667,   0.16666666666667 ),  0.07500000000000 );
00372                         qr[2]=QuadraturePoint( Point( 0.16666666666667,   0.50000000000000,   0.16666666666667 ),  0.07500000000000 );
00373                         qr[3]=QuadraturePoint( Point( 0.16666666666667,   0.16666666666667,   0.50000000000000 ),  0.07500000000000 );
00374                         qr[4]=QuadraturePoint( Point( 0.16666666666667,   0.16666666666667,   0.16666666666667 ),  0.07500000000000 );
00375                         break;
00376 
00377                         default:
00378                         ErrorMessage("quadrature_tetra","Incorrect number of points");
00379                         break;
00380 
00381                 }
00382         }
00383         
00384         
00385 } // end namespace
00386 
00387 #endif

Generated on Sat Jan 19 09:03:57 2008 for Basso by  doxygen 1.5.2