1 function res = triaquadrature(poldeg,func,varargin)
2 %
function res = triaquadrature(poldeg,func,varargin)
4 % integration of
function func over reference triangle.
5 % by Gaussian quadrature exactly integrating polynoms of poldeg.
6 % func is a
function getting a local coordinate vector and varargin
7 % and giving a (vectorial or scalar) result
9 % G.R. Cowper
"Gaussian Quadrature Formulas for Triangles"
10 % and dune-quadratures quadratures.cc
11 % degrees 1-11 are copied, see the quadratures.cc included below
12 %
for more quadraturerules.
14 % Bernard Haasdonk 28.1.2009
19 points = 1/3 * ones(1,2);
26 weights = 1/6 * ones(1,3);
30 0.81684757298045851308085707319560, 0.091576213509770743459571463402202;
31 0.091576213509770743459571463402202, 0.81684757298045851308085707319560;
32 0.091576213509770743459571463402202, 0.091576213509770743459571463402202;
33 0.10810301816807022736334149223390, 0.44594849091596488631832925388305;
34 0.44594849091596488631832925388305, 0.10810301816807022736334149223390;
35 0.44594849091596488631832925388305, 0.44594849091596488631832925388305;
37 weights = [ 0.5 * 0.10995174365532186763832632490021 * ones(3,1);...
38 0.5 * 0.22338158967801146569500700843312 * ones(3,1)];
40 % points = [0.816847572980459, 0.091576213509771, 0.091576213509771; ...
41 % 0.091576213509771, 0.816847572980459, 0.091576213509771; ...
42 % 0.091576213509771, 0.091576213509771, 0.816847572980459; ...
43 % 0.108103018168070, 0.445948490915965, 0.445948490915965; ...
44 % 0.445948490915965, 0.108103018168070, 0.445948490915965; ...
45 % 0.445948490915965, 0.445948490915965, 0.108103018168070]
';
46 % weights = 0.5 * [0.109951743655322, 0.109951743655322, 0.109951743655322, ...
47 % 0.223381589678011, 0.223381589678011, ...
51 % points = [1/3, 1/3, 1/3;...
52 % 0.479308067841923, 0.260345966079038, 0.260345966079038; ...
53 % 0.260345966079038, 0.479308067841923, 0.260345966079038; ...
54 % 0.260345966079038, 0.260345966079038, 0.479308067841923; ...
55 % 0.869739794195568, 0.065130102902216, 0.065130102902216; ...
56 % 0.065130102902216, 0.869739794195568, 0.065130102902216; ...
57 % 0.065130102902216, 0.065130102902216, 0.869739794195568; ...
58 % 0.638444188569809, 0.312865496004875, 0.048690315425316;...
59 % 0.638444188569809, 0.048690315425316, 0.312865496004875;...
60 % 0.048690315425316, 0.638444188569809, 0.312865496004875;...
61 % 0.048690315425316, 0.312865496004875, 0.638444188569809;...
62 % 0.312865496004875, 0.048690315425316, 0.638444188569809;...
63 % 0.312865496004875, 0.638444188569809, 0.048690315425316 ...
65 % weights = 0.5 * [-0.149570044467670, ...
66 % 0.175615257433204, 0.175615257433204, 0.175615257433204, ...
67 % 0.053347235608839, 0.053347235608839, 0.053347235608839, ...
68 % 0.077113760890257, 0.077113760890257, 0.077113760890257, ...
69 % 0.077113760890257, 0.077113760890257, 0.077113760890257 ...
73 0.0623822650944021181736830009963499, 0.0675178670739160854425571310508685;
74 0.0675178670739160854425571310508685, 0.870099867831681796383759867952782;
75 0.870099867831681796383759867952782, 0.0623822650944021181736830009963499;
76 0.0552254566569266117374791902756449, 0.321502493851981822666307849199202;
77 0.321502493851981822666307849199202, 0.623272049491091565596212960525153;
78 0.623272049491091565596212960525153, 0.0552254566569266117374791902756449;
79 0.0343243029450971464696306424839376,0.660949196186735657611980310197799;
80 0.660949196186735657611980310197799, 0.304726500868167195918389047318263;
81 0.304726500868167195918389047318263, 0.0343243029450971464696306424839376;
82 0.515842334353591779257463386826430, 0.277716166976391782569581871393723;
83 0.277716166976391782569581871393723, 0.20644149867001643817295474177985;
84 0.20644149867001643817295474177985, 0.515842334353591779257463386826430];
87 0.053034056314872502857508360921478;
88 0.053034056314872502857508360921478;
89 0.053034056314872502857508360921478;
90 0.087762817428892110073539806278575;
91 0.087762817428892110073539806278575;
92 0.087762817428892110073539806278575;
93 0.057550085569963171476890993800437;
94 0.057550085569963171476890993800437;
95 0.057550085569963171476890993800437;
96 0.13498637401960554892539417233284;
97 0.13498637401960554892539417233284;
98 0.13498637401960554892539417233284];
102 0.858870281282636704039173938058347, 0.141129718717363295960826061941652;
103 0.858870281282636704039173938058347, 0.0;
104 0.141129718717363295960826061941652, 0.858870281282636704039173938058347;
105 0.141129718717363295960826061941652, 0.0;
106 0.0, 0.858870281282636704039173938058347;
107 0.0, 0.141129718717363295960826061941652;
108 0.333333333333333333333333333333333, 0.333333333333333333333333333333333;
109 0.025989140928287395260032485498841, 0.025989140928287395260032485498841;
110 0.025989140928287395260032485498841, 0.94802171814342520947993502900232;
111 0.94802171814342520947993502900232, 0.025989140928287395260032485498841;
112 0.094287502647922495630569776275405, 0.094287502647922495630569776275405;
113 0.094287502647922495630569776275405, 0.81142499470415500873886044744919;
114 0.81142499470415500873886044744919, 0.094287502647922495630569776275405;
115 0.49463677501721381374163260230644, 0.49463677501721381374163260230644;
116 0.49463677501721381374163260230644, 0.01072644996557237251673479538713;
117 0.01072644996557237251673479538713, 0.49463677501721381374163260230644;
118 0.20734338261451133345293402411297, 0.20734338261451133345293402411297;
119 0.20734338261451133345293402411297, 0.58531323477097733309413195177407;
120 0.58531323477097733309413195177407, 0.20734338261451133345293402411297;
121 0.43890780570049209506106538163613, 0.43890780570049209506106538163613;
122 0.43890780570049209506106538163613, 0.12218438859901580987786923672775;
123 0.12218438859901580987786923672775, 0.43890780570049209506106538163613;
124 0.67793765488259040154212614118875, 0.044841677589130443309052391468801;
125 0.67793765488259040154212614118875, 0.27722066752827915514882146734245;
126 0.044841677589130443309052391468801, 0.67793765488259040154212614118875;
127 0.044841677589130443309052391468801, 0.27722066752827915514882146734245;
128 0.27722066752827915514882146734245, 0.67793765488259040154212614118875;
129 0.27722066752827915514882146734245, 0.044841677589130443309052391468801];
132 0.0073623837833005542642588950473806;
133 0.0073623837833005542642588950473806;
134 0.0073623837833005542642588950473806;
135 0.0073623837833005542642588950473806;
136 0.0073623837833005542642588950473806;
137 0.0073623837833005542642588950473806;
138 0.087977301162232238798093169321456;
139 0.0087443115537360230495164287998252;
140 0.0087443115537360230495164287998252;
141 0.0087443115537360230495164287998252;
142 0.038081571993934937515024339435614;
143 0.038081571993934937515024339435614;
144 0.038081571993934937515024339435614;
145 0.018855448056131292058476782591115;
146 0.018855448056131292058476782591115;
147 0.018855448056131292058476782591115;
148 0.072159697544739526124029988586463;
149 0.072159697544739526124029988586463;
150 0.072159697544739526124029988586463;
151 0.069329138705535899841765650903814;
152 0.069329138705535899841765650903814;
153 0.069329138705535899841765650903814;
154 0.041056315429288566641652314907294;
155 0.041056315429288566641652314907294;
156 0.041056315429288566641652314907294;
157 0.041056315429288566641652314907294;
158 0.041056315429288566641652314907294;
159 0.041056315429288566641652314907294];
161 error(
'quadrature of desired degree not available')
164 res = quadrature(weights,points,func,varargin{:});
166 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
167 % quadraturerules.cc from dune:
169 % $$$ #include
"config.h"
170 % $$$ #include
"../quadraturerules.hh"
172 % $$$
namespace Dune {
175 % $$$
template<
int dim>
176 % $$$
class SimplexQuadraturePoints;
179 % $$$
template<
int dim>
180 % $$$
struct SimplexQuadraturePointsSingleton {
181 % $$$
static SimplexQuadraturePoints<dim> sqp;
185 % $$$
struct SimplexQuadraturePointsSingleton<2> {
186 % $$$
static SimplexQuadraturePoints<2> sqp;
190 % $$$
struct SimplexQuadraturePointsSingleton<3> {
191 % $$$
static SimplexQuadraturePoints<3> sqp;
195 % $$$
class SimplexQuadraturePoints<2>
198 % $$$
enum { MAXP=33};
199 % $$$
enum { highest_order=12 };
202 % $$$ SimplexQuadraturePoints ()
209 % $$$ G[m][0][0] = 0.333333333333333333333333333333333;
210 % $$$ G[m][0][1] = 0.333333333333333333333333333333333;
217 % $$$ G[m][0][0] = 4.0/6.0;
218 % $$$ G[m][0][1] = 1.0/6.0;
219 % $$$ G[m][1][0] = 1.0/6.0;
220 % $$$ G[m][1][1] = 4.0/6.0;
221 % $$$ G[m][2][0] = 1.0/6.0;
222 % $$$ G[m][2][1] = 1.0/6.0;
223 % $$$ W[m][0] = 0.5/3.0;
224 % $$$ W[m][1] = 0.5/3.0;
225 % $$$ W[m][2] = 0.5/3.0;
231 % $$$ G[m][0][0] = 10.0/30.0;
232 % $$$ G[m][0][1] = 10.0/30.0;
233 % $$$ G[m][1][0] = 18.0/30.0;
234 % $$$ G[m][1][1] = 6.0/30.0;
235 % $$$ G[m][2][0] = 6.0/30.0;
236 % $$$ G[m][2][1] = 18.0/30.0;
237 % $$$ G[m][3][0] = 6.0/30.0;
238 % $$$ G[m][3][1] = 6.0/30.0;
240 % $$$ W[m][0] = 0.5 * -27.0/48.0;
241 % $$$ W[m][1] = 0.5 * 25.0/48.0;
242 % $$$ W[m][2] = 0.5 * 25.0/48.0;
243 % $$$ W[m][3] = 0.5 * 25.0/48.0;
249 % $$$ G[m][0][0] = 0.81684757298045851308085707319560;
250 % $$$ G[m][0][1] = 0.091576213509770743459571463402202;
251 % $$$ G[m][1][0] = 0.091576213509770743459571463402202;
252 % $$$ G[m][1][1] = 0.81684757298045851308085707319560;
253 % $$$ G[m][2][0] = 0.091576213509770743459571463402202;
254 % $$$ G[m][2][1] = 0.091576213509770743459571463402202;
255 % $$$ G[m][3][0] = 0.10810301816807022736334149223390;
256 % $$$ G[m][3][1] = 0.44594849091596488631832925388305;
257 % $$$ G[m][4][0] = 0.44594849091596488631832925388305;
258 % $$$ G[m][4][1] = 0.10810301816807022736334149223390;
259 % $$$ G[m][5][0] = 0.44594849091596488631832925388305;
260 % $$$ G[m][5][1] = 0.44594849091596488631832925388305;
262 % $$$ W[m][0] = 0.5 * 0.10995174365532186763832632490021;
263 % $$$ W[m][1] = 0.5 * 0.10995174365532186763832632490021;
264 % $$$ W[m][2] = 0.5 * 0.10995174365532186763832632490021;
265 % $$$ W[m][3] = 0.5 * 0.22338158967801146569500700843312;
266 % $$$ W[m][4] = 0.5 * 0.22338158967801146569500700843312;
267 % $$$ W[m][5] = 0.5 * 0.22338158967801146569500700843312;
274 % $$$ G[m][0][0] = 0.333333333333333333333333333333333;
275 % $$$ G[m][0][1] = 0.333333333333333333333333333333333;
276 % $$$ G[m][1][0] = 0.79742698535308732239802527616975;
277 % $$$ G[m][1][1] = 0.1012865073234563388009873619151;
278 % $$$ G[m][2][0] = 0.10128650732345633880098736191512;
279 % $$$ G[m][2][1] = 0.79742698535308732239802527616975;
280 % $$$ G[m][3][0] = 0.10128650732345633880098736191512;
281 % $$$ G[m][3][1] = 0.10128650732345633880098736191512;
282 % $$$ G[m][4][0] = 0.05971587178976982045911758097311;
283 % $$$ G[m][4][1] = 0.47014206410511508977044120951345;
284 % $$$ G[m][5][0] = 0.47014206410511508977044120951345;
285 % $$$ G[m][5][1] = 0.05971587178976982045911758097311;
286 % $$$ G[m][6][0] = 0.47014206410511508977044120951345;
287 % $$$ G[m][6][1] = 0.47014206410511508977044120951345;
289 % $$$ W[m][0] = 0.5 * 0.225;
290 % $$$ W[m][1] = 0.5 * 0.12593918054482715259568394550018;
291 % $$$ W[m][2] = 0.5 * 0.12593918054482715259568394550018;
292 % $$$ W[m][3] = 0.5 * 0.12593918054482715259568394550018;
293 % $$$ W[m][4] = 0.5 * 0.13239415278850618073764938783315;
294 % $$$ W[m][5] = 0.5 * 0.13239415278850618073764938783315;
295 % $$$ W[m][6] = 0.5 * 0.13239415278850618073764938783315;
301 % $$$ G[m][0][0] = 0.063089014491502228340331602870819;
302 % $$$ G[m][0][1] = 0.063089014491502228340331602870819;
303 % $$$ G[m][1][0] = 0.063089014491502228340331602870819;
304 % $$$ G[m][1][1] = 0.87382197101699554331933679425836;
305 % $$$ G[m][2][0] = 0.87382197101699554331933679425836;
306 % $$$ G[m][2][1] = 0.063089014491502228340331602870819;
307 % $$$ G[m][3][0] = 0.24928674517091042129163855310702;
308 % $$$ G[m][3][1] = 0.24928674517091042129163855310702;
309 % $$$ G[m][4][0] = 0.24928674517091042129163855310702;
310 % $$$ G[m][4][1] = 0.50142650965817915741672289378596;
311 % $$$ G[m][5][0] = 0.50142650965817915741672289378596;
312 % $$$ G[m][5][1] = 0.24928674517091042129163855310702;
313 % $$$ G[m][6][0] = 0.053145049844816947353249671631398;
314 % $$$ G[m][6][1] = 0.31035245103378440541660773395655;
315 % $$$ G[m][7][0] = 0.053145049844816947353249671631398;
316 % $$$ G[m][7][1] = 0.63650249912139864723014259441205;
317 % $$$ G[m][8][0] = 0.31035245103378440541660773395655;
318 % $$$ G[m][8][1] = 0.053145049844816947353249671631398;
319 % $$$ G[m][9][0] = 0.31035245103378440541660773395655;
320 % $$$ G[m][9][1] = 0.63650249912139864723014259441205;
321 % $$$ G[m][10][0] = 0.63650249912139864723014259441205;
322 % $$$ G[m][10][1] = 0.053145049844816947353249671631398;
323 % $$$ G[m][11][0] = 0.63650249912139864723014259441205;
324 % $$$ G[m][11][1] = 0.31035245103378440541660773395655;
326 % $$$ W[m][0] = 0.5 * 0.050844906370206816920936809106869;
327 % $$$ W[m][1] = 0.5 * 0.050844906370206816920936809106869;
328 % $$$ W[m][2] = 0.5 * 0.050844906370206816920936809106869;
329 % $$$ W[m][3] = 0.5 * 0.11678627572637936602528961138558;
330 % $$$ W[m][4] = 0.5 * 0.11678627572637936602528961138558;
331 % $$$ W[m][5] = 0.5 * 0.11678627572637936602528961138558;
332 % $$$ W[m][6] = 0.5 * 0.082851075618373575193553456420442;
333 % $$$ W[m][7] = 0.5 * 0.082851075618373575193553456420442;
334 % $$$ W[m][8] = 0.5 * 0.082851075618373575193553456420442;
335 % $$$ W[m][9] = 0.5 * 0.082851075618373575193553456420442;
336 % $$$ W[m][10] = 0.5 * 0.082851075618373575193553456420442;
337 % $$$ W[m][11] = 0.5 * 0.082851075618373575193553456420442;
343 % $$$ G[m][0][0] = 0.0623822650944021181736830009963499;
344 % $$$ G[m][0][1] = 0.0675178670739160854425571310508685;
345 % $$$ G[m][1][0] = 0.0675178670739160854425571310508685;
346 % $$$ G[m][1][1] = 0.870099867831681796383759867952782;
347 % $$$ G[m][2][0] = 0.870099867831681796383759867952782;
348 % $$$ G[m][2][1] = 0.0623822650944021181736830009963499;
349 % $$$ G[m][3][0] = 0.0552254566569266117374791902756449;
350 % $$$ G[m][3][1] = 0.321502493851981822666307849199202;
351 % $$$ G[m][4][0] = 0.321502493851981822666307849199202;
352 % $$$ G[m][4][1] = 0.623272049491091565596212960525153;
353 % $$$ G[m][5][0] = 0.623272049491091565596212960525153;
354 % $$$ G[m][5][1] = 0.0552254566569266117374791902756449;
355 % $$$ G[m][6][0] = 0.0343243029450971464696306424839376;
356 % $$$ G[m][6][1] = 0.660949196186735657611980310197799;
357 % $$$ G[m][7][0] = 0.660949196186735657611980310197799;
358 % $$$ G[m][7][1] = 0.304726500868167195918389047318263;
359 % $$$ G[m][8][0] = 0.304726500868167195918389047318263;
360 % $$$ G[m][8][1] = 0.0343243029450971464696306424839376;
361 % $$$ G[m][9][0] = 0.515842334353591779257463386826430;
362 % $$$ G[m][9][1] = 0.277716166976391782569581871393723;
363 % $$$ G[m][10][0] = 0.277716166976391782569581871393723;
364 % $$$ G[m][10][1] = 0.20644149867001643817295474177985;
365 % $$$ G[m][11][0] = 0.20644149867001643817295474177985;
366 % $$$ G[m][11][1] = 0.515842334353591779257463386826430;
368 % $$$ W[m][0] = 0.5 * 0.053034056314872502857508360921478;
369 % $$$ W[m][1] = 0.5 * 0.053034056314872502857508360921478;
370 % $$$ W[m][2] = 0.5 * 0.053034056314872502857508360921478;
371 % $$$ W[m][3] = 0.5 * 0.087762817428892110073539806278575;
372 % $$$ W[m][4] = 0.5 * 0.087762817428892110073539806278575;
373 % $$$ W[m][5] = 0.5 * 0.087762817428892110073539806278575;
374 % $$$ W[m][6] = 0.5 * 0.057550085569963171476890993800437;
375 % $$$ W[m][7] = 0.5 * 0.057550085569963171476890993800437;
376 % $$$ W[m][8] = 0.5 * 0.057550085569963171476890993800437;
377 % $$$ W[m][9] = 0.5 * 0.13498637401960554892539417233284;
378 % $$$ W[m][10] = 0.5 * 0.13498637401960554892539417233284;
379 % $$$ W[m][11] = 0.5 * 0.13498637401960554892539417233284;
386 % $$$ G[m][0][0] = 0.33333333333333333333333333333333;
387 % $$$ G[m][0][1] = 0.33333333333333333333333333333333;
388 % $$$ G[m][1][0] = 0.17056930775176020662229350149146;
389 % $$$ G[m][1][1] = 0.17056930775176020662229350149146;
390 % $$$ G[m][2][0] = 0.17056930775176020662229350149146;
391 % $$$ G[m][2][1] = 0.65886138449647958675541299701707;
392 % $$$ G[m][3][0] = 0.65886138449647958675541299701707;
393 % $$$ G[m][3][1] = 0.17056930775176020662229350149146;
394 % $$$ G[m][4][0] = 0.050547228317030975458423550596599;
395 % $$$ G[m][4][1] = 0.050547228317030975458423550596599;
396 % $$$ G[m][5][0] = 0.050547228317030975458423550596599;
397 % $$$ G[m][5][1] = 0.89890554336593804908315289880680;
398 % $$$ G[m][6][0] = 0.89890554336593804908315289880680;
399 % $$$ G[m][6][1] = 0.050547228317030975458423550596599;
400 % $$$ G[m][7][0] = 0.45929258829272315602881551449417;
401 % $$$ G[m][7][1] = 0.45929258829272315602881551449417;
402 % $$$ G[m][8][0] = 0.45929258829272315602881551449417;
403 % $$$ G[m][8][1] = 0.08141482341455368794236897101166;
404 % $$$ G[m][9][0] = 0.08141482341455368794236897101166;
405 % $$$ G[m][9][1] = 0.45929258829272315602881551449417;
406 % $$$ G[m][10][0] = 0.72849239295540428124100037917606;
407 % $$$ G[m][10][1] = 0.26311282963463811342178578628464;
408 % $$$ G[m][11][0] = 0.72849239295540428124100037917606;
409 % $$$ G[m][11][1] = 0.00839477740995760533721383453930;
410 % $$$ G[m][12][0] = 0.26311282963463811342178578628464;
411 % $$$ G[m][12][1] = 0.72849239295540428124100037917606;
412 % $$$ G[m][13][0] = 0.26311282963463811342178578628464;
413 % $$$ G[m][13][1] = 0.00839477740995760533721383453930;
414 % $$$ G[m][14][0] = 0.00839477740995760533721383453930;
415 % $$$ G[m][14][1] = 0.72849239295540428124100037917606;
416 % $$$ G[m][15][0] = 0.00839477740995760533721383453930;
417 % $$$ G[m][15][1] = 0.26311282963463811342178578628464;
419 % $$$ W[m][0] = 0.5 * 0.14431560767778716825109111048906;
420 % $$$ W[m][1] = 0.5 * 0.10321737053471825028179155029213;
421 % $$$ W[m][2] = 0.5 * 0.10321737053471825028179155029213;
422 % $$$ W[m][3] = 0.5 * 0.10321737053471825028179155029213;
423 % $$$ W[m][4] = 0.5 * 0.032458497623198080310925928341780;
424 % $$$ W[m][5] = 0.5 * 0.032458497623198080310925928341780;
425 % $$$ W[m][6] = 0.5 * 0.032458497623198080310925928341780;
426 % $$$ W[m][7] = 0.5 * 0.095091634267284624793896104388584;
427 % $$$ W[m][8] = 0.5 * 0.095091634267284624793896104388584;
428 % $$$ W[m][9] = 0.5 * 0.095091634267284624793896104388584;
429 % $$$ W[m][10] = 0.5 * 0.027230314174434994264844690073909;
430 % $$$ W[m][11] = 0.5 * 0.027230314174434994264844690073909;
431 % $$$ W[m][12] = 0.5 * 0.027230314174434994264844690073909;
432 % $$$ W[m][13] = 0.5 * 0.027230314174434994264844690073909;
433 % $$$ W[m][14] = 0.5 * 0.027230314174434994264844690073909;
434 % $$$ W[m][15] = 0.5 * 0.027230314174434994264844690073909;
441 % $$$ G[m][0][0] = 0.333333333333333333333333333333333;
442 % $$$ G[m][0][1] = 0.333333333333333333333333333333333;
443 % $$$ G[m][1][0] = 0.48968251919873762778370692483619;
444 % $$$ G[m][1][1] = 0.48968251919873762778370692483619;
445 % $$$ G[m][2][0] = 0.48968251919873762778370692483619;
446 % $$$ G[m][2][1] = 0.02063496160252474443258615032762;
447 % $$$ G[m][3][0] = 0.02063496160252474443258615032762;
448 % $$$ G[m][3][1] = 0.48968251919873762778370692483619;
449 % $$$ G[m][4][0] = 0.43708959149293663726993036443535;
450 % $$$ G[m][4][1] = 0.43708959149293663726993036443535;
451 % $$$ G[m][5][0] = 0.43708959149293663726993036443535;
452 % $$$ G[m][5][1] = 0.12582081701412672546013927112929;
453 % $$$ G[m][6][0] = 0.12582081701412672546013927112929;
454 % $$$ G[m][6][1] = 0.43708959149293663726993036443535;
455 % $$$ G[m][7][0] = 0.18820353561903273024096128046733;
456 % $$$ G[m][7][1] = 0.18820353561903273024096128046733;
457 % $$$ G[m][8][0] = 0.18820353561903273024096128046733;
458 % $$$ G[m][8][1] = 0.62359292876193453951807743906533;
459 % $$$ G[m][9][0] = 0.62359292876193453951807743906533;
460 % $$$ G[m][9][1] = 0.18820353561903273024096128046733;
461 % $$$ G[m][10][0] = 0.044729513394452709865106589966276;
462 % $$$ G[m][10][1] = 0.044729513394452709865106589966276;
463 % $$$ G[m][11][0] = 0.044729513394452709865106589966276;
464 % $$$ G[m][11][1] = 0.91054097321109458026978682006745;
465 % $$$ G[m][12][0] = 0.91054097321109458026978682006745;
466 % $$$ G[m][12][1] = 0.044729513394452709865106589966276;
467 % $$$ G[m][13][0] = 0.74119859878449802069007987352342;
468 % $$$ G[m][13][1] = 0.036838412054736283634817598783385;
469 % $$$ G[m][14][0] = 0.74119859878449802069007987352342;
470 % $$$ G[m][14][1] = 0.22196298916076569567510252769319;
471 % $$$ G[m][15][0] = 0.036838412054736283634817598783385;
472 % $$$ G[m][15][1] = 0.74119859878449802069007987352342;
473 % $$$ G[m][16][0] = 0.036838412054736283634817598783385;
474 % $$$ G[m][16][1] = 0.22196298916076569567510252769319;
475 % $$$ G[m][17][0] = 0.22196298916076569567510252769319;
476 % $$$ G[m][17][1] = 0.74119859878449802069007987352342;
477 % $$$ G[m][18][0] = 0.22196298916076569567510252769319;
478 % $$$ G[m][18][1] = 0.036838412054736283634817598783385;
480 % $$$ W[m][0] = 0.5 * 0.097135796282798833819241982507289;
481 % $$$ W[m][1] = 0.5 * 0.031334700227139070536854831287209;
482 % $$$ W[m][2] = 0.5 * 0.031334700227139070536854831287209;
483 % $$$ W[m][3] = 0.5 * 0.031334700227139070536854831287209;
484 % $$$ W[m][4] = 0.5 * 0.077827541004774279316739356299404;
485 % $$$ W[m][5] = 0.5 * 0.077827541004774279316739356299404;
486 % $$$ W[m][6] = 0.5 * 0.077827541004774279316739356299404;
487 % $$$ W[m][7] = 0.5 * 0.079647738927210253032891774264045;
488 % $$$ W[m][8] = 0.5 * 0.079647738927210253032891774264045;
489 % $$$ W[m][9] = 0.5 * 0.079647738927210253032891774264045;
490 % $$$ W[m][10] = 0.5 * 0.025577675658698031261678798559000;
491 % $$$ W[m][11] = 0.5 * 0.025577675658698031261678798559000;
492 % $$$ W[m][12] = 0.5 * 0.025577675658698031261678798559000;
493 % $$$ W[m][13] = 0.5 * 0.043283539377289377289377289377289;
494 % $$$ W[m][14] = 0.5 * 0.043283539377289377289377289377289;
495 % $$$ W[m][15] = 0.5 * 0.043283539377289377289377289377289;
496 % $$$ W[m][16] = 0.5 * 0.043283539377289377289377289377289;
497 % $$$ W[m][17] = 0.5 * 0.043283539377289377289377289377289;
498 % $$$ W[m][18] = 0.5 * 0.043283539377289377289377289377289;
504 % $$$ G[m][0][0] = 0.333333333333333333333333333333333;
505 % $$$ G[m][0][1] = 0.333333333333333333333333333333333;
506 % $$$ G[m][1][0] = 0.42508621060209057296952951163804;
507 % $$$ G[m][1][1] = 0.42508621060209057296952951163804;
508 % $$$ G[m][2][0] = 0.42508621060209057296952951163804;
509 % $$$ G[m][2][1] = 0.14982757879581885406094097672391;
510 % $$$ G[m][3][0] = 0.14982757879581885406094097672391;
511 % $$$ G[m][3][1] = 0.42508621060209057296952951163804;
512 % $$$ G[m][4][0] = 0.023308867510000190714466386895980;
513 % $$$ G[m][4][1] = 0.023308867510000190714466386895980;
514 % $$$ G[m][5][0] = 0.023308867510000190714466386895980;
515 % $$$ G[m][5][1] = 0.95338226497999961857106722620804;
516 % $$$ G[m][6][0] = 0.95338226497999961857106722620804;
517 % $$$ G[m][6][1] = 0.023308867510000190714466386895980;
518 % $$$ G[m][7][0] = 0.62830740021349255642083766607883;
519 % $$$ G[m][7][1] = 0.22376697357697300622568649026820;
520 % $$$ G[m][8][0] = 0.62830740021349255642083766607883;
521 % $$$ G[m][8][1] = 0.14792562620953443735347584365296;
522 % $$$ G[m][9][0] = 0.22376697357697300622568649026820;
523 % $$$ G[m][9][1] = 0.62830740021349255642083766607883;
524 % $$$ G[m][10][0] = 0.22376697357697300622568649026820;
525 % $$$ G[m][10][1] = 0.14792562620953443735347584365296;
526 % $$$ G[m][11][0] = 0.14792562620953443735347584365296;
527 % $$$ G[m][11][1] = 0.62830740021349255642083766607883;
528 % $$$ G[m][12][0] = 0.14792562620953443735347584365296;
529 % $$$ G[m][12][1] = 0.22376697357697300622568649026820;
530 % $$$ G[m][13][0] = 0.61131382618139764891875500225390;
531 % $$$ G[m][13][1] = 0.35874014186443146457815530072385;
532 % $$$ G[m][14][0] = 0.61131382618139764891875500225390;
533 % $$$ G[m][14][1] = 0.02994603195417088650308969702225;
534 % $$$ G[m][15][0] = 0.35874014186443146457815530072385;
535 % $$$ G[m][15][1] = 0.61131382618139764891875500225390;
536 % $$$ G[m][16][0] = 0.35874014186443146457815530072385;
537 % $$$ G[m][16][1] = 0.02994603195417088650308969702225;
538 % $$$ G[m][17][0] = 0.02994603195417088650308969702225;
539 % $$$ G[m][17][1] = 0.61131382618139764891875500225390;
540 % $$$ G[m][18][0] = 0.02994603195417088650308969702225;
541 % $$$ G[m][18][1] = 0.35874014186443146457815530072385;
542 % $$$ G[m][19][0] = 0.82107206998562937337354441347218;
543 % $$$ G[m][19][1] = 0.14329537042686714530585663061732;
544 % $$$ G[m][20][0] = 0.82107206998562937337354441347218;
545 % $$$ G[m][20][1] = 0.03563255958750348132059895591050;
546 % $$$ G[m][21][0] = 0.14329537042686714530585663061732;
547 % $$$ G[m][21][1] = 0.82107206998562937337354441347218;
548 % $$$ G[m][22][0] = 0.14329537042686714530585663061732;
549 % $$$ G[m][22][1] = 0.03563255958750348132059895591050;
550 % $$$ G[m][23][0] = 0.03563255958750348132059895591050;
551 % $$$ G[m][23][1] = 0.82107206998562937337354441347218;
552 % $$$ G[m][24][0] = 0.03563255958750348132059895591050;
553 % $$$ G[m][24][1] = 0.14329537042686714530585663061732;
555 % $$$ W[m][0] = 0.5 * 0.079894504741239707831247045213386;
556 % $$$ W[m][1] = 0.5 * 0.071123802232377334639291287398658;
557 % $$$ W[m][2] = 0.5 * 0.071123802232377334639291287398658;
558 % $$$ W[m][3] = 0.5 * 0.071123802232377334639291287398658;
559 % $$$ W[m][4] = 0.5 * 0.0082238186904641955186466203624719;
560 % $$$ W[m][5] = 0.5 * 0.0082238186904641955186466203624719;
561 % $$$ W[m][6] = 0.5 * 0.0082238186904641955186466203624719;
562 % $$$ W[m][7] = 0.5 * 0.045430592296170018007073629243933;
563 % $$$ W[m][8] = 0.5 * 0.045430592296170018007073629243933;
564 % $$$ W[m][9] = 0.5 * 0.045430592296170018007073629243933;
565 % $$$ W[m][10] = 0.5 * 0.045430592296170018007073629243933;
566 % $$$ W[m][11] = 0.5 * 0.045430592296170018007073629243933;
567 % $$$ W[m][12] = 0.5 * 0.045430592296170018007073629243933;
568 % $$$ W[m][13] = 0.5 * 0.037359856234305276826236499001975;
569 % $$$ W[m][14] = 0.5 * 0.037359856234305276826236499001975;
570 % $$$ W[m][15] = 0.5 * 0.037359856234305276826236499001975;
571 % $$$ W[m][16] = 0.5 * 0.037359856234305276826236499001975;
572 % $$$ W[m][17] = 0.5 * 0.037359856234305276826236499001975;
573 % $$$ W[m][18] = 0.5 * 0.037359856234305276826236499001975;
574 % $$$ W[m][19] = 0.5 * 0.030886656884563988782513077004629;
575 % $$$ W[m][20] = 0.5 * 0.030886656884563988782513077004629;
576 % $$$ W[m][21] = 0.5 * 0.030886656884563988782513077004629;
577 % $$$ W[m][22] = 0.5 * 0.030886656884563988782513077004629;
578 % $$$ W[m][23] = 0.5 * 0.030886656884563988782513077004629;
579 % $$$ W[m][24] = 0.5 * 0.030886656884563988782513077004629;
586 % $$$ G[m][0][0] = 0.858870281282636704039173938058347;
587 % $$$ G[m][0][1] = 0.141129718717363295960826061941652;
588 % $$$ G[m][1][0] = 0.858870281282636704039173938058347;
589 % $$$ G[m][1][1] = 0.0;
590 % $$$ G[m][2][0] = 0.141129718717363295960826061941652;
591 % $$$ G[m][2][1] = 0.858870281282636704039173938058347;
592 % $$$ G[m][3][0] = 0.141129718717363295960826061941652;
593 % $$$ G[m][3][1] = 0.0;
594 % $$$ G[m][4][0] = 0.0;
595 % $$$ G[m][4][1] = 0.858870281282636704039173938058347;
596 % $$$ G[m][5][0] = 0.0;
597 % $$$ G[m][5][1] = 0.141129718717363295960826061941652;
598 % $$$ G[m][6][0] = 0.333333333333333333333333333333333;
599 % $$$ G[m][6][1] = 0.333333333333333333333333333333333;
600 % $$$ G[m][7][0] = 0.025989140928287395260032485498841;
601 % $$$ G[m][7][1] = 0.025989140928287395260032485498841;
602 % $$$ G[m][8][0] = 0.025989140928287395260032485498841;
603 % $$$ G[m][8][1] = 0.94802171814342520947993502900232;
604 % $$$ G[m][9][0] = 0.94802171814342520947993502900232;
605 % $$$ G[m][9][1] = 0.025989140928287395260032485498841;
606 % $$$ G[m][10][0] = 0.094287502647922495630569776275405;
607 % $$$ G[m][10][1] = 0.094287502647922495630569776275405;
608 % $$$ G[m][11][0] = 0.094287502647922495630569776275405;
609 % $$$ G[m][11][1] = 0.81142499470415500873886044744919;
610 % $$$ G[m][12][0] = 0.81142499470415500873886044744919;
611 % $$$ G[m][12][1] = 0.094287502647922495630569776275405;
612 % $$$ G[m][13][0] = 0.49463677501721381374163260230644;
613 % $$$ G[m][13][1] = 0.49463677501721381374163260230644;
614 % $$$ G[m][14][0] = 0.49463677501721381374163260230644;
615 % $$$ G[m][14][1] = 0.01072644996557237251673479538713;
616 % $$$ G[m][15][0] = 0.01072644996557237251673479538713;
617 % $$$ G[m][15][1] = 0.49463677501721381374163260230644;
618 % $$$ G[m][16][0] = 0.20734338261451133345293402411297;
619 % $$$ G[m][16][1] = 0.20734338261451133345293402411297;
620 % $$$ G[m][17][0] = 0.20734338261451133345293402411297;
621 % $$$ G[m][17][1] = 0.58531323477097733309413195177407;
622 % $$$ G[m][18][0] = 0.58531323477097733309413195177407;
623 % $$$ G[m][18][1] = 0.20734338261451133345293402411297;
624 % $$$ G[m][19][0] = 0.43890780570049209506106538163613;
625 % $$$ G[m][19][1] = 0.43890780570049209506106538163613;
626 % $$$ G[m][20][0] = 0.43890780570049209506106538163613;
627 % $$$ G[m][20][1] = 0.12218438859901580987786923672775;
628 % $$$ G[m][21][0] = 0.12218438859901580987786923672775;
629 % $$$ G[m][21][1] = 0.43890780570049209506106538163613;
630 % $$$ G[m][22][0] = 0.67793765488259040154212614118875;
631 % $$$ G[m][22][1] = 0.044841677589130443309052391468801;
632 % $$$ G[m][23][0] = 0.67793765488259040154212614118875;
633 % $$$ G[m][23][1] = 0.27722066752827915514882146734245;
634 % $$$ G[m][24][0] = 0.044841677589130443309052391468801;
635 % $$$ G[m][24][1] = 0.67793765488259040154212614118875;
636 % $$$ G[m][25][0] = 0.044841677589130443309052391468801;
637 % $$$ G[m][25][1] = 0.27722066752827915514882146734245;
638 % $$$ G[m][26][0] = 0.27722066752827915514882146734245;
639 % $$$ G[m][26][1] = 0.67793765488259040154212614118875;
640 % $$$ G[m][27][0] = 0.27722066752827915514882146734245;
641 % $$$ G[m][27][1] = 0.044841677589130443309052391468801;
643 % $$$ W[m][0] = 0.5 * 0.0073623837833005542642588950473806;
644 % $$$ W[m][1] = 0.5 * 0.0073623837833005542642588950473806;
645 % $$$ W[m][2] = 0.5 * 0.0073623837833005542642588950473806;
647 % $$$ W[m][3] = 0.5 * 0.0073623837833005542642588950473806;
648 % $$$ W[m][4] = 0.5 * 0.0073623837833005542642588950473806;
649 % $$$ W[m][5] = 0.5 * 0.0073623837833005542642588950473806;
651 % $$$ W[m][6] = 0.5 * 0.087977301162232238798093169321456;
652 % $$$ W[m][7] = 0.5 * 0.0087443115537360230495164287998252;
653 % $$$ W[m][8] = 0.5 * 0.0087443115537360230495164287998252;
654 % $$$ W[m][9] = 0.5 * 0.0087443115537360230495164287998252;
656 % $$$ W[m][10] = 0.5 * 0.038081571993934937515024339435614;
657 % $$$ W[m][11] = 0.5 * 0.038081571993934937515024339435614;
658 % $$$ W[m][12] = 0.5 * 0.038081571993934937515024339435614;
660 % $$$ W[m][13] = 0.5 * 0.018855448056131292058476782591115;
661 % $$$ W[m][14] = 0.5 * 0.018855448056131292058476782591115;
662 % $$$ W[m][15] = 0.5 * 0.018855448056131292058476782591115;
664 % $$$ W[m][16] = 0.5 * 0.072159697544739526124029988586463;
665 % $$$ W[m][17] = 0.5 * 0.072159697544739526124029988586463;
666 % $$$ W[m][18] = 0.5 * 0.072159697544739526124029988586463;
668 % $$$ W[m][19] = 0.5 * 0.069329138705535899841765650903814;
669 % $$$ W[m][20] = 0.5 * 0.069329138705535899841765650903814;
670 % $$$ W[m][21] = 0.5 * 0.069329138705535899841765650903814;
672 % $$$ W[m][22] = 0.5 * 0.041056315429288566641652314907294;
673 % $$$ W[m][23] = 0.5 * 0.041056315429288566641652314907294;
674 % $$$ W[m][24] = 0.5 * 0.041056315429288566641652314907294;
676 % $$$ W[m][25] = 0.5 * 0.041056315429288566641652314907294;
677 % $$$ W[m][26] = 0.5 * 0.041056315429288566641652314907294;
678 % $$$ W[m][27] = 0.5 * 0.041056315429288566641652314907294;
684 % $$$ G[m][0][0] = 0.02356522045239;
685 % $$$ G[m][0][1] = 0.488217389773805;
686 % $$$ G[m][1][0] = 0.488217389773805;
687 % $$$ G[m][1][1] = 0.02356522045239;
688 % $$$ G[m][2][0] = 0.488217389773805;
689 % $$$ G[m][2][1] = 0.488217389773805;
690 % $$$ G[m][3][0] = 0.43972439229446;
691 % $$$ G[m][3][1] = 0.43972439229446;
692 % $$$ G[m][4][0] = 0.43972439229446;
693 % $$$ G[m][4][1] = 0.120551215411079;
694 % $$$ G[m][5][0] = 0.120551215411079;
695 % $$$ G[m][5][1] = 0.43972439229446;
696 % $$$ G[m][6][0] = 0.271210385012116;
697 % $$$ G[m][6][1] = 0.271210385012116;
698 % $$$ G[m][7][0] = 0.271210385012116;
699 % $$$ G[m][7][1] = 0.457579229975768;
700 % $$$ G[m][8][0] = 0.457579229975768;
701 % $$$ G[m][8][1] = 0.271210385012116;
702 % $$$ G[m][9][0] = 0.127576145541586;
703 % $$$ G[m][9][1] = 0.127576145541586;
704 % $$$ G[m][10][0] = 0.127576145541586;
705 % $$$ G[m][10][1] = 0.7448477089168279;
706 % $$$ G[m][11][0] = 0.7448477089168279;
707 % $$$ G[m][11][1] = 0.127576145541586;
708 % $$$ G[m][12][0] = 0.02131735045321;
709 % $$$ G[m][12][1] = 0.02131735045321;
710 % $$$ G[m][13][0] = 0.02131735045321;
711 % $$$ G[m][13][1] = 0.9573652990935799;
712 % $$$ G[m][14][0] = 0.9573652990935799;
713 % $$$ G[m][14][1] = 0.02131735045321;
714 % $$$ G[m][15][0] = 0.115343494534698;
715 % $$$ G[m][15][1] = 0.275713269685514;
716 % $$$ G[m][16][0] = 0.115343494534698;
717 % $$$ G[m][16][1] = 0.6089432357797879;
718 % $$$ G[m][17][0] = 0.275713269685514;
719 % $$$ G[m][17][1] = 0.115343494534698;
720 % $$$ G[m][18][0] = 0.275713269685514;
721 % $$$ G[m][18][1] = 0.6089432357797879;
722 % $$$ G[m][19][0] = 0.6089432357797879;
723 % $$$ G[m][19][1] = 0.115343494534698;
724 % $$$ G[m][20][0] = 0.6089432357797879;
725 % $$$ G[m][20][1] = 0.275713269685514;
726 % $$$ G[m][21][0] = 0.022838332222257;
727 % $$$ G[m][21][1] = 0.28132558098994;
728 % $$$ G[m][22][0] = 0.022838332222257;
729 % $$$ G[m][22][1] = 0.6958360867878031;
730 % $$$ G[m][23][0] = 0.28132558098994;
731 % $$$ G[m][23][1] = 0.022838332222257;
732 % $$$ G[m][24][0] = 0.28132558098994;
733 % $$$ G[m][24][1] = 0.6958360867878031;
734 % $$$ G[m][25][0] = 0.6958360867878031;
735 % $$$ G[m][25][1] = 0.022838332222257;
736 % $$$ G[m][26][0] = 0.6958360867878031;
737 % $$$ G[m][26][1] = 0.28132558098994;
738 % $$$ G[m][27][0] = 0.02573405054833;
739 % $$$ G[m][27][1] = 0.116251915907597;
740 % $$$ G[m][28][0] = 0.02573405054833;
741 % $$$ G[m][28][1] = 0.858014033544073;
742 % $$$ G[m][29][0] = 0.116251915907597;
743 % $$$ G[m][29][1] = 0.02573405054833;
744 % $$$ G[m][30][0] = 0.116251915907597;
745 % $$$ G[m][30][1] = 0.858014033544073;
746 % $$$ G[m][31][0]= 0.858014033544073;
747 % $$$ G[m][31][1] =0.02573405054833;
748 % $$$ G[m][32][0] =0.858014033544073;
749 % $$$ G[m][32][1]= 0.116251915907597;
751 % $$$ W[m][0] = 0.5 * 0.025731066440455;
752 % $$$ W[m][1] = 0.5 * 0.025731066440455;
753 % $$$ W[m][2] = 0.5 * 0.025731066440455;
754 % $$$ W[m][3] = 0.5 * 0.043692544538038;
755 % $$$ W[m][4] = 0.5 * 0.043692544538038;
756 % $$$ W[m][5] = 0.5 * 0.043692544538038;
757 % $$$ W[m][6] = 0.5 * 0.062858224217885;
758 % $$$ W[m][7] = 0.5 * 0.062858224217885;
759 % $$$ W[m][8] = 0.5 * 0.062858224217885;
760 % $$$ W[m][9] = 0.5 * 0.034796112930709;
761 % $$$ W[m][10] = 0.5 * 0.034796112930709;
762 % $$$ W[m][11] = 0.5 * 0.034796112930709;
763 % $$$ W[m][12] = 0.5 * 0.006166261051559;
764 % $$$ W[m][13] = 0.5 * 0.006166261051559;
765 % $$$ W[m][14] = 0.5 * 0.006166261051559;
766 % $$$ W[m][15] = 0.5 * 0.040371557766381;
767 % $$$ W[m][16] = 0.5 * 0.040371557766381;
768 % $$$ W[m][17] = 0.5 * 0.040371557766381;
769 % $$$ W[m][18] = 0.5 * 0.040371557766381;
770 % $$$ W[m][19] = 0.5 * 0.040371557766381;
771 % $$$ W[m][20] = 0.5 * 0.040371557766381;
772 % $$$ W[m][21] = 0.5 * 0.022356773202303;
773 % $$$ W[m][22] = 0.5 * 0.022356773202303;
774 % $$$ W[m][23] = 0.5 * 0.022356773202303;
775 % $$$ W[m][24] = 0.5 * 0.022356773202303;
776 % $$$ W[m][25] = 0.5 * 0.022356773202303;
777 % $$$ W[m][26] = 0.5 * 0.022356773202303;
778 % $$$ W[m][27] = 0.5 * 0.017316231108659;
779 % $$$ W[m][28] = 0.5 * 0.017316231108659;
780 % $$$ W[m][29] = 0.5 * 0.017316231108659;
781 % $$$ W[m][30] = 0.5 * 0.017316231108659;
782 % $$$ W[m][31] = 0.5 * 0.017316231108659;
783 % $$$ W[m][32] = 0.5 * 0.017316231108659;
787 % $$$ FieldVector<double, 2> point(
int m,
int i)
789 % $$$
return G[m][i];
792 % $$$
double weight (
int m,
int i)
794 % $$$
return W[m][i];
797 % $$$
int order (
int m)
803 % $$$ FieldVector<double, 2> G[MAXP+1][MAXP];
805 % $$$
double W[MAXP+1][MAXP];
809 % $$$
template<
typename ct>
810 % $$$ SimplexQuadratureRule<ct,2>.SimplexQuadratureRule(
int p) : QuadratureRule<ct,2>(GeometryType(GeometryType.simplex, 2))
813 % $$$
if (p>highest_order)
814 % $$$ DUNE_THROW(QuadratureOrderOutOfRange,
815 % $$$
"QuadratureRule for order " << p <<
" and GeometryType "
816 % $$$ << this->type() <<
" not available");
818 % $$$
if (p>SimplexQuadraturePoints<2>.highest_order)
821 % $$$ QuadratureRule<ct,1> gauss1D =
822 % $$$ QuadratureRules<ct,1>.rule(GeometryType.cube, p, QuadratureType.Gauss);
823 % $$$ QuadratureRule<ct,1> jac1D =
824 % $$$ QuadratureRules<ct,1>.rule(GeometryType.cube, p, QuadratureType.Jacobian_1_0);
827 % $$$
for (
typename QuadratureRule<ct,1>.const_iterator
828 % $$$ gp=gauss1D.begin(); gp!=gauss1D.end(); ++gp)
830 % $$$
for (
typename QuadratureRule<ct,1>.const_iterator
831 % $$$ jp=jac1D.begin(); jp!=jac1D.end(); ++jp)
834 % $$$
double weight = 1.0;
835 % $$$ FieldVector<ct,2> local(0.0);
836 % $$$ local[0] = jp->position()[0];
837 % $$$ local[1] = gp->position()[0] * (1. - jp->position()[0]);
838 % $$$ weight = gp->weight() * jp->weight() * (1. - jp->position()[0]);
840 % $$$ push_back(QuadraturePoint<ct,d>(local,weight));
843 % $$$ this->delivered_order = std.min(gauss1D.order(), jac1D.order());
890 % $$$ this->delivered_order = SimplexQuadraturePointsSingleton<2>.sqp.order(m);
891 % $$$ FieldVector<ct, d> local;
893 % $$$
for(
int i=0;i<m;++i)
895 % $$$
for(
int k=0;k<d;++k)
896 % $$$ local[k]=SimplexQuadraturePointsSingleton<2>.sqp.point(m,i)[k];
897 % $$$ weight=SimplexQuadraturePointsSingleton<2>.sqp.weight(m,i);
899 % $$$ push_back(QuadraturePoint<ct,d>(local,weight));
905 % $$$
class SimplexQuadraturePoints<3>
908 % $$$
enum { MAXP=15};
909 % $$$
enum { highest_order=5 };
912 % $$$ SimplexQuadraturePoints()
919 % $$$ G[m][0][0] = 0.25;
920 % $$$ G[m][0][1] = 0.25;
921 % $$$ G[m][0][2] = 0.25;
923 % $$$ W[m][0] = 1.0/6.0;
929 % $$$
static const double m_4_a = 0.585410196624968500;
930 % $$$
static const double m_4_b = 0.138196601125010500;
931 % $$$ G[m][0] = m_4_b;
932 % $$$ G[m][1] = m_4_b;
933 % $$$ G[m][2] = m_4_b;
934 % $$$ G[m][3] = m_4_b;
935 % $$$ G[m][0][0] = m_4_a;
936 % $$$ G[m][1][1] = m_4_a;
937 % $$$ G[m][2][2] = m_4_a;
939 % $$$ W[m][0] = 1.0/4.0/6.0;
940 % $$$ W[m][1] = 1.0/4.0/6.0;
941 % $$$ W[m][2] = 1.0/4.0/6.0;
942 % $$$ W[m][3] = 1.0/4.0/6.0;
948 % $$$ G[m][0][0] = 0.0;
949 % $$$ G[m][0][1] = 0.0;
950 % $$$ G[m][0][2] = 0.0;
951 % $$$ G[m][1][0] = 1.0;
952 % $$$ G[m][1][1] = 0.0;
953 % $$$ G[m][1][2] = 0.0;
954 % $$$ G[m][2][0] = 0.0;
955 % $$$ G[m][2][1] = 1.0;
956 % $$$ G[m][2][2] = 0.0;
957 % $$$ G[m][3][0] = 0.0;
958 % $$$ G[m][3][1] = 0.0;
959 % $$$ G[m][3][2] = 1.0;
960 % $$$ G[m][4][0] = 1.0/3.0;
961 % $$$ G[m][4][1] = 1.0/3.0;
962 % $$$ G[m][4][2] = 0.0;
963 % $$$ G[m][5][0] = 1.0/3.0;
964 % $$$ G[m][5][1] = 0.0;
965 % $$$ G[m][5][2] = 1.0/3.0;
966 % $$$ G[m][6][0] = 0.0;
967 % $$$ G[m][6][1] = 1.0/3.0;
968 % $$$ G[m][6][2] = 1.0/3.0;
969 % $$$ G[m][7][0] = 1.0/3.0;
970 % $$$ G[m][7][1] = 1.0/3.0;
971 % $$$ G[m][7][2] = 1.0/3.0;
972 % $$$ W[m][0] = 0.025/6.0;
973 % $$$ W[m][1] = 0.025/6.0;
974 % $$$ W[m][2] = 0.025/6.0;
975 % $$$ W[m][3] = 0.025/6.0;
976 % $$$ W[m][4] = 0.225/6.0;
977 % $$$ W[m][5] = 0.225/6.0;
978 % $$$ W[m][6] = 0.225/6.0;
979 % $$$ W[m][7] = 0.225/6.0;
985 % $$$
static const double s_1=0.09197107805272303279;
986 % $$$
static const double s_2=0.31979362782962990839;
987 % $$$
static const double t_1=0.72408676584183090164;
988 % $$$
static const double t_2=0.04061911651111027484;
989 % $$$
static const double u =0.05635083268962915574;
990 % $$$
static const double v =0.44364916731037084426;
991 % $$$
static const double A =0.019753086419753086420;
992 % $$$
static const double B_1=0.011989513963169770001;
993 % $$$
static const double B_2=0.011511367871045397547;
994 % $$$
static const double C =0.0088183421516754850088;
997 % $$$ G[m][0][0] = 0.25;
998 % $$$ G[m][0][1] = 0.25;
999 % $$$ G[m][0][2] = 0.25;
1000 % $$$ G[m][1][0] = s_1;
1001 % $$$ G[m][1][1] = s_1;
1002 % $$$ G[m][1][2] = s_1;
1003 % $$$ G[m][2][0] = t_1;
1004 % $$$ G[m][2][1] = s_1;
1005 % $$$ G[m][2][2] = s_1;
1006 % $$$ G[m][3][0] = s_1;
1007 % $$$ G[m][3][1] = t_1;
1008 % $$$ G[m][3][2] = s_1;
1009 % $$$ G[m][4][0] = s_1;
1010 % $$$ G[m][4][1] = s_1;
1011 % $$$ G[m][4][2] = t_1;
1012 % $$$ G[m][5][0] = s_2;
1013 % $$$ G[m][5][1] = s_2;
1014 % $$$ G[m][5][2] = s_2;
1015 % $$$ G[m][6][0] = t_2;
1016 % $$$ G[m][6][1] = s_2;
1017 % $$$ G[m][6][2] = s_2;
1018 % $$$ G[m][7][0] = s_2;
1019 % $$$ G[m][7][1] = t_2;
1020 % $$$ G[m][7][2] = s_2;
1021 % $$$ G[m][8][0] = s_2;
1022 % $$$ G[m][8][1] = s_2;
1023 % $$$ G[m][8][2] = t_2;
1024 % $$$ G[m][9][0] = v;
1025 % $$$ G[m][9][1] = u;
1026 % $$$ G[m][9][2] = u;
1027 % $$$ G[m][10][0] = u;
1028 % $$$ G[m][10][1] = v;
1029 % $$$ G[m][10][2] = u;
1030 % $$$ G[m][11][0] = u;
1031 % $$$ G[m][11][1] = u;
1032 % $$$ G[m][11][2] = v;
1033 % $$$ G[m][12][0] = v;
1034 % $$$ G[m][12][1] = v;
1035 % $$$ G[m][12][2] = u;
1036 % $$$ G[m][13][0] = v;
1037 % $$$ G[m][13][1] = u;
1038 % $$$ G[m][13][2] = v;
1039 % $$$ G[m][14][0] = u;
1040 % $$$ G[m][14][1] = v;
1041 % $$$ G[m][14][2] = v;
1044 % $$$ W[m][1] = B_1;
1045 % $$$ W[m][2] = B_1;
1046 % $$$ W[m][3] = B_1;
1047 % $$$ W[m][4] = B_1;
1048 % $$$ W[m][5] = B_2;
1049 % $$$ W[m][6] = B_2;
1050 % $$$ W[m][7] = B_2;
1051 % $$$ W[m][8] = B_2;
1062 % $$$ FieldVector<double, 3> point(
int m,
int i)
1064 % $$$
return G[m][i];
1067 % $$$
double weight (
int m,
int i)
1069 % $$$
return W[m][i];
1072 % $$$
int order (
int m)
1078 % $$$ FieldVector<double, 3> G[MAXP+1][MAXP];
1079 % $$$
double W[MAXP+1][MAXP];
1080 % $$$
int O[MAXP+1];
1083 % $$$
template<
typename ct>
1084 % $$$ SimplexQuadratureRule<ct,3>.SimplexQuadratureRule(
int p) : QuadratureRule<ct,3>(GeometryType(GeometryType.simplex, 3))
1087 % $$$
if (p>highest_order)
1088 % $$$ DUNE_THROW(QuadratureOrderOutOfRange,
1089 % $$$
"QuadratureRule for order " << p <<
" and GeometryType "
1090 % $$$ << this->type() <<
" not available");
1093 % $$$
if (p>SimplexQuadraturePoints<3>.highest_order)
1096 % $$$ QuadratureRule<ct,1> gauss1D =
1097 % $$$ QuadratureRules<ct,1>.rule(GeometryType.cube, p, QuadratureType.Gauss);
1098 % $$$ QuadratureRule<ct,1> jacA1D =
1099 % $$$ QuadratureRules<ct,1>.rule(GeometryType.cube, p, QuadratureType.Jacobian_1_0);
1100 % $$$ QuadratureRule<ct,1> jacB1D =
1101 % $$$ QuadratureRules<ct,1>.rule(GeometryType.cube, p, QuadratureType.Jacobian_2_0);
1106 % $$$ assert(gauss1D.size() == jacA1D.size());
1107 % $$$ assert(gauss1D.size() == jacB1D.size());
1110 % $$$
for (
typename QuadratureRule<ct,1>.const_iterator
1111 % $$$ gp=gauss1D.begin(); gp!=gauss1D.end(); ++gp)
1113 % $$$
for (
typename QuadratureRule<ct,1>.const_iterator
1114 % $$$ j1p=jacA1D.begin(); j1p!=jacA1D.end(); ++j1p)
1116 % $$$
for (
typename QuadratureRule<ct,1>.const_iterator
1117 % $$$ j2p=jacB1D.begin(); j2p!=jacB1D.end(); ++j2p)
1120 % $$$
double weight = 1.0;
1121 % $$$ FieldVector<ct, d> local;
1122 % $$$ local[0] = j2p->position()[0];
1123 % $$$ local[1] = j1p->position()[0] * (1.0-j2p->position()[0]);
1124 % $$$ local[2] = gp->position()[0] * (1.-j1p->position()[0]) * (1.0-j2p->position()[0]);
1125 % $$$ weight = (1.0-j2p->position()[0]) * (1.-j1p->position()[0]) * (1.0-j2p->position()[0])
1126 % $$$ * gp->weight() * j1p->weight() * j2p->weight();
1128 % $$$ push_back(QuadraturePoint<ct,d>(local,weight));
1132 % $$$ this->delivered_order = std.min(gauss1D.order(), std.min(jacA1D.order(), jacB1D.order()));
1154 % $$$
default: m=15;
1156 % $$$ this->delivered_order = SimplexQuadraturePointsSingleton<3>.sqp.order(m);
1157 % $$$ FieldVector<ct, d> local;
1158 % $$$
double weight;
1159 % $$$
for(
int i=0;i<m;++i)
1161 % $$$
for(
int k=0;k<d;++k)
1162 % $$$ local[k]=SimplexQuadraturePointsSingleton<3>.sqp.point(m,i)[k];
1163 % $$$ weight=SimplexQuadraturePointsSingleton<3>.sqp.weight(m,i);
1165 % $$$ push_back(QuadraturePoint<ct,d>(local,weight));
1172 % $$$ SimplexQuadraturePoints<2> SimplexQuadraturePointsSingleton<2>.sqp;
1175 % $$$ SimplexQuadraturePoints<3> SimplexQuadraturePointsSingleton<3>.sqp;
1178 % $$$ PrismQuadraturePoints<3> PrismQuadraturePointsSingleton<3>.prqp;
1181 % $$$ PyramidQuadraturePoints PyramidQuadraturePointsSingleton<3>.pyqp;
1183 % $$$
template SimplexQuadratureRule<float, 2>.SimplexQuadratureRule(
int);
1184 % $$$
template SimplexQuadratureRule<double, 2>.SimplexQuadratureRule(
int);
1185 % $$$
template SimplexQuadratureRule<float, 3>.SimplexQuadratureRule(
int);
1186 % $$$
template SimplexQuadratureRule<double, 3>.SimplexQuadratureRule(
int);