integral.cc
Go to the documentation of this file.
1 // LIC// ====================================================================
2 // LIC// This file forms part of oomph-lib, the object-oriented,
3 // LIC// multi-physics finite-element library, available
4 // LIC// at http://www.oomph-lib.org.
5 // LIC//
6 // LIC// Copyright (C) 2006-2023 Matthias Heil and Andrew Hazel
7 // LIC//
8 // LIC// This library is free software; you can redistribute it and/or
9 // LIC// modify it under the terms of the GNU Lesser General Public
10 // LIC// License as published by the Free Software Foundation; either
11 // LIC// version 2.1 of the License, or (at your option) any later version.
12 // LIC//
13 // LIC// This library is distributed in the hope that it will be useful,
14 // LIC// but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // LIC// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // LIC// Lesser General Public License for more details.
17 // LIC//
18 // LIC// You should have received a copy of the GNU Lesser General Public
19 // LIC// License along with this library; if not, write to the Free Software
20 // LIC// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 // LIC// 02110-1301 USA.
22 // LIC//
23 // LIC// The authors may be contacted at oomph-lib@maths.man.ac.uk.
24 // LIC//
25 // LIC//====================================================================
26 // Static data for the Gaussian integration rules
27 
28 // oomph-lib header
29 #include "integral.h"
30 
31 namespace oomph
32 {
33  // Need to define the static data here
34 
35  //============================================================
36  // Define the positions and weights of the 1D Gauss points
37  //============================================================
38 
39  //------------------------------------------------------------
40  // N=2
41  //------------------------------------------------------------
42  const double Gauss<1, 2>::Knot[2][1] = {{-0.577350269189626},
43  {0.577350269189626}};
44 
45  const double Gauss<1, 2>::Weight[2] = {1.0, 1.0};
46 
47  //------------------------------------------------------------
48  // N=3
49  //------------------------------------------------------------
50  const double Gauss<1, 3>::Knot[3][1] = {
51  {-0.774596669241483}, {0.0}, {0.774596669241483}};
52 
53  const double Gauss<1, 3>::Weight[3] = {(5.0 / 9.0), (8.0 / 9.0), (5.0 / 9.0)};
54 
55  //------------------------------------------------------------
56  // N=4
57  //------------------------------------------------------------
58  const double Gauss<1, 4>::Knot[4][1] = {{-0.861136311594053},
59  {-0.339981043584856},
60  {0.339981043584856},
61  {0.861136311594053}};
62 
63  const double Gauss<1, 4>::Weight[4] = {
64  0.347854845137448, 0.652145154862546, 0.652145154862546, 0.347854845137448};
65 
66 
67  //============================================================
68  // Define the positions and weights of the 2D Gauss points
69  //============================================================
70 
71  //------------------------------------------------------------
72  // N=2
73  //------------------------------------------------------------
74  const double Gauss<2, 2>::Knot[4][2] = {
75  {-0.577350269189626, -0.577350269189626},
76  {-0.577350269189626, 0.577350269189626},
77  {0.577350269189626, -0.577350269189626},
78  {0.577350269189626, 0.577350269189626}};
79  const double Gauss<2, 2>::Weight[4] = {1.0, 1.0, 1.0, 1.0};
80 
81  //------------------------------------------------------------
82  // N=3
83  //------------------------------------------------------------
84  const double Gauss<2, 3>::Knot[9][2] = {
85  {-0.774596669241483, -0.774596669241483},
86  {-0.774596669241483, 0.0},
87  {-0.774596669241483, 0.774596662941483},
88  {0.0, -0.774596669241483},
89  {0.0, 0.0},
90  {0.0, 0.774596662941483},
91  {0.774596662941483, -0.774596669241483},
92  {0.774596662941483, 0.0},
93  {0.774596662941483, 0.774596662941483}};
94  const double Gauss<2, 3>::Weight[9] = {(25.0 / 81.0),
95  (40.0 / 81.0),
96  (25.0 / 81.0),
97  (40.0 / 81.0),
98  (64.0 / 81.0),
99  (40.0 / 81.0),
100  (25.0 / 81.0),
101  (40.0 / 81.0),
102  (25.0 / 81.0)};
103 
104  //------------------------------------------------------------
105  // N=4
106  //------------------------------------------------------------
107  const double Gauss<2, 4>::Knot[16][2] = {
108  {-0.861136311594053, -0.861136311594053},
109  {-0.339981043584856, -0.861136311594053},
110  {0.339981043584856, -0.861136311594053},
111  {0.861136311594053, -0.861136311594053},
112 
113  {-0.861136311594053, -0.339981043584856},
114  {-0.339981043584856, -0.339981043584856},
115  {0.339981043584856, -0.339981043584856},
116  {0.861136311594053, -0.339981043584856},
117 
118  {-0.861136311594053, 0.339981043584856},
119  {-0.339981043584856, 0.339981043584856},
120  {0.339981043584856, 0.339981043584856},
121  {0.861136311594053, 0.339981043584856},
122 
123  {-0.861136311594053, 0.861136311594053},
124  {-0.339981043584856, 0.861136311594053},
125  {0.339981043584856, 0.861136311594053},
126  {0.861136311594053, 0.861136311594053}};
127 
128  // Quick sanity check: they sum to 4 :)
129  const double Gauss<2, 4>::Weight[16] = {0.1210029932855979,
130  0.2268518518518480,
131  0.2268518518518480,
132  0.1210029932855979,
133  0.2268518518518480,
134  0.4252933030106941,
135  0.4252933030106941,
136  0.2268518518518480,
137  0.2268518518518480,
138  0.4252933030106941,
139  0.4252933030106941,
140  0.2268518518518480,
141  0.1210029932855979,
142  0.2268518518518480,
143  0.2268518518518480,
144  0.1210029932855979};
145 
146 
147  //============================================================
148  // Define the positions and weights of the 3D Gauss points
149  // (produced with utilities/gauss_weights.cc)
150  //============================================================
151 
152  //------------------------------------------------------------
153  // N=2
154  //------------------------------------------------------------
155  const double Gauss<3, 2>::Knot[8][3] = {
156  {-0.57735026918963, -0.57735026918963, -0.57735026918963},
157  {-0.57735026918963, -0.57735026918963, 0.57735026918963},
158  {-0.57735026918963, 0.57735026918963, -0.57735026918963},
159  {-0.57735026918963, 0.57735026918963, 0.57735026918963},
160  {0.57735026918963, -0.57735026918963, -0.57735026918963},
161  {0.57735026918963, -0.57735026918963, 0.57735026918963},
162  {0.57735026918963, 0.57735026918963, -0.57735026918963},
163  {0.57735026918963, 0.57735026918963, 0.57735026918963}};
164  const double Gauss<3, 2>::Weight[8] = {1, 1, 1, 1, 1, 1, 1, 1};
165 
166  //------------------------------------------------------------
167  // N=3
168  //------------------------------------------------------------
169  const double Gauss<3, 3>::Knot[27][3] = {
170  {-0.77459666924148, -0.77459666924148, -0.77459666924148},
171  {-0.77459666924148, -0.77459666924148, 0},
172  {-0.77459666924148, -0.77459666924148, 0.77459666924148},
173  {-0.77459666924148, 0, -0.77459666924148},
174  {-0.77459666924148, 0, 0},
175  {-0.77459666924148, 0, 0.77459666924148},
176  {-0.77459666924148, 0.77459666924148, -0.77459666924148},
177  {-0.77459666924148, 0.77459666924148, 0},
178  {-0.77459666924148, 0.77459666924148, 0.77459666924148},
179  {0, -0.77459666924148, -0.77459666924148},
180  {0, -0.77459666924148, 0},
181  {0, -0.77459666924148, 0.77459666924148},
182  {0, 0, -0.77459666924148},
183  {0, 0, 0},
184  {0, 0, 0.77459666924148},
185  {0, 0.77459666924148, -0.77459666924148},
186  {0, 0.77459666924148, 0},
187  {0, 0.77459666924148, 0.77459666924148},
188  {0.77459666924148, -0.77459666924148, -0.77459666924148},
189  {0.77459666924148, -0.77459666924148, 0},
190  {0.77459666924148, -0.77459666924148, 0.77459666924148},
191  {0.77459666924148, 0, -0.77459666924148},
192  {0.77459666924148, 0, 0},
193  {0.77459666924148, 0, 0.77459666924148},
194  {0.77459666924148, 0.77459666924148, -0.77459666924148},
195  {0.77459666924148, 0.77459666924148, 0},
196  {0.77459666924148, 0.77459666924148, 0.77459666924148}};
197 
198 
199  const double Gauss<3, 3>::Weight[27] = {
200  0.17146776406035, 0.27434842249657, 0.17146776406035, 0.27434842249657,
201  0.43895747599451, 0.27434842249657, 0.17146776406035, 0.27434842249657,
202  0.17146776406035, 0.27434842249657, 0.43895747599451, 0.27434842249657,
203  0.43895747599451, 0.70233196159122, 0.43895747599451, 0.27434842249657,
204  0.43895747599451, 0.27434842249657, 0.17146776406035, 0.27434842249657,
205  0.17146776406035, 0.27434842249657, 0.43895747599451, 0.27434842249657,
206  0.17146776406035, 0.27434842249657, 0.17146776406035};
207 
208 
209  //------------------------------------------------------------
210  // N=4
211  //------------------------------------------------------------
212  const double Gauss<3, 4>::Knot[64][3] = {
213  {-0.86113631159405, -0.86113631159405, -0.86113631159405},
214  {-0.86113631159405, -0.86113631159405, -0.33998104358486},
215  {-0.86113631159405, -0.86113631159405, 0.33998104358486},
216  {-0.86113631159405, -0.86113631159405, 0.86113631159405},
217  {-0.86113631159405, -0.33998104358486, -0.86113631159405},
218  {-0.86113631159405, -0.33998104358486, -0.33998104358486},
219  {-0.86113631159405, -0.33998104358486, 0.33998104358486},
220  {-0.86113631159405, -0.33998104358486, 0.86113631159405},
221  {-0.86113631159405, 0.33998104358486, -0.86113631159405},
222  {-0.86113631159405, 0.33998104358486, -0.33998104358486},
223  {-0.86113631159405, 0.33998104358486, 0.33998104358486},
224  {-0.86113631159405, 0.33998104358486, 0.86113631159405},
225  {-0.86113631159405, 0.86113631159405, -0.86113631159405},
226  {-0.86113631159405, 0.86113631159405, -0.33998104358486},
227  {-0.86113631159405, 0.86113631159405, 0.33998104358486},
228  {-0.86113631159405, 0.86113631159405, 0.86113631159405},
229  {-0.33998104358486, -0.86113631159405, -0.86113631159405},
230  {-0.33998104358486, -0.86113631159405, -0.33998104358486},
231  {-0.33998104358486, -0.86113631159405, 0.33998104358486},
232  {-0.33998104358486, -0.86113631159405, 0.86113631159405},
233  {-0.33998104358486, -0.33998104358486, -0.86113631159405},
234  {-0.33998104358486, -0.33998104358486, -0.33998104358486},
235  {-0.33998104358486, -0.33998104358486, 0.33998104358486},
236  {-0.33998104358486, -0.33998104358486, 0.86113631159405},
237  {-0.33998104358486, 0.33998104358486, -0.86113631159405},
238  {-0.33998104358486, 0.33998104358486, -0.33998104358486},
239  {-0.33998104358486, 0.33998104358486, 0.33998104358486},
240  {-0.33998104358486, 0.33998104358486, 0.86113631159405},
241  {-0.33998104358486, 0.86113631159405, -0.86113631159405},
242  {-0.33998104358486, 0.86113631159405, -0.33998104358486},
243  {-0.33998104358486, 0.86113631159405, 0.33998104358486},
244  {-0.33998104358486, 0.86113631159405, 0.86113631159405},
245  {0.33998104358486, -0.86113631159405, -0.86113631159405},
246  {0.33998104358486, -0.86113631159405, -0.33998104358486},
247  {0.33998104358486, -0.86113631159405, 0.33998104358486},
248  {0.33998104358486, -0.86113631159405, 0.86113631159405},
249  {0.33998104358486, -0.33998104358486, -0.86113631159405},
250  {0.33998104358486, -0.33998104358486, -0.33998104358486},
251  {0.33998104358486, -0.33998104358486, 0.33998104358486},
252  {0.33998104358486, -0.33998104358486, 0.86113631159405},
253  {0.33998104358486, 0.33998104358486, -0.86113631159405},
254  {0.33998104358486, 0.33998104358486, -0.33998104358486},
255  {0.33998104358486, 0.33998104358486, 0.33998104358486},
256  {0.33998104358486, 0.33998104358486, 0.86113631159405},
257  {0.33998104358486, 0.86113631159405, -0.86113631159405},
258  {0.33998104358486, 0.86113631159405, -0.33998104358486},
259  {0.33998104358486, 0.86113631159405, 0.33998104358486},
260  {0.33998104358486, 0.86113631159405, 0.86113631159405},
261  {0.86113631159405, -0.86113631159405, -0.86113631159405},
262  {0.86113631159405, -0.86113631159405, -0.33998104358486},
263  {0.86113631159405, -0.86113631159405, 0.33998104358486},
264  {0.86113631159405, -0.86113631159405, 0.86113631159405},
265  {0.86113631159405, -0.33998104358486, -0.86113631159405},
266  {0.86113631159405, -0.33998104358486, -0.33998104358486},
267  {0.86113631159405, -0.33998104358486, 0.33998104358486},
268  {0.86113631159405, -0.33998104358486, 0.86113631159405},
269  {0.86113631159405, 0.33998104358486, -0.86113631159405},
270  {0.86113631159405, 0.33998104358486, -0.33998104358486},
271  {0.86113631159405, 0.33998104358486, 0.33998104358486},
272  {0.86113631159405, 0.33998104358486, 0.86113631159405},
273  {0.86113631159405, 0.86113631159405, -0.86113631159405},
274  {0.86113631159405, 0.86113631159405, -0.33998104358486},
275  {0.86113631159405, 0.86113631159405, 0.33998104358486},
276  {0.86113631159405, 0.86113631159405, 0.86113631159405}};
277 
278 
279  const double Gauss<3, 4>::Weight[64] = {
280  0.042091477490529, 0.078911515795068, 0.078911515795068, 0.042091477490529,
281  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
282  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
283  0.042091477490529, 0.078911515795068, 0.078911515795068, 0.042091477490529,
284  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
285  0.14794033605678, 0.27735296695391, 0.27735296695391, 0.14794033605678,
286  0.14794033605678, 0.27735296695391, 0.27735296695391, 0.14794033605678,
287  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
288  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
289  0.14794033605678, 0.27735296695391, 0.27735296695391, 0.14794033605678,
290  0.14794033605678, 0.27735296695391, 0.27735296695391, 0.14794033605678,
291  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
292  0.042091477490529, 0.078911515795068, 0.078911515795068, 0.042091477490529,
293  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
294  0.078911515795068, 0.14794033605678, 0.14794033605678, 0.078911515795068,
295  0.042091477490529, 0.078911515795068, 0.078911515795068, 0.042091477490529};
296 
297  // 1D Triangles, which are just the same as 1D Gauss elements, but scaled
298  // so their coordinate runs from 0 to 1, rather than -1 to 1
299 
300  //------------------------------------------------------------
301  // N=2
302  //------------------------------------------------------------
303  const double TGauss<1, 2>::Knot[2][1] = {{0.5 * (-0.577350269189626 + 1.0)},
304  {0.5 * (0.577350269189626 + 1.0)}};
305 
306  const double TGauss<1, 2>::Weight[2] = {0.5, 0.5};
307 
308  //------------------------------------------------------------
309  // N=3
310  //------------------------------------------------------------
311  const double TGauss<1, 3>::Knot[3][1] = {{0.5 * (-0.774596669241483 + 1.0)},
312  {0.5},
313  {0.5 * (0.774596669241483 + 1.0)}};
314 
315  const double TGauss<1, 3>::Weight[3] = {
316  (5.0 / 18.0), (8.0 / 18.0), (5.0 / 18.0)};
317 
318  //------------------------------------------------------------
319  // N=4
320  //------------------------------------------------------------
321  const double TGauss<1, 4>::Knot[4][1] = {{0.5 * (-0.861136311594053 + 1.0)},
322  {0.5 * (-0.339981043584856 + 1.0)},
323  {0.5 * (0.339981043584856 + 1.0)},
324  {0.5 * (0.861136311594053 + 1.0)}};
325 
326  const double TGauss<1, 4>::Weight[4] = {0.5 * 0.347854845137448,
327  0.5 * 0.652145154862546,
328  0.5 * 0.652145154862546,
329  0.5 * 0.347854845137448};
330 
331  //------------------------------------------------------------
332  // N=5
333  //------------------------------------------------------------
334  const double TGauss<1, 5>::Knot[5][1] = {};
335 
336  const double TGauss<1, 5>::Weight[5] = {};
337 
338  /// / Define the positions and weights of the 2D Gauss points for triangles
339  //
340  //------------------------------------------------------------
341  // "Full integration" weights for linear triangles
342  // accurate up to second order (Bathe p 467)
343  //------------------------------------------------------------
344  const double TGauss<2, 2>::Knot[3][2] = {{0.1666666666667, 0.1666666666667},
345  {0.6666666666667, 0.1666666666667},
346  {0.1666666666667, 0.6666666666667}};
347 
348  const double TGauss<2, 2>::Weight[3] = {
349  0.1666666666667, 0.1666666666667, 0.1666666666667};
350 
351  //------------------------------------------------------------
352  // "Full integration" weights for quadratic triangles
353  // accurate up to fifth order (Bathe p 467)
354  //------------------------------------------------------------
355  const double TGauss<2, 3>::Knot[7][2] = {{0.1012865073235, 0.1012865073235},
356  {0.7974269853531, 0.1012865073235},
357  {0.1012865073235, 0.7974269853531},
358  {0.4701420641051, 0.0597158717898},
359  {0.4701420641051, 0.4701420641051},
360  {0.0597158717898, 0.4701420641051},
361  {0.3333333333333, 0.3333333333333}};
362 
363  const double TGauss<2, 3>::Weight[7] = {0.5 * 0.1259391805448,
364  0.5 * 0.1259391805448,
365  0.5 * 0.1259391805448,
366  0.5 * 0.1323941527885,
367  0.5 * 0.1323941527885,
368  0.5 * 0.1323941527885,
369  0.5 * 0.225};
370 
371 
372  //------------------------------------------------------------
373  //"Full integration" weights for cubic triangles
374  // accurate up to seventh order (Bathe p 467)
375  //------------------------------------------------------------
376  const double TGauss<2, 4>::Knot[13][2] = {{0.0651301029022, 0.0651301029022},
377  {0.8697397941956, 0.0651301029022},
378  {0.0651301029022, 0.8697397941956},
379  {0.3128654960049, 0.0486903154253},
380  {0.6384441885698, 0.3128654960049},
381  {0.0486903154253, 0.6384441885698},
382  {0.6384441885698, 0.0486903154253},
383  {0.3128654960049, 0.6384441885698},
384  {0.0486903154253, 0.3128654960049},
385  {0.2603459660790, 0.2603459660790},
386  {0.4793080678419, 0.2603459660790},
387  {0.2603459660790, 0.4793080678419},
388  {0.3333333333333, 0.3333333333333}};
389 
390 
391  const double TGauss<2, 4>::Weight[13] = {0.5 * 0.0533472356088,
392  0.5 * 0.0533472356088,
393  0.5 * 0.0533472356088,
394  0.5 * 0.0771137608903,
395  0.5 * 0.0771137608903,
396  0.5 * 0.0771137608903,
397  0.5 * 0.0771137608903,
398  0.5 * 0.0771137608903,
399  0.5 * 0.0771137608903,
400  0.5 * 0.1756152574332,
401  0.5 * 0.1756152574332,
402  0.5 * 0.1756152574332,
403  0.5 * -0.1495700444677};
404 
405  //------------------------------------------------------------
406  //"Full integration" weights for 2D triangles
407  // accurate up to order 11
408  // http://people.sc.fsu.edu/~jburkardt/datasets/quadrature_rules_tri/quadrature_rules_tri.html
409  // [TOMS706_37, order 37, degree of precision 13, a rule from ACM TOMS
410  // algorithm #706.]
411  //------------------------------------------------------------
412  const double TGauss<2, 13>::Knot[37][2] = {
413  {0.333333333333333333333333333333, 0.333333333333333333333333333333},
414  {0.950275662924105565450352089520, 0.024862168537947217274823955239},
415  {0.024862168537947217274823955239, 0.950275662924105565450352089520},
416  {0.024862168537947217274823955239, 0.024862168537947217274823955239},
417  {0.171614914923835347556304795551, 0.414192542538082326221847602214},
418  {0.414192542538082326221847602214, 0.171614914923835347556304795551},
419  {0.414192542538082326221847602214, 0.414192542538082326221847602214},
420  {0.539412243677190440263092985511, 0.230293878161404779868453507244},
421  {0.230293878161404779868453507244, 0.539412243677190440263092985511},
422  {0.230293878161404779868453507244, 0.230293878161404779868453507244},
423  {0.772160036676532561750285570113, 0.113919981661733719124857214943},
424  {0.113919981661733719124857214943, 0.772160036676532561750285570113},
425  {0.113919981661733719124857214943, 0.113919981661733719124857214943},
426  {0.009085399949835353883572964740, 0.495457300025082323058213517632},
427  {0.495457300025082323058213517632, 0.009085399949835353883572964740},
428  {0.495457300025082323058213517632, 0.495457300025082323058213517632},
429  {0.062277290305886993497083640527, 0.468861354847056503251458179727},
430  {0.468861354847056503251458179727, 0.062277290305886993497083640527},
431  {0.468861354847056503251458179727, 0.468861354847056503251458179727},
432  {0.022076289653624405142446876931, 0.851306504174348550389457672223},
433  {0.022076289653624405142446876931, 0.126617206172027096933163647918},
434  {0.851306504174348550389457672223, 0.022076289653624405142446876931},
435  {0.851306504174348550389457672223, 0.126617206172027096933163647918},
436  {0.126617206172027096933163647918, 0.022076289653624405142446876931},
437  {0.126617206172027096933163647918, 0.851306504174348550389457672223},
438  {0.018620522802520968955913511549, 0.689441970728591295496647976487},
439  {0.018620522802520968955913511549, 0.291937506468887771754472382212},
440  {0.689441970728591295496647976487, 0.018620522802520968955913511549},
441  {0.689441970728591295496647976487, 0.291937506468887771754472382212},
442  {0.291937506468887771754472382212, 0.018620522802520968955913511549},
443  {0.291937506468887771754472382212, 0.689441970728591295496647976487},
444  {0.096506481292159228736516560903, 0.635867859433872768286976979827},
445  {0.096506481292159228736516560903, 0.267625659273967961282458816185},
446  {0.635867859433872768286976979827, 0.096506481292159228736516560903},
447  {0.635867859433872768286976979827, 0.267625659273967961282458816185},
448  {0.267625659273967961282458816185, 0.096506481292159228736516560903},
449  {0.267625659273967961282458816185, 0.635867859433872768286976979827}};
450 
451  // Modified by DR 2017 to include factor 1/2
452  const double TGauss<2, 13>::Weight[37] = {
453  0.5 * 0.051739766065744133555179145422,
454  0.5 * 0.008007799555564801597804123460,
455  0.5 * 0.008007799555564801597804123460,
456  0.5 * 0.008007799555564801597804123460,
457  0.5 * 0.046868898981821644823226732071,
458  0.5 * 0.046868898981821644823226732071,
459  0.5 * 0.046868898981821644823226732071,
460  0.5 * 0.046590940183976487960361770070,
461  0.5 * 0.046590940183976487960361770070,
462  0.5 * 0.046590940183976487960361770070,
463  0.5 * 0.031016943313796381407646220131,
464  0.5 * 0.031016943313796381407646220131,
465  0.5 * 0.031016943313796381407646220131,
466  0.5 * 0.010791612736631273623178240136,
467  0.5 * 0.010791612736631273623178240136,
468  0.5 * 0.010791612736631273623178240136,
469  0.5 * 0.032195534242431618819414482205,
470  0.5 * 0.032195534242431618819414482205,
471  0.5 * 0.032195534242431618819414482205,
472  0.5 * 0.015445834210701583817692900053,
473  0.5 * 0.015445834210701583817692900053,
474  0.5 * 0.015445834210701583817692900053,
475  0.5 * 0.015445834210701583817692900053,
476  0.5 * 0.015445834210701583817692900053,
477  0.5 * 0.015445834210701583817692900053,
478  0.5 * 0.017822989923178661888748319485,
479  0.5 * 0.017822989923178661888748319485,
480  0.5 * 0.017822989923178661888748319485,
481  0.5 * 0.017822989923178661888748319485,
482  0.5 * 0.017822989923178661888748319485,
483  0.5 * 0.017822989923178661888748319485,
484  0.5 * 0.037038683681384627918546472190,
485  0.5 * 0.037038683681384627918546472190,
486  0.5 * 0.037038683681384627918546472190,
487  0.5 * 0.037038683681384627918546472190,
488  0.5 * 0.037038683681384627918546472190,
489  0.5 * 0.037038683681384627918546472190};
490 
491  //------------------------------------------------------------
492  //"Full integration" weights for 2D triangles
493  // accurate up to order 16
494  // http://people.sc.fsu.edu/~jburkardt/datasets/quadrature_rules_tri/
495  // quadrature_rules_tri.html
496  // This uses the order 16 Dunavant rule, computed using software available
497  // from
498  // https://people.sc.fsu.edu/~jburkardt/cpp_src/triangle_dunavant_rule/triangle_dunavant_rule.html
499  // This integegration scheme is accurate up to order 16 and uses 52 points
500  //------------------------------------------------------------
501  const double TGauss<2, 16>::Knot[52][2] = {
502  {0.333333333333333, 0.333333333333333},
503  {0.005238916103123, 0.497380541948438},
504  {0.497380541948438, 0.497380541948438},
505  {0.497380541948438, 0.005238916103123},
506  {0.173061122901295, 0.413469438549352},
507  {0.413469438549352, 0.413469438549352},
508  {0.413469438549352, 0.173061122901295},
509  {0.059082801866017, 0.470458599066991},
510  {0.470458599066991, 0.470458599066991},
511  {0.470458599066991, 0.059082801866017},
512  {0.518892500060958, 0.240553749969521},
513  {0.240553749969521, 0.240553749969521},
514  {0.240553749969521, 0.518892500060958},
515  {0.704068411554854, 0.147965794222573},
516  {0.147965794222573, 0.147965794222573},
517  {0.147965794222573, 0.704068411554854},
518  {0.849069624685052, 0.07546518765747399},
519  {0.07546518765747399, 0.07546518765747399},
520  {0.07546518765747399, 0.849069624685052},
521  {0.96680719475395, 0.016596402623025},
522  {0.016596402623025, 0.016596402623025},
523  {0.016596402623025, 0.96680719475395},
524  {0.103575692245252, 0.296555596579887},
525  {0.296555596579887, 0.599868711174861},
526  {0.599868711174861, 0.103575692245252},
527  {0.296555596579887, 0.103575692245252},
528  {0.599868711174861, 0.296555596579887},
529  {0.103575692245252, 0.599868711174861},
530  {0.020083411655416, 0.337723063403079},
531  {0.337723063403079, 0.6421935249415049},
532  {0.6421935249415049, 0.020083411655416},
533  {0.337723063403079, 0.020083411655416},
534  {0.6421935249415049, 0.337723063403079},
535  {0.020083411655416, 0.6421935249415049},
536  {-0.004341002614139, 0.204748281642812},
537  {0.204748281642812, 0.7995927209713271},
538  {0.7995927209713271, -0.004341002614139},
539  {0.204748281642812, -0.004341002614139},
540  {0.7995927209713271, 0.204748281642812},
541  {-0.004341002614139, 0.7995927209713271},
542  {0.04194178646801, 0.189358492130623},
543  {0.189358492130623, 0.768699721401368},
544  {0.768699721401368, 0.04194178646801},
545  {0.189358492130623, 0.04194178646801},
546  {0.768699721401368, 0.189358492130623},
547  {0.04194178646801, 0.768699721401368},
548  {0.014317320230681, 0.08528361568265699},
549  {0.08528361568265699, 0.900399064086661},
550  {0.900399064086661, 0.014317320230681},
551  {0.08528361568265699, 0.014317320230681},
552  {0.900399064086661, 0.08528361568265699},
553  {0.014317320230681, 0.900399064086661}};
554  // Modified by DR 2017 to include factor 1/2
555  const double TGauss<2, 16>::Weight[52] = {
556  2 * 0.046875697427642, 2 * 0.006405878578585, 2 * 0.006405878578585,
557  2 * 0.006405878578585, 2 * 0.041710296739387, 2 * 0.041710296739387,
558  2 * 0.041710296739387, 2 * 0.026891484250064, 2 * 0.026891484250064,
559  2 * 0.026891484250064, 2 * 0.04213252276165, 2 * 0.04213252276165,
560  2 * 0.04213252276165, 2 * 0.030000266842773, 2 * 0.030000266842773,
561  2 * 0.030000266842773, 2 * 0.014200098925024, 2 * 0.014200098925024,
562  2 * 0.014200098925024, 2 * 0.003582462351273, 2 * 0.003582462351273,
563  2 * 0.003582462351273, 2 * 0.032773147460627, 2 * 0.032773147460627,
564  2 * 0.032773147460627, 2 * 0.032773147460627, 2 * 0.032773147460627,
565  2 * 0.032773147460627, 2 * 0.015298306248441, 2 * 0.015298306248441,
566  2 * 0.015298306248441, 2 * 0.015298306248441, 2 * 0.015298306248441,
567  2 * 0.015298306248441, 2 * 0.002386244192839, 2 * 0.002386244192839,
568  2 * 0.002386244192839, 2 * 0.002386244192839, 2 * 0.002386244192839,
569  2 * 0.002386244192839, 2 * 0.019084792755899, 2 * 0.019084792755899,
570  2 * 0.019084792755899, 2 * 0.019084792755899, 2 * 0.019084792755899,
571  2 * 0.019084792755899, 2 * 0.006850054546542, 2 * 0.006850054546542,
572  2 * 0.006850054546542, 2 * 0.006850054546542, 2 * 0.006850054546542,
573  2 * 0.006850054546542};
574  //------------------------------------------------------------
575  //"Full integration" weights for 2D triangles
576  // accurate up to order 15
577  // http://people.sc.fsu.edu/~jburkardt/datasets/quadrature_rules_tri/quadrature_rules_tri.html
578  // [GAUSS8X8, order 64, degree of precision 15, (essentially a product of two
579  // 8 point 1D Gauss-Legendre rules).]
580  //------------------------------------------------------------
581  const double TGauss<2, 5>::Knot[64][2] = {
582  {0.9553660447100000, 0.8862103848242247e-3},
583  {0.9553660447100000, 0.4537789678039195e-2},
584  {0.9553660447100000, 0.1058868260117431e-1},
585  {0.9553660447100000, 0.1822327082910602e-1},
586  {0.9553660447100000, 0.2641068446089399e-1},
587  {0.9553660447100000, 0.3404527268882569e-1},
588  {0.9553660447100000, 0.4009616561196080e-1},
589  {0.9553660447100000, 0.4374774490517578e-1},
590  {0.8556337429600001, 0.2866402391985981e-2},
591  {0.8556337429600001, 0.1467724979327651e-1},
592  {0.8556337429600001, 0.3424855503358430e-1},
593  {0.8556337429600001, 0.5894224214571626e-1},
594  {0.8556337429600001, 0.8542401489428375e-1},
595  {0.8556337429600001, 0.1101177020064157},
596  {0.8556337429600001, 0.1296890072467235},
597  {0.8556337429600001, 0.1414998546480140},
598  {0.7131752428600000, 0.5694926133044352e-2},
599  {0.7131752428600000, 0.2916054411712861e-1},
600  {0.7131752428600000, 0.6804452564827500e-1},
601  {0.7131752428600000, 0.1171055801775613},
602  {0.7131752428600000, 0.1697191769624387},
603  {0.7131752428600000, 0.2187802314917250},
604  {0.7131752428600000, 0.2576642130228714},
605  {0.7131752428600000, 0.2811298310069557},
606  {0.5451866848000000, 0.9030351006711630e-2},
607  {0.5451866848000000, 0.4623939674940125e-1},
608  {0.5451866848000000, 0.1078970888004545},
609  {0.5451866848000000, 0.1856923986620134},
610  {0.5451866848000000, 0.2691209165379867},
611  {0.5451866848000000, 0.3469162263995455},
612  {0.5451866848000000, 0.4085739184505988},
613  {0.5451866848000000, 0.4457829641932884},
614  {0.3719321645800000, 0.1247033193690498e-1},
615  {0.3719321645800000, 0.6385362269957356e-1},
616  {0.3719321645800000, 0.1489989161403976},
617  {0.3719321645800000, 0.2564292182833579},
618  {0.3719321645800000, 0.3716386171366422},
619  {0.3719321645800000, 0.4790689192796024},
620  {0.3719321645800000, 0.5642142127204264},
621  {0.3719321645800000, 0.6155975034830951},
622  {0.2143084794000000, 0.1559996151584746e-1},
623  {0.2143084794000000, 0.7987871227492103e-1},
624  {0.2143084794000000, 0.1863925811641285},
625  {0.2143084794000000, 0.3207842387034378},
626  {0.2143084794000000, 0.4649072818965623},
627  {0.2143084794000000, 0.5992989394358715},
628  {0.2143084794000000, 0.7058128083250790},
629  {0.2143084794000000, 0.7700915590841526},
630  {0.9132360790000005e-1, 0.1804183496379599e-1},
631  {0.9132360790000005e-1, 0.9238218584838476e-1},
632  {0.9132360790000005e-1, 0.2155687489628060},
633  {0.9132360790000005e-1, 0.3709968314854498},
634  {0.9132360790000005e-1, 0.5376795606145502},
635  {0.9132360790000005e-1, 0.6931076431371940},
636  {0.9132360790000005e-1, 0.8162942062516152},
637  {0.9132360790000005e-1, 0.8906345571362040},
638  {0.1777991514999999e-1, 0.1950205026019779e-1},
639  {0.1777991514999999e-1, 0.9985913490381848e-1},
640  {0.1777991514999999e-1, 0.2330157982952792},
641  {0.1777991514999999e-1, 0.4010234473667467},
642  {0.1777991514999999e-1, 0.5811966374832533},
643  {0.1777991514999999e-1, 0.7492042865547208},
644  {0.1777991514999999e-1, 0.8823609499461815},
645  {0.1777991514999999e-1, 0.9627180345898023}};
646  // Modified by DR 2017 to include factor 1/2
647  const double TGauss<2, 5>::Weight[64] = {
648  0.5 * 0.3335674062677772e-3, 0.5 * 0.7327880811491046e-3,
649  0.5 * 0.1033723454167925e-2, 0.5 * 0.1195112498415193e-2,
650  0.5 * 0.1195112498415193e-2, 0.5 * 0.1033723454167925e-2,
651  0.5 * 0.7327880811491046e-3, 0.5 * 0.3335674062677772e-3,
652  0.5 * 0.1806210919443461e-2, 0.5 * 0.3967923151181667e-2,
653  0.5 * 0.5597437146194232e-2, 0.5 * 0.6471331443180639e-2,
654  0.5 * 0.6471331443180639e-2, 0.5 * 0.5597437146194232e-2,
655  0.5 * 0.3967923151181667e-2, 0.5 * 0.1806210919443461e-2,
656  0.5 * 0.4599755803015752e-2, 0.5 * 0.1010484287526739e-1,
657  0.5 * 0.1425461651131868e-1, 0.5 * 0.1648010431039818e-1,
658  0.5 * 0.1648010431039818e-1, 0.5 * 0.1425461651131868e-1,
659  0.5 * 0.1010484287526739e-1, 0.5 * 0.4599755803015752e-2,
660  0.5 * 0.8017259531156730e-2, 0.5 * 0.1761248886287915e-1,
661  0.5 * 0.2484544071087993e-1, 0.5 * 0.2872441038508419e-1,
662  0.5 * 0.2872441038508419e-1, 0.5 * 0.2484544071087993e-1,
663  0.5 * 0.1761248886287915e-1, 0.5 * 0.8017259531156730e-2,
664  0.5 * 0.1073501897357062e-1, 0.5 * 0.2358292149331603e-1,
665  0.5 * 0.3326776143412911e-1, 0.5 * 0.3846165753898425e-1,
666  0.5 * 0.3846165753898425e-1, 0.5 * 0.3326776143412911e-1,
667  0.5 * 0.2358292149331603e-1, 0.5 * 0.1073501897357062e-1,
668  0.5 * 0.1138879740452669e-1, 0.5 * 0.2501915606814251e-1,
669  0.5 * 0.3529381699354388e-1, 0.5 * 0.4080402900378691e-1,
670  0.5 * 0.4080402900378691e-1, 0.5 * 0.3529381699354388e-1,
671  0.5 * 0.2501915606814251e-1, 0.5 * 0.1138879740452669e-1,
672  0.5 * 0.9223845391285393e-2, 0.5 * 0.2026314273544469e-1,
673  0.5 * 0.2858464328177232e-1, 0.5 * 0.3304739223149761e-1,
674  0.5 * 0.3304739223149761e-1, 0.5 * 0.2858464328177232e-1,
675  0.5 * 0.2026314273544469e-1, 0.5 * 0.9223845391285393e-2,
676  0.5 * 0.4509812715921713e-2, 0.5 * 0.9907253959306707e-2,
677  0.5 * 0.1397588340693756e-1, 0.5 * 0.1615785427783403e-1,
678  0.5 * 0.1615785427783403e-1, 0.5 * 0.1397588340693756e-1,
679  0.5 * 0.9907253959306707e-2, 0.5 * 0.4509812715921713e-2};
680 
681  //------------------------------------------------------------
682  //"Full integration" weights for 2D triangles
683  // accurate up to points 19, degree of precision 8, a rule from ACM TOMS
684  // algorithm #584.
685  // http://people.sc.fsu.edu/~jburkardt/datasets/quadrature_rules_tri/quadrature_rules_tri.html
686  // TOMS589_19 a 19 point Gauss rule accurate to order 8
687  //------------------------------------------------------------
688  const double TGauss<2, 9>::Knot[19][2] = {
689  {0.3333333333333333, 0.3333333333333333},
690  {0.7974269853530872, 0.1012865073234563},
691  {0.1012865073234563, 0.7974269853530872},
692  {0.1012865073234563, 0.1012865073234563},
693  {0.0597158717897698, 0.4701420641051151},
694  {0.4701420641051151, 0.0597158717897698},
695  {0.4701420641051151, 0.4701420641051151},
696  {0.5357953464498992, 0.2321023267750504},
697  {0.2321023267750504, 0.5357953464498992},
698  {0.2321023267750504, 0.2321023267750504},
699  {0.9410382782311209, 0.0294808608844396},
700  {0.0294808608844396, 0.9410382782311209},
701  {0.0294808608844396, 0.0294808608844396},
702  {0.7384168123405100, 0.2321023267750504},
703  {0.7384168123405100, 0.0294808608844396},
704  {0.2321023267750504, 0.7384168123405100},
705  {0.2321023267750504, 0.0294808608844396},
706  {0.0294808608844396, 0.7384168123405100},
707  {0.0294808608844396, 0.2321023267750504}};
708 
709  const double TGauss<2, 9>::Weight[19] = {2 * 0.0378610912003147,
710  2 * 0.0376204254131829,
711  2 * 0.0376204254131829,
712  2 * 0.0376204254131829,
713  2 * 0.0783573522441174,
714  2 * 0.0783573522441174,
715  2 * 0.0783573522441174,
716  2 * 0.1162714796569659,
717  2 * 0.1162714796569659,
718  2 * 0.1162714796569659,
719  2 * 0.0134442673751655,
720  2 * 0.0134442673751655,
721  2 * 0.0134442673751655,
722  2 * 0.0375097224552317,
723  2 * 0.0375097224552317,
724  2 * 0.0375097224552317,
725  2 * 0.0375097224552317,
726  2 * 0.0375097224552317,
727  2 * 0.0375097224552317};
728 
729  //------------------------------------------------------------
730  /// / Define the positions and weights of the 3D Gauss points for tets
731 
732  //------------------------------------------------------------
733  // "Full integration" weights for linear tets
734  // accurate up to second order (e.g. from German Zienkiwicz p 200)
735  //------------------------------------------------------------
736  const double TGauss<3, 2>::Knot[4][3] = {
737  {0.138196601125011, 0.138196601125011, 0.585410196624969},
738  {0.138196601125011, 0.585410196624969, 0.138196601125011},
739  {0.585410196624969, 0.138196601125011, 0.138196601125011},
740  {0.138196601125011, 0.138196601125011, 0.138196601125011}};
741 
742 
743  const double TGauss<3, 2>::Weight[4] = {
744  0.0416666666667, 0.0416666666667, 0.0416666666667, 0.0416666666667};
745 
746 
747  //------------------------------------------------------------
748  //"Full integration" weights for quadratic tets
749  // accurate up to fifth order
750  // The numbers are from Keast CMAME 55 pp339-348 (1986)
751  //------------------------------------------------------------
752  const double TGauss<3, 3>::Knot[11][3] = {
753  {0.25, 0.25, 0.25},
754  {0.785714285714286, 0.071428571428571, 0.071428571428571},
755  {0.071428571428571, 0.071428571428571, 0.071428571428571},
756  {0.071428571428571, 0.785714285714286, 0.071428571428571},
757  {0.071428571428571, 0.071428571428571, 0.785714285714286},
758  {0.399403576166799, 0.399403576166799, 0.100596423833201},
759  {0.399403576166799, 0.100596423833201, 0.399403576166799},
760  {0.100596423833201, 0.399403576166799, 0.399403576166799},
761  {0.399403576166799, 0.100596423833201, 0.100596423833201},
762  {0.100596423833201, 0.399403576166799, 0.100596423833201},
763  {0.100596423833201, 0.100596423833201, 0.399403576166799}};
764 
765 
766  const double TGauss<3, 3>::Weight[11] = {-0.01315555555556,
767  0.00762222222222,
768  0.00762222222222,
769  0.00762222222222,
770  0.00762222222222,
771  0.02488888888889,
772  0.02488888888889,
773  0.02488888888889,
774  0.02488888888889,
775  0.02488888888889,
776  0.02488888888889};
777 
778  //------------------------------------------------------------
779  //"Full integration" weights for quartic tets
780  // accurate up to eighth order
781  // The numbers are from Keast CMAME 55 pp339-348 (1986)
782  //------------------------------------------------------------
783  const double TGauss<3, 5>::Knot[45][3] = {
784  {2.50000000000000000e-01, 2.50000000000000000e-01, 2.50000000000000000e-01},
785  {1.27470936566639015e-01, 1.27470936566639015e-01, 1.27470936566639015e-01},
786  {1.27470936566639015e-01, 1.27470936566639015e-01, 6.17587190300082967e-01},
787  {1.27470936566639015e-01, 6.17587190300082967e-01, 1.27470936566639015e-01},
788  {6.17587190300082967e-01, 1.27470936566639015e-01, 1.27470936566639015e-01},
789  {3.20788303926322960e-02, 3.20788303926322960e-02, 3.20788303926322960e-02},
790  {3.20788303926322960e-02, 3.20788303926322960e-02, 9.03763508822103123e-01},
791  {3.20788303926322960e-02, 9.03763508822103123e-01, 3.20788303926322960e-02},
792  {9.03763508822103123e-01, 3.20788303926322960e-02, 3.20788303926322960e-02},
793  {4.97770956432810185e-02, 4.97770956432810185e-02, 4.50222904356718978e-01},
794  {4.97770956432810185e-02, 4.50222904356718978e-01, 4.50222904356718978e-01},
795  {4.50222904356718978e-01, 4.50222904356718978e-01, 4.97770956432810185e-02},
796  {4.50222904356718978e-01, 4.97770956432810185e-02, 4.97770956432810185e-02},
797  {4.97770956432810185e-02, 4.50222904356718978e-01, 4.97770956432810185e-02},
798  {4.50222904356718978e-01, 4.97770956432810185e-02, 4.50222904356718978e-01},
799  {1.83730447398549945e-01, 1.83730447398549945e-01, 3.16269552601450060e-01},
800  {1.83730447398549945e-01, 3.16269552601450060e-01, 3.16269552601450060e-01},
801  {3.16269552601450060e-01, 3.16269552601450060e-01, 1.83730447398549945e-01},
802  {3.16269552601450060e-01, 1.83730447398549945e-01, 1.83730447398549945e-01},
803  {1.83730447398549945e-01, 3.16269552601450060e-01, 1.83730447398549945e-01},
804  {3.16269552601450060e-01, 1.83730447398549945e-01, 3.16269552601450060e-01},
805  {2.31901089397150906e-01, 2.31901089397150906e-01, 2.29177878448171174e-02},
806  {2.31901089397150906e-01, 2.29177878448171174e-02, 5.13280033360881072e-01},
807  {2.29177878448171174e-02, 5.13280033360881072e-01, 2.31901089397150906e-01},
808  {5.13280033360881072e-01, 2.31901089397150906e-01, 2.31901089397150906e-01},
809  {2.31901089397150906e-01, 5.13280033360881072e-01, 2.31901089397150906e-01},
810  {5.13280033360881072e-01, 2.31901089397150906e-01, 2.29177878448171174e-02},
811  {2.31901089397150906e-01, 2.29177878448171174e-02, 2.31901089397150906e-01},
812  {2.31901089397150906e-01, 5.13280033360881072e-01, 2.29177878448171174e-02},
813  {2.29177878448171174e-02, 2.31901089397150906e-01, 5.13280033360881072e-01},
814  {5.13280033360881072e-01, 2.29177878448171174e-02, 2.31901089397150906e-01},
815  {2.29177878448171174e-02, 2.31901089397150906e-01, 2.31901089397150906e-01},
816  {2.31901089397150906e-01, 2.31901089397150906e-01, 5.13280033360881072e-01},
817  {3.79700484718286102e-02, 3.79700484718286102e-02, 7.30313427807538396e-01},
818  {3.79700484718286102e-02, 7.30313427807538396e-01, 1.93746475248804382e-01},
819  {7.30313427807538396e-01, 1.93746475248804382e-01, 3.79700484718286102e-02},
820  {1.93746475248804382e-01, 3.79700484718286102e-02, 3.79700484718286102e-02},
821  {3.79700484718286102e-02, 1.93746475248804382e-01, 3.79700484718286102e-02},
822  {1.93746475248804382e-01, 3.79700484718286102e-02, 7.30313427807538396e-01},
823  {3.79700484718286102e-02, 7.30313427807538396e-01, 3.79700484718286102e-02},
824  {3.79700484718286102e-02, 1.93746475248804382e-01, 7.30313427807538396e-01},
825  {7.30313427807538396e-01, 3.79700484718286102e-02, 1.93746475248804382e-01},
826  {1.93746475248804382e-01, 7.30313427807538396e-01, 3.79700484718286102e-02},
827  {7.30313427807538396e-01, 3.79700484718286102e-02, 3.79700484718286102e-02},
828  {3.79700484718286102e-02,
829  3.79700484718286102e-02,
830  1.93746475248804382e-01}};
831 
832  const double TGauss<3, 5>::Weight[45] = {
833  -3.93270066412926145e-02, 4.08131605934270525e-03, 4.08131605934270525e-03,
834  4.08131605934270525e-03, 4.08131605934270525e-03, 6.58086773304341943e-04,
835  6.58086773304341943e-04, 6.58086773304341943e-04, 6.58086773304341943e-04,
836  4.38425882512284693e-03, 4.38425882512284693e-03, 4.38425882512284693e-03,
837  4.38425882512284693e-03, 4.38425882512284693e-03, 4.38425882512284693e-03,
838  1.38300638425098166e-02, 1.38300638425098166e-02, 1.38300638425098166e-02,
839  1.38300638425098166e-02, 1.38300638425098166e-02, 1.38300638425098166e-02,
840  4.24043742468372453e-03, 4.24043742468372453e-03, 4.24043742468372453e-03,
841  4.24043742468372453e-03, 4.24043742468372453e-03, 4.24043742468372453e-03,
842  4.24043742468372453e-03, 4.24043742468372453e-03, 4.24043742468372453e-03,
843  4.24043742468372453e-03, 4.24043742468372453e-03, 4.24043742468372453e-03,
844  2.23873973961420164e-03, 2.23873973961420164e-03, 2.23873973961420164e-03,
845  2.23873973961420164e-03, 2.23873973961420164e-03, 2.23873973961420164e-03,
846  2.23873973961420164e-03, 2.23873973961420164e-03, 2.23873973961420164e-03,
847  2.23873973961420164e-03, 2.23873973961420164e-03, 2.23873973961420164e-03};
848 
849 } // namespace oomph
static const double Weight[2]
Definition: integral.h:164
static const double Knot[2][1]
Array to hold weights and knot points (defined in cc file)
Definition: integral.h:164
static const double Weight[3]
Definition: integral.h:210
static const double Knot[3][1]
Array to hold weights and knot points (defined in cc file)
Definition: integral.h:210
static const double Knot[4][1]
Array to hold weight and knot points (defined in cc file)
Definition: integral.h:256
static const double Weight[4]
Definition: integral.h:256
static const double Weight[4]
Definition: integral.h:302
static const double Knot[4][2]
Array to hold the weight and know points (defined in cc file)
Definition: integral.h:302
static const double Weight[9]
Definition: integral.h:348
static const double Knot[9][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:348
static const double Weight[16]
Definition: integral.h:394
static const double Knot[16][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:394
static const double Knot[8][3]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:441
static const double Weight[8]
Definition: integral.h:441
static const double Knot[27][3]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:487
static const double Weight[27]
Definition: integral.h:487
static const double Knot[64][3]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:533
static const double Weight[64]
Definition: integral.h:533
static const double Knot[2][1]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:646
static const double Weight[2]
Definition: integral.h:646
static const double Knot[3][1]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:692
static const double Weight[3]
Definition: integral.h:692
static const double Knot[4][1]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:739
static const double Weight[4]
Definition: integral.h:739
static const double Weight[5]
Definition: integral.h:778
static const double Knot[5][1]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:778
static const double Knot[37][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:963
static const double Weight[37]
Definition: integral.h:963
static const double Knot[52][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:1056
static const double Weight[52]
Definition: integral.h:1056
static const double Weight[3]
Definition: integral.h:826
static const double Knot[3][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:826
static const double Weight[7]
Definition: integral.h:872
static const double Knot[7][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:872
static const double Knot[13][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:919
static const double Weight[13]
Definition: integral.h:919
static const double Weight[64]
Definition: integral.h:1100
static const double Knot[64][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:1100
static const double Weight[19]
Definition: integral.h:1008
static const double Knot[19][2]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:1008
static const double Knot[4][3]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:1146
static const double Weight[4]
Definition: integral.h:1146
static const double Knot[11][3]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:1194
static const double Weight[11]
Definition: integral.h:1194
static const double Knot[45][3]
Array to hold the weights and knots (defined in cc file)
Definition: integral.h:1242
static const double Weight[45]
Definition: integral.h:1242
//////////////////////////////////////////////////////////////////// ////////////////////////////////...