LCOV - code coverage report
Current view: top level - ugbase/lib_disc/quadrature/gauss - gauss_quad_triangle.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 0.0 % 64 0
Test Date: 2025-09-21 23:31:46 Functions: 0.0 % 1 0

            Line data    Source code
       1              : /*
       2              :  * Copyright (c) 2011-2013:  G-CSC, Goethe University Frankfurt
       3              :  * 
       4              :  * This file is part of UG4.
       5              :  * 
       6              :  * UG4 is free software: you can redistribute it and/or modify it under the
       7              :  * terms of the GNU Lesser General Public License version 3 (as published by the
       8              :  * Free Software Foundation) with the following additional attribution
       9              :  * requirements (according to LGPL/GPL v3 §7):
      10              :  * 
      11              :  * (1) The following notice must be displayed in the Appropriate Legal Notices
      12              :  * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
      13              :  * 
      14              :  * (2) The following notice must be displayed at a prominent place in the
      15              :  * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
      16              :  * 
      17              :  * (3) The following bibliography is recommended for citation and must be
      18              :  * preserved in all covered files:
      19              :  * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
      20              :  *   parallel geometric multigrid solver on hierarchically distributed grids.
      21              :  *   Computing and visualization in science 16, 4 (2013), 151-164"
      22              :  * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
      23              :  *   flexible software system for simulating pde based models on high performance
      24              :  *   computers. Computing and visualization in science 16, 4 (2013), 165-179"
      25              :  * 
      26              :  * This program is distributed in the hope that it will be useful,
      27              :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      28              :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      29              :  * GNU Lesser General Public License for more details.
      30              :  */
      31              : 
      32              : //  This file is parsed from UG 3.9.
      33              : //  It provides the Gauss Quadratures for a reference triangle.
      34              : 
      35              : 
      36              : #include "../quadrature.h"
      37              : #include "gauss_quad_triangle.h"
      38              : 
      39              : namespace ug{
      40              : 
      41              : template <>
      42              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 1>, 2, 1, 1>::m_vWeight[1] =
      43              : {
      44              : 0.5 * 1.00000000000000000000000000000000
      45              : };
      46              : 
      47              : template <>
      48              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 1>, 2, 1, 1>::m_vPoint[1] =
      49              : {
      50              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333)
      51              : };
      52              : 
      53              : template <>
      54              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 2>, 2, 2, 3>::m_vWeight[3] =
      55              : {
      56              : 0.5 * 0.33333333333333333333333333333333,
      57              : 0.5 * 0.33333333333333333333333333333333,
      58              : 0.5 * 0.33333333333333333333333333333333
      59              : };
      60              : 
      61              : template <>
      62              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 2>, 2, 2, 3>::m_vPoint[3] =
      63              : {
      64              : MathVector<2>(0.16666666666666666666666666666667, 0.16666666666666666666666666666667),
      65              : MathVector<2>(0.16666666666666666666666666666667, 0.66666666666666666666666666666667),
      66              : MathVector<2>(0.66666666666666666666666666666667, 0.16666666666666666666666666666667)
      67              : };
      68              : 
      69              : template <>
      70              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 3>, 2, 3, 4>::m_vWeight[4] =
      71              : {
      72              : 0.5 * -0.56250000000000000000000000000000,
      73              : 0.5 * 0.52083333333333333333333333333333,
      74              : 0.5 * 0.52083333333333333333333333333333,
      75              : 0.5 * 0.52083333333333333333333333333333
      76              : };
      77              : 
      78              : template <>
      79              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 3>, 2, 3, 4>::m_vPoint[4] =
      80              : {
      81              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333),
      82              : MathVector<2>(0.20000000000000000000000000000000, 0.20000000000000000000000000000000),
      83              : MathVector<2>(0.20000000000000000000000000000000, 0.60000000000000000000000000000000),
      84              : MathVector<2>(0.60000000000000000000000000000000, 0.20000000000000000000000000000000)
      85              : };
      86              : 
      87              : template <>
      88              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 4>, 2, 4, 6>::m_vWeight[6] =
      89              : {
      90              : 0.5 * 0.10995174365532186763832632490021,
      91              : 0.5 * 0.10995174365532186763832632490021,
      92              : 0.5 * 0.10995174365532186763832632490021,
      93              : 0.5 * 0.22338158967801146569500700843312,
      94              : 0.5 * 0.22338158967801146569500700843312,
      95              : 0.5 * 0.22338158967801146569500700843312
      96              : };
      97              : 
      98              : template <>
      99              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 4>, 2, 4, 6>::m_vPoint[6] =
     100              : {
     101              : MathVector<2>(0.09157621350977074345957146340220, 0.09157621350977074345957146340220),
     102              : MathVector<2>(0.09157621350977074345957146340220, 0.81684757298045851308085707319560),
     103              : MathVector<2>(0.81684757298045851308085707319560, 0.09157621350977074345957146340220),
     104              : MathVector<2>(0.44594849091596488631832925388305, 0.44594849091596488631832925388305),
     105              : MathVector<2>(0.44594849091596488631832925388305, 0.10810301816807022736334149223390),
     106              : MathVector<2>(0.10810301816807022736334149223390, 0.44594849091596488631832925388305)
     107              : };
     108              : 
     109              : template <>
     110              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 5>, 2, 5, 7>::m_vWeight[7] =
     111              : {
     112              : 0.5 * 0.22500000000000000000000000000000,
     113              : 0.5 * 0.12593918054482715259568394550018,
     114              : 0.5 * 0.12593918054482715259568394550018,
     115              : 0.5 * 0.12593918054482715259568394550018,
     116              : 0.5 * 0.13239415278850618073764938783315,
     117              : 0.5 * 0.13239415278850618073764938783315,
     118              : 0.5 * 0.13239415278850618073764938783315
     119              : };
     120              : 
     121              : template <>
     122              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 5>, 2, 5, 7>::m_vPoint[7] =
     123              : {
     124              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333),
     125              : MathVector<2>(0.10128650732345633880098736191512, 0.10128650732345633880098736191512),
     126              : MathVector<2>(0.10128650732345633880098736191512, 0.79742698535308732239802527616975),
     127              : MathVector<2>(0.79742698535308732239802527616975, 0.10128650732345633880098736191512),
     128              : MathVector<2>(0.47014206410511508977044120951345, 0.47014206410511508977044120951345),
     129              : MathVector<2>(0.47014206410511508977044120951345, 0.05971587178976982045911758097311),
     130              : MathVector<2>(0.05971587178976982045911758097311, 0.47014206410511508977044120951345)
     131              : };
     132              : 
     133              : template <>
     134              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 6>, 2, 6, 12>::m_vWeight[12] =
     135              : {
     136              : 0.5 * 0.05084490637020681692093680910687,
     137              : 0.5 * 0.05084490637020681692093680910687,
     138              : 0.5 * 0.05084490637020681692093680910687,
     139              : 0.5 * 0.11678627572637936602528961138558,
     140              : 0.5 * 0.11678627572637936602528961138558,
     141              : 0.5 * 0.11678627572637936602528961138558,
     142              : 0.5 * 0.08285107561837357519355345642044,
     143              : 0.5 * 0.08285107561837357519355345642044,
     144              : 0.5 * 0.08285107561837357519355345642044,
     145              : 0.5 * 0.08285107561837357519355345642044,
     146              : 0.5 * 0.08285107561837357519355345642044,
     147              : 0.5 * 0.08285107561837357519355345642044
     148              : };
     149              : 
     150              : template <>
     151              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 6>, 2, 6, 12>::m_vPoint[12] =
     152              : {
     153              : MathVector<2>(0.06308901449150222834033160287082, 0.06308901449150222834033160287082),
     154              : MathVector<2>(0.06308901449150222834033160287082, 0.87382197101699554331933679425836),
     155              : MathVector<2>(0.87382197101699554331933679425836, 0.06308901449150222834033160287082),
     156              : MathVector<2>(0.24928674517091042129163855310702, 0.24928674517091042129163855310702),
     157              : MathVector<2>(0.24928674517091042129163855310702, 0.50142650965817915741672289378596),
     158              : MathVector<2>(0.50142650965817915741672289378596, 0.24928674517091042129163855310702),
     159              : MathVector<2>(0.05314504984481694735324967163140, 0.31035245103378440541660773395655),
     160              : MathVector<2>(0.05314504984481694735324967163140, 0.63650249912139864723014259441205),
     161              : MathVector<2>(0.31035245103378440541660773395655, 0.05314504984481694735324967163140),
     162              : MathVector<2>(0.31035245103378440541660773395655, 0.63650249912139864723014259441205),
     163              : MathVector<2>(0.63650249912139864723014259441205, 0.05314504984481694735324967163140),
     164              : MathVector<2>(0.63650249912139864723014259441205, 0.31035245103378440541660773395655)
     165              : };
     166              : 
     167              : template <>
     168              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 7>, 2, 7, 12>::m_vWeight[12] =
     169              : {
     170              : 0.5 * 0.05303405631487250285750836092148,
     171              : 0.5 * 0.05303405631487250285750836092148,
     172              : 0.5 * 0.05303405631487250285750836092148,
     173              : 0.5 * 0.08776281742889211007353980627857,
     174              : 0.5 * 0.08776281742889211007353980627857,
     175              : 0.5 * 0.08776281742889211007353980627857,
     176              : 0.5 * 0.05755008556996317147689099380044,
     177              : 0.5 * 0.05755008556996317147689099380044,
     178              : 0.5 * 0.05755008556996317147689099380044,
     179              : 0.5 * 0.13498637401960554892539417233284,
     180              : 0.5 * 0.13498637401960554892539417233284,
     181              : 0.5 * 0.13498637401960554892539417233284
     182              : };
     183              : 
     184              : template <>
     185              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 7>, 2, 7, 12>::m_vPoint[12] =
     186              : {
     187              : MathVector<2>(0.06238226509440211817368300099635, 0.06751786707391608544255713105087),
     188              : MathVector<2>(0.06751786707391608544255713105087, 0.87009986783168179638375986795278),
     189              : MathVector<2>(0.87009986783168179638375986795278, 0.06238226509440211817368300099635),
     190              : MathVector<2>(0.05522545665692661173747919027564, 0.32150249385198182266630784919920),
     191              : MathVector<2>(0.32150249385198182266630784919920, 0.62327204949109156559621296052515),
     192              : MathVector<2>(0.62327204949109156559621296052515, 0.05522545665692661173747919027564),
     193              : MathVector<2>(0.03432430294509714646963064248394, 0.66094919618673565761198031019780),
     194              : MathVector<2>(0.66094919618673565761198031019780, 0.30472650086816719591838904731826),
     195              : MathVector<2>(0.30472650086816719591838904731826, 0.03432430294509714646963064248394),
     196              : MathVector<2>(0.51584233435359177925746338682643, 0.27771616697639178256958187139372),
     197              : MathVector<2>(0.27771616697639178256958187139372, 0.20644149867001643817295474177985),
     198              : MathVector<2>(0.20644149867001643817295474177985, 0.51584233435359177925746338682643)
     199              : };
     200              : 
     201              : template <>
     202              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 8>, 2, 8, 16>::m_vWeight[16] =
     203              : {
     204              : 0.5 * 0.14431560767778716825109111048906,
     205              : 0.5 * 0.10321737053471825028179155029213,
     206              : 0.5 * 0.10321737053471825028179155029213,
     207              : 0.5 * 0.10321737053471825028179155029213,
     208              : 0.5 * 0.03245849762319808031092592834178,
     209              : 0.5 * 0.03245849762319808031092592834178,
     210              : 0.5 * 0.03245849762319808031092592834178,
     211              : 0.5 * 0.09509163426728462479389610438858,
     212              : 0.5 * 0.09509163426728462479389610438858,
     213              : 0.5 * 0.09509163426728462479389610438858,
     214              : 0.5 * 0.02723031417443499426484469007391,
     215              : 0.5 * 0.02723031417443499426484469007391,
     216              : 0.5 * 0.02723031417443499426484469007391,
     217              : 0.5 * 0.02723031417443499426484469007391,
     218              : 0.5 * 0.02723031417443499426484469007391,
     219              : 0.5 * 0.02723031417443499426484469007391
     220              : };
     221              : 
     222              : template <>
     223              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 8>, 2, 8, 16>::m_vPoint[16] =
     224              : {
     225              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333),
     226              : MathVector<2>(0.17056930775176020662229350149146, 0.17056930775176020662229350149146),
     227              : MathVector<2>(0.17056930775176020662229350149146, 0.65886138449647958675541299701707),
     228              : MathVector<2>(0.65886138449647958675541299701707, 0.17056930775176020662229350149146),
     229              : MathVector<2>(0.05054722831703097545842355059660, 0.05054722831703097545842355059660),
     230              : MathVector<2>(0.05054722831703097545842355059660, 0.89890554336593804908315289880680),
     231              : MathVector<2>(0.89890554336593804908315289880680, 0.05054722831703097545842355059660),
     232              : MathVector<2>(0.45929258829272315602881551449417, 0.45929258829272315602881551449417),
     233              : MathVector<2>(0.45929258829272315602881551449417, 0.08141482341455368794236897101166),
     234              : MathVector<2>(0.08141482341455368794236897101166, 0.45929258829272315602881551449417),
     235              : MathVector<2>(0.72849239295540428124100037917606, 0.26311282963463811342178578628464),
     236              : MathVector<2>(0.72849239295540428124100037917606, 0.00839477740995760533721383453930),
     237              : MathVector<2>(0.26311282963463811342178578628464, 0.72849239295540428124100037917606),
     238              : MathVector<2>(0.26311282963463811342178578628464, 0.00839477740995760533721383453930),
     239              : MathVector<2>(0.00839477740995760533721383453930, 0.72849239295540428124100037917606),
     240              : MathVector<2>(0.00839477740995760533721383453930, 0.26311282963463811342178578628464)
     241              : };
     242              : 
     243              : template <>
     244              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 9>, 2, 9, 19>::m_vWeight[19] =
     245              : {
     246              : 0.5 * 0.09713579628279883381924198250729,
     247              : 0.5 * 0.03133470022713907053685483128721,
     248              : 0.5 * 0.03133470022713907053685483128721,
     249              : 0.5 * 0.03133470022713907053685483128721,
     250              : 0.5 * 0.07782754100477427931673935629940,
     251              : 0.5 * 0.07782754100477427931673935629940,
     252              : 0.5 * 0.07782754100477427931673935629940,
     253              : 0.5 * 0.07964773892721025303289177426404,
     254              : 0.5 * 0.07964773892721025303289177426404,
     255              : 0.5 * 0.07964773892721025303289177426404,
     256              : 0.5 * 0.02557767565869803126167879855900,
     257              : 0.5 * 0.02557767565869803126167879855900,
     258              : 0.5 * 0.02557767565869803126167879855900,
     259              : 0.5 * 0.04328353937728937728937728937729,
     260              : 0.5 * 0.04328353937728937728937728937729,
     261              : 0.5 * 0.04328353937728937728937728937729,
     262              : 0.5 * 0.04328353937728937728937728937729,
     263              : 0.5 * 0.04328353937728937728937728937729,
     264              : 0.5 * 0.04328353937728937728937728937729
     265              : };
     266              : 
     267              : template <>
     268              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 9>, 2, 9, 19>::m_vPoint[19] =
     269              : {
     270              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333),
     271              : MathVector<2>(0.48968251919873762778370692483619, 0.48968251919873762778370692483619),
     272              : MathVector<2>(0.48968251919873762778370692483619, 0.02063496160252474443258615032762),
     273              : MathVector<2>(0.02063496160252474443258615032762, 0.48968251919873762778370692483619),
     274              : MathVector<2>(0.43708959149293663726993036443535, 0.43708959149293663726993036443535),
     275              : MathVector<2>(0.43708959149293663726993036443535, 0.12582081701412672546013927112929),
     276              : MathVector<2>(0.12582081701412672546013927112929, 0.43708959149293663726993036443535),
     277              : MathVector<2>(0.18820353561903273024096128046733, 0.18820353561903273024096128046733),
     278              : MathVector<2>(0.18820353561903273024096128046733, 0.62359292876193453951807743906533),
     279              : MathVector<2>(0.62359292876193453951807743906533, 0.18820353561903273024096128046733),
     280              : MathVector<2>(0.04472951339445270986510658996628, 0.04472951339445270986510658996628),
     281              : MathVector<2>(0.04472951339445270986510658996628, 0.91054097321109458026978682006745),
     282              : MathVector<2>(0.91054097321109458026978682006745, 0.04472951339445270986510658996628),
     283              : MathVector<2>(0.74119859878449802069007987352342, 0.03683841205473628363481759878339),
     284              : MathVector<2>(0.74119859878449802069007987352342, 0.22196298916076569567510252769319),
     285              : MathVector<2>(0.03683841205473628363481759878339, 0.74119859878449802069007987352342),
     286              : MathVector<2>(0.03683841205473628363481759878339, 0.22196298916076569567510252769319),
     287              : MathVector<2>(0.22196298916076569567510252769319, 0.74119859878449802069007987352342),
     288              : MathVector<2>(0.22196298916076569567510252769319, 0.03683841205473628363481759878339)
     289              : };
     290              : 
     291              : template <>
     292              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 10>, 2, 10, 25>::m_vWeight[25] =
     293              : {
     294              : 0.5 * 0.07989450474123970783124704521339,
     295              : 0.5 * 0.07112380223237733463929128739866,
     296              : 0.5 * 0.07112380223237733463929128739866,
     297              : 0.5 * 0.07112380223237733463929128739866,
     298              : 0.5 * 0.00822381869046419551864662036247,
     299              : 0.5 * 0.00822381869046419551864662036247,
     300              : 0.5 * 0.00822381869046419551864662036247,
     301              : 0.5 * 0.04543059229617001800707362924393,
     302              : 0.5 * 0.04543059229617001800707362924393,
     303              : 0.5 * 0.04543059229617001800707362924393,
     304              : 0.5 * 0.04543059229617001800707362924393,
     305              : 0.5 * 0.04543059229617001800707362924393,
     306              : 0.5 * 0.04543059229617001800707362924393,
     307              : 0.5 * 0.03735985623430527682623649900198,
     308              : 0.5 * 0.03735985623430527682623649900198,
     309              : 0.5 * 0.03735985623430527682623649900198,
     310              : 0.5 * 0.03735985623430527682623649900198,
     311              : 0.5 * 0.03735985623430527682623649900198,
     312              : 0.5 * 0.03735985623430527682623649900198,
     313              : 0.5 * 0.03088665688456398878251307700463,
     314              : 0.5 * 0.03088665688456398878251307700463,
     315              : 0.5 * 0.03088665688456398878251307700463,
     316              : 0.5 * 0.03088665688456398878251307700463,
     317              : 0.5 * 0.03088665688456398878251307700463,
     318              : 0.5 * 0.03088665688456398878251307700463
     319              : };
     320              : 
     321              : template <>
     322              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 10>, 2, 10, 25>::m_vPoint[25] =
     323              : {
     324              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333),
     325              : MathVector<2>(0.42508621060209057296952951163804, 0.42508621060209057296952951163804),
     326              : MathVector<2>(0.42508621060209057296952951163804, 0.14982757879581885406094097672391),
     327              : MathVector<2>(0.14982757879581885406094097672391, 0.42508621060209057296952951163804),
     328              : MathVector<2>(0.02330886751000019071446638689598, 0.02330886751000019071446638689598),
     329              : MathVector<2>(0.02330886751000019071446638689598, 0.95338226497999961857106722620804),
     330              : MathVector<2>(0.95338226497999961857106722620804, 0.02330886751000019071446638689598),
     331              : MathVector<2>(0.62830740021349255642083766607883, 0.22376697357697300622568649026820),
     332              : MathVector<2>(0.62830740021349255642083766607883, 0.14792562620953443735347584365296),
     333              : MathVector<2>(0.22376697357697300622568649026820, 0.62830740021349255642083766607883),
     334              : MathVector<2>(0.22376697357697300622568649026820, 0.14792562620953443735347584365296),
     335              : MathVector<2>(0.14792562620953443735347584365296, 0.62830740021349255642083766607883),
     336              : MathVector<2>(0.14792562620953443735347584365296, 0.22376697357697300622568649026820),
     337              : MathVector<2>(0.61131382618139764891875500225390, 0.35874014186443146457815530072385),
     338              : MathVector<2>(0.61131382618139764891875500225390, 0.02994603195417088650308969702225),
     339              : MathVector<2>(0.35874014186443146457815530072385, 0.61131382618139764891875500225390),
     340              : MathVector<2>(0.35874014186443146457815530072385, 0.02994603195417088650308969702225),
     341              : MathVector<2>(0.02994603195417088650308969702225, 0.61131382618139764891875500225390),
     342              : MathVector<2>(0.02994603195417088650308969702225, 0.35874014186443146457815530072385),
     343              : MathVector<2>(0.82107206998562937337354441347218, 0.14329537042686714530585663061732),
     344              : MathVector<2>(0.82107206998562937337354441347218, 0.03563255958750348132059895591050),
     345              : MathVector<2>(0.14329537042686714530585663061732, 0.82107206998562937337354441347218),
     346              : MathVector<2>(0.14329537042686714530585663061732, 0.03563255958750348132059895591050),
     347              : MathVector<2>(0.03563255958750348132059895591050, 0.82107206998562937337354441347218),
     348              : MathVector<2>(0.03563255958750348132059895591050, 0.14329537042686714530585663061732)
     349              : };
     350              : 
     351              : template <>
     352              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 11>, 2, 11, 28>::m_vWeight[28] =
     353              : {
     354              : 0.5 * 0.00736238378330055426425889504738,
     355              : 0.5 * 0.00736238378330055426425889504738,
     356              : 0.5 * 0.00736238378330055426425889504738,
     357              : 0.5 * 0.00736238378330055426425889504738,
     358              : 0.5 * 0.00736238378330055426425889504738,
     359              : 0.5 * 0.00736238378330055426425889504738,
     360              : 0.5 * 0.08797730116223223879809316932146,
     361              : 0.5 * 0.00874431155373602304951642879983,
     362              : 0.5 * 0.00874431155373602304951642879983,
     363              : 0.5 * 0.00874431155373602304951642879983,
     364              : 0.5 * 0.03808157199393493751502433943561,
     365              : 0.5 * 0.03808157199393493751502433943561,
     366              : 0.5 * 0.03808157199393493751502433943561,
     367              : 0.5 * 0.01885544805613129205847678259112,
     368              : 0.5 * 0.01885544805613129205847678259112,
     369              : 0.5 * 0.01885544805613129205847678259112,
     370              : 0.5 * 0.07215969754473952612402998858646,
     371              : 0.5 * 0.07215969754473952612402998858646,
     372              : 0.5 * 0.07215969754473952612402998858646,
     373              : 0.5 * 0.06932913870553589984176565090381,
     374              : 0.5 * 0.06932913870553589984176565090381,
     375              : 0.5 * 0.06932913870553589984176565090381,
     376              : 0.5 * 0.04105631542928856664165231490729,
     377              : 0.5 * 0.04105631542928856664165231490729,
     378              : 0.5 * 0.04105631542928856664165231490729,
     379              : 0.5 * 0.04105631542928856664165231490729,
     380              : 0.5 * 0.04105631542928856664165231490729,
     381              : 0.5 * 0.04105631542928856664165231490729
     382              : };
     383              : 
     384              : template <>
     385              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 11>, 2, 11, 28>::m_vPoint[28] =
     386              : {
     387              : MathVector<2>(0.85887028128263670403917393805835, 0.14112971871736329596082606194165),
     388              : MathVector<2>(0.85887028128263670403917393805835, 0.00000000000000000000000000000000),
     389              : MathVector<2>(0.14112971871736329596082606194165, 0.85887028128263670403917393805835),
     390              : MathVector<2>(0.14112971871736329596082606194165, 0.00000000000000000000000000000000),
     391              : MathVector<2>(0.00000000000000000000000000000000, 0.85887028128263670403917393805835),
     392              : MathVector<2>(0.00000000000000000000000000000000, 0.14112971871736329596082606194165),
     393              : MathVector<2>(0.33333333333333333333333333333333, 0.33333333333333333333333333333333),
     394              : MathVector<2>(0.02598914092828739526003248549884, 0.02598914092828739526003248549884),
     395              : MathVector<2>(0.02598914092828739526003248549884, 0.94802171814342520947993502900232),
     396              : MathVector<2>(0.94802171814342520947993502900232, 0.02598914092828739526003248549884),
     397              : MathVector<2>(0.09428750264792249563056977627541, 0.09428750264792249563056977627541),
     398              : MathVector<2>(0.09428750264792249563056977627541, 0.81142499470415500873886044744919),
     399              : MathVector<2>(0.81142499470415500873886044744919, 0.09428750264792249563056977627541),
     400              : MathVector<2>(0.49463677501721381374163260230644, 0.49463677501721381374163260230644),
     401              : MathVector<2>(0.49463677501721381374163260230644, 0.01072644996557237251673479538713),
     402              : MathVector<2>(0.01072644996557237251673479538713, 0.49463677501721381374163260230644),
     403              : MathVector<2>(0.20734338261451133345293402411297, 0.20734338261451133345293402411297),
     404              : MathVector<2>(0.20734338261451133345293402411297, 0.58531323477097733309413195177407),
     405              : MathVector<2>(0.58531323477097733309413195177407, 0.20734338261451133345293402411297),
     406              : MathVector<2>(0.43890780570049209506106538163613, 0.43890780570049209506106538163613),
     407              : MathVector<2>(0.43890780570049209506106538163613, 0.12218438859901580987786923672775),
     408              : MathVector<2>(0.12218438859901580987786923672775, 0.43890780570049209506106538163613),
     409              : MathVector<2>(0.67793765488259040154212614118875, 0.04484167758913044330905239146880),
     410              : MathVector<2>(0.67793765488259040154212614118875, 0.27722066752827915514882146734245),
     411              : MathVector<2>(0.04484167758913044330905239146880, 0.67793765488259040154212614118875),
     412              : MathVector<2>(0.04484167758913044330905239146880, 0.27722066752827915514882146734245),
     413              : MathVector<2>(0.27722066752827915514882146734245, 0.67793765488259040154212614118875),
     414              : MathVector<2>(0.27722066752827915514882146734245, 0.04484167758913044330905239146880)
     415              : };
     416              : 
     417              : template <>
     418              : number GaussQuadBase<GaussQuadrature<ReferenceTriangle, 12>, 2, 12, 33>::m_vWeight[33] =
     419              : {
     420              : 0.5 * 0.02573106644045500000000000000000,
     421              : 0.5 * 0.02573106644045500000000000000000,
     422              : 0.5 * 0.02573106644045500000000000000000,
     423              : 0.5 * 0.04369254453803800000000000000000,
     424              : 0.5 * 0.04369254453803800000000000000000,
     425              : 0.5 * 0.04369254453803800000000000000000,
     426              : 0.5 * 0.06285822421788500000000000000000,
     427              : 0.5 * 0.06285822421788500000000000000000,
     428              : 0.5 * 0.06285822421788500000000000000000,
     429              : 0.5 * 0.03479611293070900000000000000000,
     430              : 0.5 * 0.03479611293070900000000000000000,
     431              : 0.5 * 0.03479611293070900000000000000000,
     432              : 0.5 * 0.00616626105155900000000000000000,
     433              : 0.5 * 0.00616626105155900000000000000000,
     434              : 0.5 * 0.00616626105155900000000000000000,
     435              : 0.5 * 0.04037155776638100000000000000000,
     436              : 0.5 * 0.04037155776638100000000000000000,
     437              : 0.5 * 0.04037155776638100000000000000000,
     438              : 0.5 * 0.04037155776638100000000000000000,
     439              : 0.5 * 0.04037155776638100000000000000000,
     440              : 0.5 * 0.04037155776638100000000000000000,
     441              : 0.5 * 0.02235677320230300000000000000000,
     442              : 0.5 * 0.02235677320230300000000000000000,
     443              : 0.5 * 0.02235677320230300000000000000000,
     444              : 0.5 * 0.02235677320230300000000000000000,
     445              : 0.5 * 0.02235677320230300000000000000000,
     446              : 0.5 * 0.02235677320230300000000000000000,
     447              : 0.5 * 0.01731623110865900000000000000000,
     448              : 0.5 * 0.01731623110865900000000000000000,
     449              : 0.5 * 0.01731623110865900000000000000000,
     450              : 0.5 * 0.01731623110865900000000000000000,
     451              : 0.5 * 0.01731623110865900000000000000000,
     452              : 0.5 * 0.01731623110865900000000000000000
     453              : };
     454              : 
     455              : template <>
     456              : MathVector<2> GaussQuadBase<GaussQuadrature<ReferenceTriangle, 12>, 2, 12, 33>::m_vPoint[33] =
     457              : {
     458              : MathVector<2>(0.02356522045239000000000000000000, 0.48821738977380500000000000000000),
     459              : MathVector<2>(0.48821738977380500000000000000000, 0.02356522045239000000000000000000),
     460              : MathVector<2>(0.48821738977380500000000000000000, 0.48821738977380500000000000000000),
     461              : MathVector<2>(0.43972439229446000000000000000000, 0.43972439229446000000000000000000),
     462              : MathVector<2>(0.43972439229446000000000000000000, 0.12055121541107900000000000000000),
     463              : MathVector<2>(0.12055121541107900000000000000000, 0.43972439229446000000000000000000),
     464              : MathVector<2>(0.27121038501211600000000000000000, 0.27121038501211600000000000000000),
     465              : MathVector<2>(0.27121038501211600000000000000000, 0.45757922997576800000000000000000),
     466              : MathVector<2>(0.45757922997576800000000000000000, 0.27121038501211600000000000000000),
     467              : MathVector<2>(0.12757614554158600000000000000000, 0.12757614554158600000000000000000),
     468              : MathVector<2>(0.12757614554158600000000000000000, 0.74484770891682790000000000000000),
     469              : MathVector<2>(0.74484770891682790000000000000000, 0.12757614554158600000000000000000),
     470              : MathVector<2>(0.02131735045321000000000000000000, 0.02131735045321000000000000000000),
     471              : MathVector<2>(0.02131735045321000000000000000000, 0.95736529909357990000000000000000),
     472              : MathVector<2>(0.95736529909357990000000000000000, 0.02131735045321000000000000000000),
     473              : MathVector<2>(0.11534349453469800000000000000000, 0.27571326968551400000000000000000),
     474              : MathVector<2>(0.11534349453469800000000000000000, 0.60894323577978790000000000000000),
     475              : MathVector<2>(0.27571326968551400000000000000000, 0.11534349453469800000000000000000),
     476              : MathVector<2>(0.27571326968551400000000000000000, 0.60894323577978790000000000000000),
     477              : MathVector<2>(0.60894323577978790000000000000000, 0.11534349453469800000000000000000),
     478              : MathVector<2>(0.60894323577978790000000000000000, 0.27571326968551400000000000000000),
     479              : MathVector<2>(0.02283833222225700000000000000000, 0.28132558098994000000000000000000),
     480              : MathVector<2>(0.02283833222225700000000000000000, 0.69583608678780310000000000000000),
     481              : MathVector<2>(0.28132558098994000000000000000000, 0.02283833222225700000000000000000),
     482              : MathVector<2>(0.28132558098994000000000000000000, 0.69583608678780310000000000000000),
     483              : MathVector<2>(0.69583608678780310000000000000000, 0.02283833222225700000000000000000),
     484              : MathVector<2>(0.69583608678780310000000000000000, 0.28132558098994000000000000000000),
     485              : MathVector<2>(0.02573405054833000000000000000000, 0.11625191590759700000000000000000),
     486              : MathVector<2>(0.02573405054833000000000000000000, 0.85801403354407300000000000000000),
     487              : MathVector<2>(0.11625191590759700000000000000000, 0.02573405054833000000000000000000),
     488              : MathVector<2>(0.11625191590759700000000000000000, 0.85801403354407300000000000000000),
     489              : MathVector<2>(0.85801403354407300000000000000000, 0.02573405054833000000000000000000),
     490              : MathVector<2>(0.85801403354407300000000000000000, 0.11625191590759700000000000000000)
     491              : };
     492              : 
     493              : 
     494              : 
     495              : 
     496              : template <>
     497            0 : FlexGaussQuadrature<ReferenceTriangle>::FlexGaussQuadrature(int order)
     498              : {
     499            0 :         switch(order)
     500              :         {
     501              :         case 0:
     502              :         case 1:
     503            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 1>::order();
     504            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 1>::size();
     505            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 1>::points();
     506            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 1>::weights();
     507            0 :                 break;
     508              : 
     509              :         case 2:
     510            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 2>::order();
     511            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 2>::size();
     512            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 2>::points();
     513            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 2>::weights();
     514            0 :                 break;
     515              : 
     516              :         case 3:
     517            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 3>::order();
     518            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 3>::size();
     519            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 3>::points();
     520            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 3>::weights();
     521            0 :                 break;
     522              : 
     523              :         case 4:
     524            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 4>::order();
     525            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 4>::size();
     526            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 4>::points();
     527            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 4>::weights();
     528            0 :                 break;
     529              : 
     530              :         case 5:
     531            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 5>::order();
     532            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 5>::size();
     533            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 5>::points();
     534            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 5>::weights();
     535            0 :                 break;
     536              : 
     537              :         case 6:
     538            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 6>::order();
     539            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 6>::size();
     540            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 6>::points();
     541            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 6>::weights();
     542            0 :                 break;
     543              : 
     544              :         case 7:
     545            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 7>::order();
     546            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 7>::size();
     547            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 7>::points();
     548            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 7>::weights();
     549            0 :                 break;
     550              : 
     551              :         case 8:
     552            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 8>::order();
     553            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 8>::size();
     554            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 8>::points();
     555            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 8>::weights();
     556            0 :                 break;
     557              : 
     558              :         case 9:
     559            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 9>::order();
     560            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 9>::size();
     561            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 9>::points();
     562            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 9>::weights();
     563            0 :                 break;
     564              : 
     565              :         case 10:
     566            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 10>::order();
     567            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 10>::size();
     568            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 10>::points();
     569            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 10>::weights();
     570            0 :                 break;
     571              : 
     572              :         case 11:
     573            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 11>::order();
     574            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 11>::size();
     575            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 11>::points();
     576            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 11>::weights();
     577            0 :                 break;
     578              : 
     579              :         case 12:
     580            0 :                 m_order = GaussQuadrature<ReferenceTriangle, 12>::order();
     581            0 :                 m_numPoints = GaussQuadrature<ReferenceTriangle, 12>::size();
     582            0 :                 m_pvPoint = GaussQuadrature<ReferenceTriangle, 12>::points();
     583            0 :                 m_pvWeight = GaussQuadrature<ReferenceTriangle, 12>::weights();
     584            0 :                 break;
     585              : 
     586            0 :         default: UG_THROW("Order "<<order<<" not available for GaussQuadrature of triangle.");
     587              :         }
     588            0 : }
     589              : }; // namespace ug
     590              : 
        

Generated by: LCOV version 2.0-1