GaussianQuadratureRule.cpp

00001 /*
00002 
00003 Copyright (C) University of Oxford, 2005-2009
00004 
00005 University of Oxford means the Chancellor, Masters and Scholars of the
00006 University of Oxford, having an administrative office at Wellington
00007 Square, Oxford OX1 2JD, UK.
00008 
00009 This file is part of Chaste.
00010 
00011 Chaste is free software: you can redistribute it and/or modify it
00012 under the terms of the GNU Lesser General Public License as published
00013 by the Free Software Foundation, either version 2.1 of the License, or
00014 (at your option) any later version.
00015 
00016 Chaste is distributed in the hope that it will be useful, but WITHOUT
00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
00019 License for more details. The offer of Chaste under the terms of the
00020 License is subject to the License being interpreted in accordance with
00021 English Law and subject to any action against the University of Oxford
00022 being under the jurisdiction of the English Courts.
00023 
00024 You should have received a copy of the GNU Lesser General Public License
00025 along with Chaste. If not, see <http://www.gnu.org/licenses/>.
00026 
00027 */
00028 
00029 #include <cmath>
00030 
00031 #include "GaussianQuadratureRule.hpp"
00032 #include "Exception.hpp"
00033 
00034 template<unsigned ELEM_DIM>
00035 const ChastePoint<ELEM_DIM>& GaussianQuadratureRule<ELEM_DIM>::rGetQuadPoint(unsigned index) const
00036 {
00037     assert(index < mNumQuadPoints);
00038     return mPoints[index];
00039 }
00040 
00041 template<unsigned ELEM_DIM>
00042 double GaussianQuadratureRule<ELEM_DIM>::GetWeight(unsigned index) const
00043 {
00044     assert(index < mNumQuadPoints);
00045     return mWeights[index];
00046 }
00047 
00048 template<unsigned ELEM_DIM>
00049 unsigned GaussianQuadratureRule<ELEM_DIM>::GetNumQuadPoints() const
00050 {
00051     return mNumQuadPoints;
00052 }
00053 
00054 template<unsigned ELEM_DIM>
00055 GaussianQuadratureRule<ELEM_DIM>::GaussianQuadratureRule(unsigned numPointsInEachDimension)
00056 {
00057     mNumQuadPoints = (unsigned) pow((double) numPointsInEachDimension,(ELEM_DIM));
00058 
00059     mWeights.reserve(mNumQuadPoints);
00060     mPoints.reserve(mNumQuadPoints);
00061 
00062     switch (ELEM_DIM)
00063     {
00064         case 0 :
00065         {
00066             // mNumQuadPoints should have been set to be one as
00067             // it is numPointsInEachDim^{0}
00068             mWeights.push_back(1);
00069             mPoints.push_back(ChastePoint<ELEM_DIM>());
00070         }
00071         break;
00072         case 1 :
00073         {
00074             switch (numPointsInEachDimension)
00075             {
00076                 case 1: // 1d, 1 point
00077                     mWeights.push_back(1);
00078                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.5)); //check
00079                     break;
00080 
00081                 case 2: // 1d, 2 points
00082                     mWeights.push_back(0.5);
00083                     mWeights.push_back(0.5);
00084 
00085                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.21132486540519));
00086                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.78867513459481));
00087                     break;
00088 
00089                 case 3: // 1d, 3 points
00090                     mWeights.push_back(5.0/18.0);
00091                     mWeights.push_back(4.0/9.0);
00092                     mWeights.push_back(5.0/18.0);
00093 
00094                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.1127016654));
00095                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.5));
00096                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.8872983346));
00097                     break;
00098 
00099                 default:
00100                     EXCEPTION("Number of gauss points per dimension not supported.");
00101             }
00102         }
00103         break;
00104         case 2 :
00105         {
00106             switch (numPointsInEachDimension)
00107             {
00108                 case 1: // 2d, 1 point per dimension
00109                     mWeights.push_back(0.5);
00110                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.25,0.5));
00111                     break;
00112 
00113                 case 2: // 2d, 2 points per dimension
00114                     mWeights.push_back(0.19716878364870);
00115                     mWeights.push_back(0.19716878364870);
00116                     mWeights.push_back(0.05283121635130);
00117                     mWeights.push_back(0.05283121635130);
00118 
00119                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.16666666666667,0.21132486540519));
00120                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62200846792815,0.21132486540519));
00121                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04465819873852,0.78867513459481));
00122                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.16666666666667,0.78867513459481));
00123                     break;
00124 
00125                 case 3: // 2d, 3 points per dimension
00126                     mWeights.push_back(0.06846437766975);
00127                     mWeights.push_back(0.10954300427160);
00128                     mWeights.push_back(0.06846437766975);
00129                     mWeights.push_back(0.06172839506173);
00130                     mWeights.push_back(0.09876543209877);
00131                     mWeights.push_back(0.06172839506173);
00132                     mWeights.push_back(0.00869611615741);
00133                     mWeights.push_back(0.01391378585185);
00134                     mWeights.push_back(0.00869611615741);
00135 
00136                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,0.11270166540000));
00137                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,0.11270166540000));
00138                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.78729833458393,0.11270166540000));
00139                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,0.50000000000000));
00140                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.25000000000000,0.50000000000000));
00141                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,0.50000000000000));
00142                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.01270166538393,0.88729833460000));
00143                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,0.88729833460000));
00144                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,0.88729833460000));
00145                     break;
00146 
00147                 default:
00148                     EXCEPTION("Number of gauss points per dimension not supported.");
00149             }
00150 
00151         }
00152         break;
00153         case 3 :
00154         {
00155             switch (numPointsInEachDimension)
00156             {
00157                 case 1: //3d, 1 point per dimension
00158                     mWeights.push_back(0.12500000000000);
00159                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.25000000000000,0.50000000000000,0.12500000000000));
00160                     break;
00161 
00162                 case 2: //3d, 2 points per dimension
00163                     mWeights.push_back(0.06132032652029);
00164                     mWeights.push_back(0.01643073197073);
00165                     mWeights.push_back(0.00440260136261);
00166                     mWeights.push_back(0.00117967347971);
00167                     mWeights.push_back(0.06132032652029);
00168                     mWeights.push_back(0.01643073197073);
00169                     mWeights.push_back(0.00440260136261);
00170                     mWeights.push_back(0.00117967347971);
00171 
00172                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.16666666666667,   0.21132486540519,   0.13144585576580));
00173                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62200846792815,   0.21132486540519,   0.03522081090086));
00174                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04465819873852,   0.78867513459481,   0.03522081090086));
00175                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.16666666666667,   0.78867513459481,   0.00943738783766));
00176                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.16666666666667,   0.21132486540519,   0.49056261216234));
00177                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62200846792815,   0.21132486540519,   0.13144585576580));
00178                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04465819873852,   0.78867513459481,   0.13144585576580));
00179                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.16666666666667,   0.78867513459481,   0.03522081090086));
00180                     break;
00181 
00182                 case 3: //3d, 3 points per dimension
00183                     mWeights.push_back(0.01497274736603);
00184                     mWeights.push_back(0.01349962850795);
00185                     mWeights.push_back(0.00190178826891);
00186                     mWeights.push_back(0.00760715307442);
00187                     mWeights.push_back(0.00685871056241);
00188                     mWeights.push_back(0.00096623512860);
00189                     mWeights.push_back(0.00024155878219);
00190                     mWeights.push_back(0.00021779261632);
00191                     mWeights.push_back(0.00003068198821);
00192                     mWeights.push_back(0.02395639578565);
00193                     mWeights.push_back(0.02159940561273);
00194                     mWeights.push_back(0.00304286123026);
00195                     mWeights.push_back(0.01217144491907);
00196                     mWeights.push_back(0.01097393689986);
00197                     mWeights.push_back(0.00154597620576);
00198                     mWeights.push_back(0.00038649405150);
00199                     mWeights.push_back(0.00034846818612);
00200                     mWeights.push_back(0.00004909118114);
00201                     mWeights.push_back(0.01497274736603);
00202                     mWeights.push_back(0.01349962850795);
00203                     mWeights.push_back(0.00190178826891);
00204                     mWeights.push_back(0.00760715307442);
00205                     mWeights.push_back(0.00685871056241);
00206                     mWeights.push_back(0.00096623512860);
00207                     mWeights.push_back(0.00024155878219);
00208                     mWeights.push_back(0.00021779261632);
00209                     mWeights.push_back(0.00003068198821);
00210 
00211                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,   0.11270166540000,   0.08872983347426));
00212                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,   0.11270166540000,   0.05000000000803));
00213                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.78729833458393,   0.11270166540000,   0.01127016654181));
00214                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,   0.50000000000000,   0.05000000000803));
00215                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.25000000000000,   0.50000000000000,   0.02817541635000));
00216                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,   0.50000000000000,   0.00635083269197));
00217                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.01270166538393,   0.88729833460000,   0.01127016654181));
00218                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,   0.88729833460000,   0.00635083269197));
00219                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,   0.88729833460000,   0.00143149884212));
00220                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,   0.11270166540000,   0.39364916729197));
00221                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,   0.11270166540000,   0.22182458365000));
00222                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.78729833458393,   0.11270166540000,   0.05000000000803));
00223                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,   0.50000000000000,   0.22182458365000));
00224                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.25000000000000,   0.50000000000000,   0.12500000000000));
00225                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,   0.50000000000000,   0.02817541635000));
00226                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.01270166538393,   0.88729833460000,   0.05000000000803));
00227                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,   0.88729833460000,   0.02817541635000));
00228                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,   0.88729833460000,   0.00635083269197));
00229                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,   0.11270166540000,   0.69856850110968));
00230                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,   0.11270166540000,   0.39364916729197));
00231                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.78729833458393,   0.11270166540000,   0.08872983347426));
00232                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,   0.50000000000000,   0.39364916729197));
00233                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.25000000000000,   0.50000000000000,   0.22182458365000));
00234                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44364916730000,   0.50000000000000,   0.05000000000803));
00235                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.01270166538393,   0.88729833460000,   0.08872983347426));
00236                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.05635083270000,   0.88729833460000,   0.05000000000803));
00237                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10000000001607,   0.88729833460000,   0.01127016654181));
00238                     break;
00239 
00240                 case 4: //3d, 4 points per dimension
00241                     mWeights.push_back(0.00423982561968);
00242                     mWeights.push_back(0.00572288385156);
00243                     mWeights.push_back(0.00281885467361);
00244                     mWeights.push_back(0.00031634320391);
00245                     mWeights.push_back(0.00412036229051);
00246                     mWeights.push_back(0.00556163317318);
00247                     mWeights.push_back(0.00273942929295);
00248                     mWeights.push_back(0.00030742976838);
00249                     mWeights.push_back(0.00099965677330);
00250                     mWeights.push_back(0.00134932898618);
00251                     mWeights.push_back(0.00066462336430);
00252                     mWeights.push_back(0.00007458670588);
00253                     mWeights.push_back(0.00002360309872);
00254                     mWeights.push_back(0.00003185928022);
00255                     mWeights.push_back(0.00001569255698);
00256                     mWeights.push_back(0.00000176108183);
00257                     mWeights.push_back(0.00794866986669);
00258                     mWeights.push_back(0.01072905315027);
00259                     mWeights.push_back(0.00528468555374);
00260                     mWeights.push_back(0.00059306865848);
00261                     mWeights.push_back(0.00772470439029);
00262                     mWeights.push_back(0.01042674628127);
00263                     mWeights.push_back(0.00513578175757);
00264                     mWeights.push_back(0.00057635807584);
00265                     mWeights.push_back(0.00187411992466);
00266                     mWeights.push_back(0.00252967258912);
00267                     mWeights.push_back(0.00124601155388);
00268                     mWeights.push_back(0.00013983242583);
00269                     mWeights.push_back(0.00004425022545);
00270                     mWeights.push_back(0.00005972861231);
00271                     mWeights.push_back(0.00002941983138);
00272                     mWeights.push_back(0.00000330161175);
00273                     mWeights.push_back(0.00794866986669);
00274                     mWeights.push_back(0.01072905315027);
00275                     mWeights.push_back(0.00528468555374);
00276                     mWeights.push_back(0.00059306865848);
00277                     mWeights.push_back(0.00772470439029);
00278                     mWeights.push_back(0.01042674628127);
00279                     mWeights.push_back(0.00513578175757);
00280                     mWeights.push_back(0.00057635807584);
00281                     mWeights.push_back(0.00187411992466);
00282                     mWeights.push_back(0.00252967258912);
00283                     mWeights.push_back(0.00124601155388);
00284                     mWeights.push_back(0.00013983242583);
00285                     mWeights.push_back(0.00004425022545);
00286                     mWeights.push_back(0.00005972861231);
00287                     mWeights.push_back(0.00002941983138);
00288                     mWeights.push_back(0.00000330161175);
00289                     mWeights.push_back(0.00423982561968);
00290                     mWeights.push_back(0.00572288385156);
00291                     mWeights.push_back(0.00281885467361);
00292                     mWeights.push_back(0.00031634320391);
00293                     mWeights.push_back(0.00412036229051);
00294                     mWeights.push_back(0.00556163317318);
00295                     mWeights.push_back(0.00273942929295);
00296                     mWeights.push_back(0.00030742976838);
00297                     mWeights.push_back(0.00099965677330);
00298                     mWeights.push_back(0.00134932898618);
00299                     mWeights.push_back(0.00066462336430);
00300                     mWeights.push_back(0.00007458670588);
00301                     mWeights.push_back(0.00002360309872);
00302                     mWeights.push_back(0.00003185928022);
00303                     mWeights.push_back(0.00001569255698);
00304                     mWeights.push_back(0.00000176108183);
00305 
00306                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.06943184420000,   0.06012499793653));
00307                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.06943184420000,   0.04328879995478));
00308                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.06943184420000,   0.02132226325621));
00309                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.86595709258901,   0.06943184420000,   0.00448606527446));
00310                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.33000947820000,   0.04328879995478));
00311                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.33000947820000,   0.03116707302848));
00312                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44888729930184,   0.33000947820000,   0.01535160449661));
00313                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.33000947820000,   0.00322987757031));
00314                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.66999052180000,   0.02132226325621));
00315                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10890625570184,   0.66999052180000,   0.01535160449661));
00316                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.66999052180000,   0.00756156217830));
00317                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.66999052180000,   0.00159090341870));
00318                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.00482078098901,   0.93056815580000,   0.00448606527446));
00319                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.93056815580000,   0.00322987757031));
00320                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.93056815580000,   0.00159090341870));
00321                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.93056815580000,   0.00033471571455));
00322                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.06943184420000,   0.28577404826889));
00323                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.06943184420000,   0.20575161800155));
00324                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.06943184420000,   0.10134469352354));
00325                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.86595709258901,   0.06943184420000,   0.02132226325621));
00326                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.33000947820000,   0.20575161800155));
00327                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.33000947820000,   0.14813706341321));
00328                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44888729930184,   0.33000947820000,   0.07296615908496));
00329                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.33000947820000,   0.01535160449661));
00330                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.66999052180000,   0.10134469352354));
00331                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10890625570184,   0.66999052180000,   0.07296615908496));
00332                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.66999052180000,   0.03594009661688));
00333                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.66999052180000,   0.00756156217830));
00334                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.00482078098901,   0.93056815580000,   0.02132226325621));
00335                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.93056815580000,   0.01535160449661));
00336                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.93056815580000,   0.00756156217830));
00337                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.93056815580000,   0.00159090341870));
00338                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.06943184420000,   0.58018304432012));
00339                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.06943184420000,   0.41772022627335));
00340                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.06943184420000,   0.20575161800155));
00341                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.86595709258901,   0.06943184420000,   0.04328879995478));
00342                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.33000947820000,   0.41772022627335));
00343                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.33000947820000,   0.30075023588863));
00344                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44888729930184,   0.33000947820000,   0.14813706341321));
00345                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.33000947820000,   0.03116707302848));
00346                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.66999052180000,   0.20575161800155));
00347                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10890625570184,   0.66999052180000,   0.14813706341321));
00348                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.66999052180000,   0.07296615908496));
00349                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.66999052180000,   0.01535160449661));
00350                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.00482078098901,   0.93056815580000,   0.04328879995478));
00351                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.93056815580000,   0.03116707302848));
00352                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.93056815580000,   0.01535160449661));
00353                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.93056815580000,   0.00322987757031));
00354                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.06943184420000,   0.80583209465249));
00355                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.06943184420000,   0.58018304432012));
00356                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.06943184420000,   0.28577404826889));
00357                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.86595709258901,   0.06943184420000,   0.06012499793653));
00358                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.33000947820000,   0.58018304432012));
00359                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.33000947820000,   0.41772022627335));
00360                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.44888729930184,   0.33000947820000,   0.20575161800155));
00361                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.62347184427491,   0.33000947820000,   0.04328879995478));
00362                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.66999052180000,   0.28577404826889));
00363                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.10890625570184,   0.66999052180000,   0.20575161800155));
00364                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.22110322249816,   0.66999052180000,   0.10134469352354));
00365                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.30709631152509,   0.66999052180000,   0.02132226325621));
00366                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.00482078098901,   0.93056815580000,   0.06012499793653));
00367                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.02291316667491,   0.93056815580000,   0.04328879995478));
00368                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.04651867752509,   0.93056815580000,   0.02132226325621));
00369                     mPoints.push_back(ChastePoint<ELEM_DIM>(0.06461106321099,   0.93056815580000,   0.00448606527446));
00370                     break;
00371 
00372                 default:
00373                     EXCEPTION("Number of gauss points per dimension not supported.");
00374             }
00375         }
00376         break;
00377 
00378         default:
00379             EXCEPTION("Gauss points not available for this dimension.");
00380     }
00381 
00382 }
00383 
00384 
00386 // Explicit instantiation
00388 
00389 template class GaussianQuadratureRule<0>;
00390 template class GaussianQuadratureRule<1>;
00391 template class GaussianQuadratureRule<2>;
00392 template class GaussianQuadratureRule<3>;
00393 template class GaussianQuadratureRule<4>;

Generated on Wed Mar 18 12:51:56 2009 for Chaste by  doxygen 1.5.5