00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <cmath>
00030
00031 #include "GaussianQuadratureRule.hpp"
00032 #include "Exception.hpp"
00033 #include "UblasCustomFunctions.hpp"
00034
00035 template<unsigned ELEMENT_DIM>
00036 const ChastePoint<ELEMENT_DIM>& GaussianQuadratureRule<ELEMENT_DIM>::rGetQuadPoint(unsigned index) const
00037 {
00038 assert(index < mNumQuadPoints);
00039 return mPoints[index];
00040 }
00041
00042 template<unsigned ELEMENT_DIM>
00043 double GaussianQuadratureRule<ELEMENT_DIM>::GetWeight(unsigned index) const
00044 {
00045 assert(index < mNumQuadPoints);
00046 return mWeights[index];
00047 }
00048
00049 template<unsigned ELEMENT_DIM>
00050 unsigned GaussianQuadratureRule<ELEMENT_DIM>::GetNumQuadPoints() const
00051 {
00052 return mNumQuadPoints;
00053 }
00054
00060 template<>
00061 GaussianQuadratureRule<0>::GaussianQuadratureRule(unsigned numPointsInEachDimension)
00062 {
00063 mNumQuadPoints = 1;
00064 mWeights.reserve(mNumQuadPoints);
00065 mPoints.reserve(mNumQuadPoints);
00066 mWeights.push_back(1);
00067 mPoints.push_back(ChastePoint<0>());
00068 }
00069
00075 template<>
00076 GaussianQuadratureRule<1>::GaussianQuadratureRule(unsigned numPointsInEachDimension)
00077 {
00078 mNumQuadPoints = numPointsInEachDimension;
00079
00080 mWeights.reserve(mNumQuadPoints);
00081 mPoints.reserve(mNumQuadPoints);
00082 switch (numPointsInEachDimension)
00083 {
00084 case 1:
00085 mWeights.push_back(1);
00086 mPoints.push_back(ChastePoint<1>(0.5));
00087 break;
00088 case 2:
00089 mWeights.push_back(0.5);
00090 mWeights.push_back(0.5);
00091
00092 mPoints.push_back(ChastePoint<1>(0.21132486540519));
00093 mPoints.push_back(ChastePoint<1>(0.78867513459481));
00094 break;
00095 case 3:
00096 mWeights.push_back(5.0/18.0);
00097 mWeights.push_back(4.0/9.0);
00098 mWeights.push_back(5.0/18.0);
00099 mPoints.push_back(ChastePoint<1>(0.1127016654));
00100 mPoints.push_back(ChastePoint<1>(0.5));
00101 mPoints.push_back(ChastePoint<1>(0.8872983346));
00102 break;
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144 default:
00145 EXCEPTION("Number of gauss points per dimension not supported.");
00146 }
00147 }
00148
00154 template<>
00155 GaussianQuadratureRule<2>::GaussianQuadratureRule(unsigned numPointsInEachDimension)
00156 {
00157 mNumQuadPoints = numPointsInEachDimension * numPointsInEachDimension;
00158
00159 mWeights.reserve(mNumQuadPoints);
00160 mPoints.reserve(mNumQuadPoints);
00161
00162 switch (numPointsInEachDimension)
00163 {
00164 case 1:
00165 mWeights.push_back(0.5);
00166 mPoints.push_back(ChastePoint<2>(0.25,0.5));
00167 break;
00168
00169 case 2:
00170 mWeights.push_back(0.19716878364870);
00171 mWeights.push_back(0.19716878364870);
00172 mWeights.push_back(0.05283121635130);
00173 mWeights.push_back(0.05283121635130);
00174
00175 mPoints.push_back(ChastePoint<2>(0.16666666666667,0.21132486540519));
00176 mPoints.push_back(ChastePoint<2>(0.62200846792815,0.21132486540519));
00177 mPoints.push_back(ChastePoint<2>(0.04465819873852,0.78867513459481));
00178 mPoints.push_back(ChastePoint<2>(0.16666666666667,0.78867513459481));
00179 break;
00180
00181 case 3:
00182 mWeights.push_back(0.06846437766975);
00183 mWeights.push_back(0.10954300427160);
00184 mWeights.push_back(0.06846437766975);
00185 mWeights.push_back(0.06172839506173);
00186 mWeights.push_back(0.09876543209877);
00187 mWeights.push_back(0.06172839506173);
00188 mWeights.push_back(0.00869611615741);
00189 mWeights.push_back(0.01391378585185);
00190 mWeights.push_back(0.00869611615741);
00191
00192 mPoints.push_back(ChastePoint<2>(0.10000000001607,0.11270166540000));
00193 mPoints.push_back(ChastePoint<2>(0.44364916730000,0.11270166540000));
00194 mPoints.push_back(ChastePoint<2>(0.78729833458393,0.11270166540000));
00195 mPoints.push_back(ChastePoint<2>(0.05635083270000,0.50000000000000));
00196 mPoints.push_back(ChastePoint<2>(0.25000000000000,0.50000000000000));
00197 mPoints.push_back(ChastePoint<2>(0.44364916730000,0.50000000000000));
00198 mPoints.push_back(ChastePoint<2>(0.01270166538393,0.88729833460000));
00199 mPoints.push_back(ChastePoint<2>(0.05635083270000,0.88729833460000));
00200 mPoints.push_back(ChastePoint<2>(0.10000000001607,0.88729833460000));
00201 break;
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419 default:
00420 EXCEPTION("Number of gauss points per dimension not supported.");
00421 }
00422 }
00423
00429 template<>
00430 GaussianQuadratureRule<3>::GaussianQuadratureRule(unsigned numPointsInEachDimension)
00431 {
00432 mNumQuadPoints = numPointsInEachDimension * numPointsInEachDimension * numPointsInEachDimension;
00433
00434 mWeights.reserve(mNumQuadPoints);
00435 mPoints.reserve(mNumQuadPoints);
00436
00437 switch (numPointsInEachDimension)
00438 {
00439 case 1:
00440 mWeights.push_back(0.12500000000000);
00441 mPoints.push_back(ChastePoint<3>(0.25000000000000,0.50000000000000,0.12500000000000));
00442 break;
00443
00444 case 2:
00445 mWeights.push_back(0.06132032652029);
00446 mWeights.push_back(0.01643073197073);
00447 mWeights.push_back(0.00440260136261);
00448 mWeights.push_back(0.00117967347971);
00449 mWeights.push_back(0.06132032652029);
00450 mWeights.push_back(0.01643073197073);
00451 mWeights.push_back(0.00440260136261);
00452 mWeights.push_back(0.00117967347971);
00453
00454 mPoints.push_back(ChastePoint<3>(0.16666666666667, 0.21132486540519, 0.13144585576580));
00455 mPoints.push_back(ChastePoint<3>(0.62200846792815, 0.21132486540519, 0.03522081090086));
00456 mPoints.push_back(ChastePoint<3>(0.04465819873852, 0.78867513459481, 0.03522081090086));
00457 mPoints.push_back(ChastePoint<3>(0.16666666666667, 0.78867513459481, 0.00943738783766));
00458 mPoints.push_back(ChastePoint<3>(0.16666666666667, 0.21132486540519, 0.49056261216234));
00459 mPoints.push_back(ChastePoint<3>(0.62200846792815, 0.21132486540519, 0.13144585576580));
00460 mPoints.push_back(ChastePoint<3>(0.04465819873852, 0.78867513459481, 0.13144585576580));
00461 mPoints.push_back(ChastePoint<3>(0.16666666666667, 0.78867513459481, 0.03522081090086));
00462 break;
00463
00464 case 3:
00465 mWeights.push_back(0.01497274736603);
00466 mWeights.push_back(0.01349962850795);
00467 mWeights.push_back(0.00190178826891);
00468 mWeights.push_back(0.00760715307442);
00469 mWeights.push_back(0.00685871056241);
00470 mWeights.push_back(0.00096623512860);
00471 mWeights.push_back(0.00024155878219);
00472 mWeights.push_back(0.00021779261632);
00473 mWeights.push_back(0.00003068198821);
00474 mWeights.push_back(0.02395639578565);
00475 mWeights.push_back(0.02159940561273);
00476 mWeights.push_back(0.00304286123026);
00477 mWeights.push_back(0.01217144491907);
00478 mWeights.push_back(0.01097393689986);
00479 mWeights.push_back(0.00154597620576);
00480 mWeights.push_back(0.00038649405150);
00481 mWeights.push_back(0.00034846818612);
00482 mWeights.push_back(0.00004909118114);
00483 mWeights.push_back(0.01497274736603);
00484 mWeights.push_back(0.01349962850795);
00485 mWeights.push_back(0.00190178826891);
00486 mWeights.push_back(0.00760715307442);
00487 mWeights.push_back(0.00685871056241);
00488 mWeights.push_back(0.00096623512860);
00489 mWeights.push_back(0.00024155878219);
00490 mWeights.push_back(0.00021779261632);
00491 mWeights.push_back(0.00003068198821);
00492
00493 mPoints.push_back(ChastePoint<3>(0.10000000001607, 0.11270166540000, 0.08872983347426));
00494 mPoints.push_back(ChastePoint<3>(0.44364916730000, 0.11270166540000, 0.05000000000803));
00495 mPoints.push_back(ChastePoint<3>(0.78729833458393, 0.11270166540000, 0.01127016654181));
00496 mPoints.push_back(ChastePoint<3>(0.05635083270000, 0.50000000000000, 0.05000000000803));
00497 mPoints.push_back(ChastePoint<3>(0.25000000000000, 0.50000000000000, 0.02817541635000));
00498 mPoints.push_back(ChastePoint<3>(0.44364916730000, 0.50000000000000, 0.00635083269197));
00499 mPoints.push_back(ChastePoint<3>(0.01270166538393, 0.88729833460000, 0.01127016654181));
00500 mPoints.push_back(ChastePoint<3>(0.05635083270000, 0.88729833460000, 0.00635083269197));
00501 mPoints.push_back(ChastePoint<3>(0.10000000001607, 0.88729833460000, 0.00143149884212));
00502 mPoints.push_back(ChastePoint<3>(0.10000000001607, 0.11270166540000, 0.39364916729197));
00503 mPoints.push_back(ChastePoint<3>(0.44364916730000, 0.11270166540000, 0.22182458365000));
00504 mPoints.push_back(ChastePoint<3>(0.78729833458393, 0.11270166540000, 0.05000000000803));
00505 mPoints.push_back(ChastePoint<3>(0.05635083270000, 0.50000000000000, 0.22182458365000));
00506 mPoints.push_back(ChastePoint<3>(0.25000000000000, 0.50000000000000, 0.12500000000000));
00507 mPoints.push_back(ChastePoint<3>(0.44364916730000, 0.50000000000000, 0.02817541635000));
00508 mPoints.push_back(ChastePoint<3>(0.01270166538393, 0.88729833460000, 0.05000000000803));
00509 mPoints.push_back(ChastePoint<3>(0.05635083270000, 0.88729833460000, 0.02817541635000));
00510 mPoints.push_back(ChastePoint<3>(0.10000000001607, 0.88729833460000, 0.00635083269197));
00511 mPoints.push_back(ChastePoint<3>(0.10000000001607, 0.11270166540000, 0.69856850110968));
00512 mPoints.push_back(ChastePoint<3>(0.44364916730000, 0.11270166540000, 0.39364916729197));
00513 mPoints.push_back(ChastePoint<3>(0.78729833458393, 0.11270166540000, 0.08872983347426));
00514 mPoints.push_back(ChastePoint<3>(0.05635083270000, 0.50000000000000, 0.39364916729197));
00515 mPoints.push_back(ChastePoint<3>(0.25000000000000, 0.50000000000000, 0.22182458365000));
00516 mPoints.push_back(ChastePoint<3>(0.44364916730000, 0.50000000000000, 0.05000000000803));
00517 mPoints.push_back(ChastePoint<3>(0.01270166538393, 0.88729833460000, 0.08872983347426));
00518 mPoints.push_back(ChastePoint<3>(0.05635083270000, 0.88729833460000, 0.05000000000803));
00519 mPoints.push_back(ChastePoint<3>(0.10000000001607, 0.88729833460000, 0.01127016654181));
00520 break;
00521
00522 case 4:
00523 mWeights.push_back(0.00423982561968);
00524 mWeights.push_back(0.00572288385156);
00525 mWeights.push_back(0.00281885467361);
00526 mWeights.push_back(0.00031634320391);
00527 mWeights.push_back(0.00412036229051);
00528 mWeights.push_back(0.00556163317318);
00529 mWeights.push_back(0.00273942929295);
00530 mWeights.push_back(0.00030742976838);
00531 mWeights.push_back(0.00099965677330);
00532 mWeights.push_back(0.00134932898618);
00533 mWeights.push_back(0.00066462336430);
00534 mWeights.push_back(0.00007458670588);
00535 mWeights.push_back(0.00002360309872);
00536 mWeights.push_back(0.00003185928022);
00537 mWeights.push_back(0.00001569255698);
00538 mWeights.push_back(0.00000176108183);
00539 mWeights.push_back(0.00794866986669);
00540 mWeights.push_back(0.01072905315027);
00541 mWeights.push_back(0.00528468555374);
00542 mWeights.push_back(0.00059306865848);
00543 mWeights.push_back(0.00772470439029);
00544 mWeights.push_back(0.01042674628127);
00545 mWeights.push_back(0.00513578175757);
00546 mWeights.push_back(0.00057635807584);
00547 mWeights.push_back(0.00187411992466);
00548 mWeights.push_back(0.00252967258912);
00549 mWeights.push_back(0.00124601155388);
00550 mWeights.push_back(0.00013983242583);
00551 mWeights.push_back(0.00004425022545);
00552 mWeights.push_back(0.00005972861231);
00553 mWeights.push_back(0.00002941983138);
00554 mWeights.push_back(0.00000330161175);
00555 mWeights.push_back(0.00794866986669);
00556 mWeights.push_back(0.01072905315027);
00557 mWeights.push_back(0.00528468555374);
00558 mWeights.push_back(0.00059306865848);
00559 mWeights.push_back(0.00772470439029);
00560 mWeights.push_back(0.01042674628127);
00561 mWeights.push_back(0.00513578175757);
00562 mWeights.push_back(0.00057635807584);
00563 mWeights.push_back(0.00187411992466);
00564 mWeights.push_back(0.00252967258912);
00565 mWeights.push_back(0.00124601155388);
00566 mWeights.push_back(0.00013983242583);
00567 mWeights.push_back(0.00004425022545);
00568 mWeights.push_back(0.00005972861231);
00569 mWeights.push_back(0.00002941983138);
00570 mWeights.push_back(0.00000330161175);
00571 mWeights.push_back(0.00423982561968);
00572 mWeights.push_back(0.00572288385156);
00573 mWeights.push_back(0.00281885467361);
00574 mWeights.push_back(0.00031634320391);
00575 mWeights.push_back(0.00412036229051);
00576 mWeights.push_back(0.00556163317318);
00577 mWeights.push_back(0.00273942929295);
00578 mWeights.push_back(0.00030742976838);
00579 mWeights.push_back(0.00099965677330);
00580 mWeights.push_back(0.00134932898618);
00581 mWeights.push_back(0.00066462336430);
00582 mWeights.push_back(0.00007458670588);
00583 mWeights.push_back(0.00002360309872);
00584 mWeights.push_back(0.00003185928022);
00585 mWeights.push_back(0.00001569255698);
00586 mWeights.push_back(0.00000176108183);
00587
00588 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.06943184420000, 0.06012499793653));
00589 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.06943184420000, 0.04328879995478));
00590 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.06943184420000, 0.02132226325621));
00591 mPoints.push_back(ChastePoint<3>(0.86595709258901, 0.06943184420000, 0.00448606527446));
00592 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.33000947820000, 0.04328879995478));
00593 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.33000947820000, 0.03116707302848));
00594 mPoints.push_back(ChastePoint<3>(0.44888729930184, 0.33000947820000, 0.01535160449661));
00595 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.33000947820000, 0.00322987757031));
00596 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.66999052180000, 0.02132226325621));
00597 mPoints.push_back(ChastePoint<3>(0.10890625570184, 0.66999052180000, 0.01535160449661));
00598 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.66999052180000, 0.00756156217830));
00599 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.66999052180000, 0.00159090341870));
00600 mPoints.push_back(ChastePoint<3>(0.00482078098901, 0.93056815580000, 0.00448606527446));
00601 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.93056815580000, 0.00322987757031));
00602 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.93056815580000, 0.00159090341870));
00603 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.93056815580000, 0.00033471571455));
00604 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.06943184420000, 0.28577404826889));
00605 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.06943184420000, 0.20575161800155));
00606 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.06943184420000, 0.10134469352354));
00607 mPoints.push_back(ChastePoint<3>(0.86595709258901, 0.06943184420000, 0.02132226325621));
00608 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.33000947820000, 0.20575161800155));
00609 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.33000947820000, 0.14813706341321));
00610 mPoints.push_back(ChastePoint<3>(0.44888729930184, 0.33000947820000, 0.07296615908496));
00611 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.33000947820000, 0.01535160449661));
00612 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.66999052180000, 0.10134469352354));
00613 mPoints.push_back(ChastePoint<3>(0.10890625570184, 0.66999052180000, 0.07296615908496));
00614 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.66999052180000, 0.03594009661688));
00615 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.66999052180000, 0.00756156217830));
00616 mPoints.push_back(ChastePoint<3>(0.00482078098901, 0.93056815580000, 0.02132226325621));
00617 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.93056815580000, 0.01535160449661));
00618 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.93056815580000, 0.00756156217830));
00619 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.93056815580000, 0.00159090341870));
00620 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.06943184420000, 0.58018304432012));
00621 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.06943184420000, 0.41772022627335));
00622 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.06943184420000, 0.20575161800155));
00623 mPoints.push_back(ChastePoint<3>(0.86595709258901, 0.06943184420000, 0.04328879995478));
00624 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.33000947820000, 0.41772022627335));
00625 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.33000947820000, 0.30075023588863));
00626 mPoints.push_back(ChastePoint<3>(0.44888729930184, 0.33000947820000, 0.14813706341321));
00627 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.33000947820000, 0.03116707302848));
00628 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.66999052180000, 0.20575161800155));
00629 mPoints.push_back(ChastePoint<3>(0.10890625570184, 0.66999052180000, 0.14813706341321));
00630 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.66999052180000, 0.07296615908496));
00631 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.66999052180000, 0.01535160449661));
00632 mPoints.push_back(ChastePoint<3>(0.00482078098901, 0.93056815580000, 0.04328879995478));
00633 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.93056815580000, 0.03116707302848));
00634 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.93056815580000, 0.01535160449661));
00635 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.93056815580000, 0.00322987757031));
00636 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.06943184420000, 0.80583209465249));
00637 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.06943184420000, 0.58018304432012));
00638 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.06943184420000, 0.28577404826889));
00639 mPoints.push_back(ChastePoint<3>(0.86595709258901, 0.06943184420000, 0.06012499793653));
00640 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.33000947820000, 0.58018304432012));
00641 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.33000947820000, 0.41772022627335));
00642 mPoints.push_back(ChastePoint<3>(0.44888729930184, 0.33000947820000, 0.20575161800155));
00643 mPoints.push_back(ChastePoint<3>(0.62347184427491, 0.33000947820000, 0.04328879995478));
00644 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.66999052180000, 0.28577404826889));
00645 mPoints.push_back(ChastePoint<3>(0.10890625570184, 0.66999052180000, 0.20575161800155));
00646 mPoints.push_back(ChastePoint<3>(0.22110322249816, 0.66999052180000, 0.10134469352354));
00647 mPoints.push_back(ChastePoint<3>(0.30709631152509, 0.66999052180000, 0.02132226325621));
00648 mPoints.push_back(ChastePoint<3>(0.00482078098901, 0.93056815580000, 0.06012499793653));
00649 mPoints.push_back(ChastePoint<3>(0.02291316667491, 0.93056815580000, 0.04328879995478));
00650 mPoints.push_back(ChastePoint<3>(0.04651867752509, 0.93056815580000, 0.02132226325621));
00651 mPoints.push_back(ChastePoint<3>(0.06461106321099, 0.93056815580000, 0.00448606527446));
00652 break;
00653
00654 default:
00655 EXCEPTION("Number of gauss points per dimension not supported.");
00656 }
00657 }
00658
00659 template<unsigned ELEMENT_DIM>
00660 GaussianQuadratureRule<ELEMENT_DIM>::GaussianQuadratureRule(unsigned numPointsInEachDimension)
00661 {
00662 EXCEPTION("Gauss points not available for this dimension.");
00663 }
00664
00666
00668
00669 template class GaussianQuadratureRule<0>;
00670 template class GaussianQuadratureRule<1>;
00671 template class GaussianQuadratureRule<2>;
00672 template class GaussianQuadratureRule<3>;
00673 template class GaussianQuadratureRule<4>;