Line data Source code
1 : /*
2 : * Copyright (c) 2011-2013: G-CSC, Goethe University Frankfurt
3 : *
4 : * This file is part of UG4.
5 : *
6 : * UG4 is free software: you can redistribute it and/or modify it under the
7 : * terms of the GNU Lesser General Public License version 3 (as published by the
8 : * Free Software Foundation) with the following additional attribution
9 : * requirements (according to LGPL/GPL v3 §7):
10 : *
11 : * (1) The following notice must be displayed in the Appropriate Legal Notices
12 : * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
13 : *
14 : * (2) The following notice must be displayed at a prominent place in the
15 : * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
16 : *
17 : * (3) The following bibliography is recommended for citation and must be
18 : * preserved in all covered files:
19 : * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
20 : * parallel geometric multigrid solver on hierarchically distributed grids.
21 : * Computing and visualization in science 16, 4 (2013), 151-164"
22 : * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
23 : * flexible software system for simulating pde based models on high performance
24 : * computers. Computing and visualization in science 16, 4 (2013), 165-179"
25 : *
26 : * This program is distributed in the hope that it will be useful,
27 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 : * GNU Lesser General Public License for more details.
30 : */
31 :
32 : // This file is parsed from UG 3.9.
33 : // It provides the Gauss Quadratures for a reference tetrahedron.
34 :
35 :
36 : #include "../quadrature.h"
37 : #include "gauss_quad_tetrahedron.h"
38 :
39 : namespace ug{
40 :
41 : template <>
42 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 0>, 3, 0, 7>::m_vWeight[7] =
43 : {
44 : 1./6. * 0.14285714285714300000000000000000,
45 : 1./6. * 0.14285714285714300000000000000000,
46 : 1./6. * 0.14285714285714300000000000000000,
47 : 1./6. * 0.14285714285714300000000000000000,
48 : 1./6. * 0.14285714285714300000000000000000,
49 : 1./6. * 0.14285714285714300000000000000000,
50 : 1./6. * 0.14285714285714300000000000000000
51 : };
52 :
53 : template <>
54 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 0>, 3, 0, 7>::m_vPoint[7] =
55 : {
56 : MathVector<3>(0.25000000000000000000000000000000, 0.25000000000000000000000000000000, 0.25000000000000000000000000000000),
57 : MathVector<3>(0.10000000000000000000000000000000, 0.10000000000000000000000000000000, 0.40000000000000000000000000000000),
58 : MathVector<3>(0.10000000000000000000000000000000, 0.40000000000000000000000000000000, 0.10000000000000000000000000000000),
59 : MathVector<3>(0.40000000000000000000000000000000, 0.10000000000000000000000000000000, 0.10000000000000000000000000000000),
60 : MathVector<3>(0.10000000000000000000000000000000, 0.40000000000000000000000000000000, 0.40000000000000000000000000000000),
61 : MathVector<3>(0.40000000000000000000000000000000, 0.10000000000000000000000000000000, 0.40000000000000000000000000000000),
62 : MathVector<3>(0.40000000000000000000000000000000, 0.40000000000000000000000000000000, 0.10000000000000000000000000000000)
63 : };
64 :
65 : template <>
66 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 1>, 3, 1, 1>::m_vWeight[1] =
67 : {
68 : 1./6. * 1.00000000000000000000000000000000
69 : };
70 :
71 : template <>
72 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 1>, 3, 1, 1>::m_vPoint[1] =
73 : {
74 : MathVector<3>(0.25000000000000000000000000000000, 0.25000000000000000000000000000000, 0.25000000000000000000000000000000)
75 : };
76 :
77 : template <>
78 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 2>, 3, 2, 4>::m_vWeight[4] =
79 : {
80 : 1./6. * 0.25000000000000000000000000000000,
81 : 1./6. * 0.25000000000000000000000000000000,
82 : 1./6. * 0.25000000000000000000000000000000,
83 : 1./6. * 0.25000000000000000000000000000000
84 : };
85 :
86 : template <>
87 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 2>, 3, 2, 4>::m_vPoint[4] =
88 : {
89 : MathVector<3>(0.58541020000000000000000000000000, 0.13819660000000000000000000000000, 0.13819660000000000000000000000000),
90 : MathVector<3>(0.13819660000000000000000000000000, 0.58541020000000000000000000000000, 0.13819660000000000000000000000000),
91 : MathVector<3>(0.13819660000000000000000000000000, 0.13819660000000000000000000000000, 0.58541020000000000000000000000000),
92 : MathVector<3>(0.13819660000000000000000000000000, 0.13819660000000000000000000000000, 0.13819660000000000000000000000000)
93 :
94 : // MORE ACCURATE
95 : //MathVector<3>(0.5854101966249685, 0.1381966011250105, 0.1381966011250105),
96 : //MathVector<3>(0.1381966011250105, 0.5854101966249685, 0.1381966011250105),
97 : //MathVector<3>(0.1381966011250105, 0.1381966011250105, 0.5854101966249685),
98 : //MathVector<3>(0.1381966011250105, 0.1381966011250105, 0.1381966011250105)
99 : };
100 :
101 : template <>
102 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 3>, 3, 3, 8>::m_vWeight[8] =
103 : {
104 : 1./6. * 0.02500000000000000000000000000000,
105 : 1./6. * 0.02500000000000000000000000000000,
106 : 1./6. * 0.02500000000000000000000000000000,
107 : 1./6. * 0.02500000000000000000000000000000,
108 : 1./6. * 0.22500000000000000000000000000000,
109 : 1./6. * 0.22500000000000000000000000000000,
110 : 1./6. * 0.22500000000000000000000000000000,
111 : 1./6. * 0.22500000000000000000000000000000
112 : };
113 :
114 : template <>
115 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 3>, 3, 3, 8>::m_vPoint[8] =
116 : {
117 : MathVector<3>(0.00000000000000000000000000000000, 0.00000000000000000000000000000000, 0.00000000000000000000000000000000),
118 : MathVector<3>(1.00000000000000000000000000000000, 0.00000000000000000000000000000000, 0.00000000000000000000000000000000),
119 : MathVector<3>(0.00000000000000000000000000000000, 1.00000000000000000000000000000000, 0.00000000000000000000000000000000),
120 : MathVector<3>(0.00000000000000000000000000000000, 0.00000000000000000000000000000000, 1.00000000000000000000000000000000),
121 : MathVector<3>(0.33333333333300000000000000000000, 0.33333333333300000000000000000000, 0.00000000000000000000000000000000),
122 : MathVector<3>(0.33333333333300000000000000000000, 0.00000000000000000000000000000000, 0.33333333333300000000000000000000),
123 : MathVector<3>(0.00000000000000000000000000000000, 0.33333333333300000000000000000000, 0.33333333333300000000000000000000),
124 : MathVector<3>(0.33333333333300000000000000000000, 0.33333333333300000000000000000000, 0.33333333333300000000000000000000)
125 : };
126 :
127 : template <>
128 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 5>, 3, 5, 15>::m_vWeight[15] =
129 : {
130 : 1./6. * 0.11851852000000000000000000000000,
131 : 1./6. * 0.07193708400000000000000000000000,
132 : 1./6. * 0.07193708400000000000000000000000,
133 : 1./6. * 0.07193708400000000000000000000000,
134 : 1./6. * 0.07193708400000000000000000000000,
135 : 1./6. * 0.06906820700000000000000000000000,
136 : 1./6. * 0.06906820700000000000000000000000,
137 : 1./6. * 0.06906820700000000000000000000000,
138 : 1./6. * 0.06906820700000000000000000000000,
139 : 1./6. * 0.05291005300000000000000000000000,
140 : 1./6. * 0.05291005300000000000000000000000,
141 : 1./6. * 0.05291005300000000000000000000000,
142 : 1./6. * 0.05291005300000000000000000000000,
143 : 1./6. * 0.05291005300000000000000000000000,
144 : 1./6. * 0.05291005300000000000000000000000
145 : };
146 :
147 : template <>
148 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 5>, 3, 5, 15>::m_vPoint[15] =
149 : {
150 : MathVector<3>(0.25000000000000000000000000000000, 0.25000000000000000000000000000000, 0.25000000000000000000000000000000),
151 : MathVector<3>(0.09197107800000000000000000000000, 0.09197107800000000000000000000000, 0.09197107800000000000000000000000),
152 : MathVector<3>(0.72408677000000000000000000000000, 0.09197107800000000000000000000000, 0.09197107800000000000000000000000),
153 : MathVector<3>(0.09197107800000000000000000000000, 0.72408677000000000000000000000000, 0.09197107800000000000000000000000),
154 : MathVector<3>(0.09197107800000000000000000000000, 0.09197107800000000000000000000000, 0.72408677000000000000000000000000),
155 : MathVector<3>(0.31979363000000000000000000000000, 0.31979363000000000000000000000000, 0.31979363000000000000000000000000),
156 : MathVector<3>(0.04061911700000000000000000000000, 0.31979363000000000000000000000000, 0.31979363000000000000000000000000),
157 : MathVector<3>(0.31979363000000000000000000000000, 0.04061911700000000000000000000000, 0.31979363000000000000000000000000),
158 : MathVector<3>(0.31979363000000000000000000000000, 0.31979363000000000000000000000000, 0.04061911700000000000000000000000),
159 : MathVector<3>(0.44364917000000000000000000000000, 0.05635083300000000000000000000000, 0.05635083300000000000000000000000),
160 : MathVector<3>(0.05635083300000000000000000000000, 0.44364917000000000000000000000000, 0.05635083300000000000000000000000),
161 : MathVector<3>(0.05635083300000000000000000000000, 0.05635083300000000000000000000000, 0.44364917000000000000000000000000),
162 : MathVector<3>(0.44364917000000000000000000000000, 0.44364917000000000000000000000000, 0.05635083300000000000000000000000),
163 : MathVector<3>(0.44364917000000000000000000000000, 0.05635083300000000000000000000000, 0.44364917000000000000000000000000),
164 : MathVector<3>(0.05635083300000000000000000000000, 0.44364917000000000000000000000000, 0.44364917000000000000000000000000)
165 : };
166 :
167 : template <>
168 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 6>, 3, 6, 24>::m_vWeight[24] =
169 : {
170 : 1./6. * 0.03992275025816749209969062755748,
171 : 1./6. * 0.03992275025816749209969062755748,
172 : 1./6. * 0.03992275025816749209969062755748,
173 : 1./6. * 0.03992275025816749209969062755748,
174 : 1./6. * 0.01007721105532064294801323744594,
175 : 1./6. * 0.01007721105532064294801323744594,
176 : 1./6. * 0.01007721105532064294801323744594,
177 : 1./6. * 0.01007721105532064294801323744594,
178 : 1./6. * 0.05535718154365472209515327785373,
179 : 1./6. * 0.05535718154365472209515327785373,
180 : 1./6. * 0.05535718154365472209515327785373,
181 : 1./6. * 0.05535718154365472209515327785373,
182 : 1./6. * 0.04821428571428571428571428571429,
183 : 1./6. * 0.04821428571428571428571428571429,
184 : 1./6. * 0.04821428571428571428571428571429,
185 : 1./6. * 0.04821428571428571428571428571429,
186 : 1./6. * 0.04821428571428571428571428571429,
187 : 1./6. * 0.04821428571428571428571428571429,
188 : 1./6. * 0.04821428571428571428571428571429,
189 : 1./6. * 0.04821428571428571428571428571429,
190 : 1./6. * 0.04821428571428571428571428571429,
191 : 1./6. * 0.04821428571428571428571428571429,
192 : 1./6. * 0.04821428571428571428571428571429,
193 : 1./6. * 0.04821428571428571428571428571429
194 : };
195 :
196 : template <>
197 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 6>, 3, 6, 24>::m_vPoint[24] =
198 : {
199 : MathVector<3>(0.21460287125915202928883921938628, 0.21460287125915202928883921938628, 0.21460287125915202928883921938628),
200 : MathVector<3>(0.35619138622254391213348234184115, 0.21460287125915202928883921938628, 0.21460287125915202928883921938628),
201 : MathVector<3>(0.21460287125915202928883921938628, 0.35619138622254391213348234184115, 0.21460287125915202928883921938628),
202 : MathVector<3>(0.21460287125915202928883921938628, 0.21460287125915202928883921938628, 0.35619138622254391213348234184115),
203 : MathVector<3>(0.04067395853461135311557944895641, 0.04067395853461135311557944895641, 0.04067395853461135311557944895641),
204 : MathVector<3>(0.87797812439616594065326165313077, 0.04067395853461135311557944895641, 0.04067395853461135311557944895641),
205 : MathVector<3>(0.04067395853461135311557944895641, 0.87797812439616594065326165313077, 0.04067395853461135311557944895641),
206 : MathVector<3>(0.04067395853461135311557944895641, 0.04067395853461135311557944895641, 0.87797812439616594065326165313077),
207 : MathVector<3>(0.32233789014227551034399447076249, 0.32233789014227551034399447076249, 0.32233789014227551034399447076249),
208 : MathVector<3>(0.03298632957317346896801658771252, 0.32233789014227551034399447076249, 0.32233789014227551034399447076249),
209 : MathVector<3>(0.32233789014227551034399447076249, 0.03298632957317346896801658771252, 0.32233789014227551034399447076249),
210 : MathVector<3>(0.32233789014227551034399447076249, 0.32233789014227551034399447076249, 0.03298632957317346896801658771252),
211 : MathVector<3>(0.06366100187501752529923552760573, 0.06366100187501752529923552760573, 0.26967233145831580803409780572761),
212 : MathVector<3>(0.06366100187501752529923552760573, 0.26967233145831580803409780572761, 0.06366100187501752529923552760573),
213 : MathVector<3>(0.26967233145831580803409780572761, 0.06366100187501752529923552760573, 0.06366100187501752529923552760573),
214 : MathVector<3>(0.06366100187501752529923552760573, 0.06366100187501752529923552760573, 0.60300566479164914136743113906094),
215 : MathVector<3>(0.06366100187501752529923552760573, 0.60300566479164914136743113906094, 0.06366100187501752529923552760573),
216 : MathVector<3>(0.60300566479164914136743113906094, 0.06366100187501752529923552760573, 0.06366100187501752529923552760573),
217 : MathVector<3>(0.06366100187501752529923552760573, 0.26967233145831580803409780572761, 0.60300566479164914136743113906094),
218 : MathVector<3>(0.06366100187501752529923552760573, 0.60300566479164914136743113906094, 0.26967233145831580803409780572761),
219 : MathVector<3>(0.26967233145831580803409780572761, 0.06366100187501752529923552760573, 0.60300566479164914136743113906094),
220 : MathVector<3>(0.60300566479164914136743113906094, 0.06366100187501752529923552760573, 0.26967233145831580803409780572761),
221 : MathVector<3>(0.26967233145831580803409780572761, 0.60300566479164914136743113906094, 0.06366100187501752529923552760573),
222 : MathVector<3>(0.60300566479164914136743113906094, 0.26967233145831580803409780572761, 0.06366100187501752529923552760573)
223 : };
224 :
225 : template <>
226 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 7>, 3, 7, 31>::m_vWeight[31] =
227 : {
228 : 1./6. * 0.00582010582010582010582010582011,
229 : 1./6. * 0.00582010582010582010582010582011,
230 : 1./6. * 0.00582010582010582010582010582011,
231 : 1./6. * 0.00582010582010582010582010582011,
232 : 1./6. * 0.00582010582010582010582010582011,
233 : 1./6. * 0.00582010582010582010582010582011,
234 : 1./6. * 0.10958534079665292174720941138968,
235 : 1./6. * 0.06359964914648212149848324912716,
236 : 1./6. * 0.06359964914648212149848324912716,
237 : 1./6. * 0.06359964914648212149848324912716,
238 : 1./6. * 0.06359964914648212149848324912716,
239 : 1./6. * -0.37510644068599111014882208495676,
240 : 1./6. * -0.37510644068599111014882208495676,
241 : 1./6. * -0.37510644068599111014882208495676,
242 : 1./6. * -0.37510644068599111014882208495676,
243 : 1./6. * 0.02934855157844099630877457822026,
244 : 1./6. * 0.02934855157844099630877457822026,
245 : 1./6. * 0.02934855157844099630877457822026,
246 : 1./6. * 0.02934855157844099630877457822026,
247 : 1./6. * 0.16534391534391534391534391534392,
248 : 1./6. * 0.16534391534391534391534391534392,
249 : 1./6. * 0.16534391534391534391534391534392,
250 : 1./6. * 0.16534391534391534391534391534392,
251 : 1./6. * 0.16534391534391534391534391534392,
252 : 1./6. * 0.16534391534391534391534391534392,
253 : 1./6. * 0.16534391534391534391534391534392,
254 : 1./6. * 0.16534391534391534391534391534392,
255 : 1./6. * 0.16534391534391534391534391534392,
256 : 1./6. * 0.16534391534391534391534391534392,
257 : 1./6. * 0.16534391534391534391534391534392,
258 : 1./6. * 0.16534391534391534391534391534392
259 : };
260 :
261 : template <>
262 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 7>, 3, 7, 31>::m_vPoint[31] =
263 : {
264 : MathVector<3>(0.50000000000000000000000000000000, 0.50000000000000000000000000000000, 0.00000000000000000000000000000000),
265 : MathVector<3>(0.50000000000000000000000000000000, 0.00000000000000000000000000000000, 0.50000000000000000000000000000000),
266 : MathVector<3>(0.00000000000000000000000000000000, 0.50000000000000000000000000000000, 0.50000000000000000000000000000000),
267 : MathVector<3>(0.00000000000000000000000000000000, 0.00000000000000000000000000000000, 0.50000000000000000000000000000000),
268 : MathVector<3>(0.00000000000000000000000000000000, 0.50000000000000000000000000000000, 0.00000000000000000000000000000000),
269 : MathVector<3>(0.50000000000000000000000000000000, 0.00000000000000000000000000000000, 0.00000000000000000000000000000000),
270 : MathVector<3>(0.25000000000000000000000000000000, 0.25000000000000000000000000000000, 0.25000000000000000000000000000000),
271 : MathVector<3>(0.07821319233031806437399425083755, 0.07821319233031806437399425083755, 0.07821319233031806437399425083755),
272 : MathVector<3>(0.76536042300904580687801724748734, 0.07821319233031806437399425083755, 0.07821319233031806437399425083755),
273 : MathVector<3>(0.07821319233031806437399425083755, 0.76536042300904580687801724748734, 0.07821319233031806437399425083755),
274 : MathVector<3>(0.07821319233031806437399425083755, 0.07821319233031806437399425083755, 0.76536042300904580687801724748734),
275 : MathVector<3>(0.12184321666390517465215637268482, 0.12184321666390517465215637268482, 0.12184321666390517465215637268482),
276 : MathVector<3>(0.63447035000828447604353088194555, 0.12184321666390517465215637268482, 0.12184321666390517465215637268482),
277 : MathVector<3>(0.12184321666390517465215637268482, 0.63447035000828447604353088194555, 0.12184321666390517465215637268482),
278 : MathVector<3>(0.12184321666390517465215637268482, 0.12184321666390517465215637268482, 0.63447035000828447604353088194555),
279 : MathVector<3>(0.33253916444642062415292382315771, 0.33253916444642062415292382315771, 0.33253916444642062415292382315771),
280 : MathVector<3>(0.00238250666073812754122853052688, 0.33253916444642062415292382315771, 0.33253916444642062415292382315771),
281 : MathVector<3>(0.33253916444642062415292382315771, 0.00238250666073812754122853052688, 0.33253916444642062415292382315771),
282 : MathVector<3>(0.33253916444642062415292382315771, 0.33253916444642062415292382315771, 0.00238250666073812754122853052688),
283 : MathVector<3>(0.10000000000000000000000000000000, 0.10000000000000000000000000000000, 0.20000000000000000000000000000000),
284 : MathVector<3>(0.10000000000000000000000000000000, 0.20000000000000000000000000000000, 0.10000000000000000000000000000000),
285 : MathVector<3>(0.20000000000000000000000000000000, 0.10000000000000000000000000000000, 0.10000000000000000000000000000000),
286 : MathVector<3>(0.10000000000000000000000000000000, 0.10000000000000000000000000000000, 0.60000000000000000000000000000000),
287 : MathVector<3>(0.10000000000000000000000000000000, 0.60000000000000000000000000000000, 0.10000000000000000000000000000000),
288 : MathVector<3>(0.60000000000000000000000000000000, 0.10000000000000000000000000000000, 0.10000000000000000000000000000000),
289 : MathVector<3>(0.10000000000000000000000000000000, 0.20000000000000000000000000000000, 0.60000000000000000000000000000000),
290 : MathVector<3>(0.10000000000000000000000000000000, 0.60000000000000000000000000000000, 0.20000000000000000000000000000000),
291 : MathVector<3>(0.60000000000000000000000000000000, 0.10000000000000000000000000000000, 0.20000000000000000000000000000000),
292 : MathVector<3>(0.20000000000000000000000000000000, 0.10000000000000000000000000000000, 0.60000000000000000000000000000000),
293 : MathVector<3>(0.20000000000000000000000000000000, 0.60000000000000000000000000000000, 0.10000000000000000000000000000000),
294 : MathVector<3>(0.60000000000000000000000000000000, 0.20000000000000000000000000000000, 0.10000000000000000000000000000000)
295 : };
296 :
297 : template <>
298 : number GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 8>, 3, 8, 43>::m_vWeight[43] =
299 : {
300 : 1./6. * -0.12300113195183949504351910658577,
301 : 1./6. * 0.08550183493720140749063844921523,
302 : 1./6. * 0.08550183493720140749063844921523,
303 : 1./6. * 0.08550183493720140749063844921523,
304 : 1./6. * 0.08550183493720140749063844921523,
305 : 1./6. * 0.01180219987880340592537682054673,
306 : 1./6. * 0.01180219987880340592537682054673,
307 : 1./6. * 0.01180219987880340592537682054673,
308 : 1./6. * 0.01180219987880340592537682054673,
309 : 1./6. * 0.00101900465455732427902646740022,
310 : 1./6. * 0.00101900465455732427902646740022,
311 : 1./6. * 0.00101900465455732427902646740022,
312 : 1./6. * 0.00101900465455732427902646740022,
313 : 1./6. * 0.02747810294680369080446108677784,
314 : 1./6. * 0.02747810294680369080446108677784,
315 : 1./6. * 0.02747810294680369080446108677784,
316 : 1./6. * 0.02747810294680369080446108677784,
317 : 1./6. * 0.02747810294680369080446108677784,
318 : 1./6. * 0.02747810294680369080446108677784,
319 : 1./6. * 0.03422691485209151104081535176698,
320 : 1./6. * 0.03422691485209151104081535176698,
321 : 1./6. * 0.03422691485209151104081535176698,
322 : 1./6. * 0.03422691485209151104081535176698,
323 : 1./6. * 0.03422691485209151104081535176698,
324 : 1./6. * 0.03422691485209151104081535176698,
325 : 1./6. * 0.03422691485209151104081535176698,
326 : 1./6. * 0.03422691485209151104081535176698,
327 : 1./6. * 0.03422691485209151104081535176698,
328 : 1./6. * 0.03422691485209151104081535176698,
329 : 1./6. * 0.03422691485209151104081535176698,
330 : 1./6. * 0.03422691485209151104081535176698,
331 : 1./6. * 0.01284311484697255557890011800552,
332 : 1./6. * 0.01284311484697255557890011800552,
333 : 1./6. * 0.01284311484697255557890011800552,
334 : 1./6. * 0.01284311484697255557890011800552,
335 : 1./6. * 0.01284311484697255557890011800552,
336 : 1./6. * 0.01284311484697255557890011800552,
337 : 1./6. * 0.01284311484697255557890011800552,
338 : 1./6. * 0.01284311484697255557890011800552,
339 : 1./6. * 0.01284311484697255557890011800552,
340 : 1./6. * 0.01284311484697255557890011800552,
341 : 1./6. * 0.01284311484697255557890011800552,
342 : 1./6. * 0.01284311484697255557890011800552
343 : };
344 :
345 : template <>
346 : MathVector<3> GaussQuadBase<GaussQuadrature<ReferenceTetrahedron, 8>, 3, 8, 43>::m_vPoint[43] =
347 : {
348 : MathVector<3>(0.25000000000000000000000000000000, 0.25000000000000000000000000000000, 0.25000000000000000000000000000000),
349 : MathVector<3>(0.20682993161067320408398090002496, 0.20682993161067320408398090002496, 0.20682993161067320408398090002496),
350 : MathVector<3>(0.37951020516798038774805729992512, 0.20682993161067320408398090002496, 0.20682993161067320408398090002496),
351 : MathVector<3>(0.20682993161067320408398090002496, 0.37951020516798038774805729992512, 0.20682993161067320408398090002496),
352 : MathVector<3>(0.20682993161067320408398090002496, 0.20682993161067320408398090002496, 0.37951020516798038774805729992512),
353 : MathVector<3>(0.08210358831054672309060580787142, 0.08210358831054672309060580787142, 0.08210358831054672309060580787142),
354 : MathVector<3>(0.75368923506835983072818257638574, 0.08210358831054672309060580787142, 0.08210358831054672309060580787142),
355 : MathVector<3>(0.08210358831054672309060580787142, 0.75368923506835983072818257638574, 0.08210358831054672309060580787142),
356 : MathVector<3>(0.08210358831054672309060580787142, 0.08210358831054672309060580787142, 0.75368923506835983072818257638574),
357 : MathVector<3>(0.00578195050519799725317663886414, 0.00578195050519799725317663886414, 0.00578195050519799725317663886414),
358 : MathVector<3>(0.98265414848440600824047008340757, 0.00578195050519799725317663886414, 0.00578195050519799725317663886414),
359 : MathVector<3>(0.00578195050519799725317663886414, 0.98265414848440600824047008340757, 0.00578195050519799725317663886414),
360 : MathVector<3>(0.00578195050519799725317663886414, 0.00578195050519799725317663886414, 0.98265414848440600824047008340757),
361 : MathVector<3>(0.05053274001889422442562452855791, 0.05053274001889422442562452855791, 0.44946725998110577557437547144209),
362 : MathVector<3>(0.05053274001889422442562452855791, 0.44946725998110577557437547144209, 0.05053274001889422442562452855791),
363 : MathVector<3>(0.44946725998110577557437547144209, 0.05053274001889422442562452855791, 0.05053274001889422442562452855791),
364 : MathVector<3>(0.05053274001889422442562452855791, 0.44946725998110577557437547144209, 0.44946725998110577557437547144209),
365 : MathVector<3>(0.44946725998110577557437547144209, 0.05053274001889422442562452855791, 0.44946725998110577557437547144209),
366 : MathVector<3>(0.44946725998110577557437547144209, 0.44946725998110577557437547144209, 0.05053274001889422442562452855791),
367 : MathVector<3>(0.22906653611681113960040885455475, 0.22906653611681113960040885455475, 0.03563958278853404371691739695061),
368 : MathVector<3>(0.22906653611681113960040885455475, 0.03563958278853404371691739695061, 0.22906653611681113960040885455475),
369 : MathVector<3>(0.03563958278853404371691739695061, 0.22906653611681113960040885455475, 0.22906653611681113960040885455475),
370 : MathVector<3>(0.22906653611681113960040885455475, 0.22906653611681113960040885455475, 0.50622734497784367708226489393988),
371 : MathVector<3>(0.22906653611681113960040885455475, 0.50622734497784367708226489393988, 0.22906653611681113960040885455475),
372 : MathVector<3>(0.50622734497784367708226489393988, 0.22906653611681113960040885455475, 0.22906653611681113960040885455475),
373 : MathVector<3>(0.22906653611681113960040885455475, 0.03563958278853404371691739695061, 0.50622734497784367708226489393988),
374 : MathVector<3>(0.22906653611681113960040885455475, 0.50622734497784367708226489393988, 0.03563958278853404371691739695061),
375 : MathVector<3>(0.50622734497784367708226489393988, 0.22906653611681113960040885455475, 0.03563958278853404371691739695061),
376 : MathVector<3>(0.03563958278853404371691739695061, 0.22906653611681113960040885455475, 0.50622734497784367708226489393988),
377 : MathVector<3>(0.03563958278853404371691739695061, 0.50622734497784367708226489393988, 0.22906653611681113960040885455475),
378 : MathVector<3>(0.50622734497784367708226489393988, 0.03563958278853404371691739695061, 0.22906653611681113960040885455475),
379 : MathVector<3>(0.03660774955319742367877385463271, 0.03660774955319742367877385463271, 0.19048604193463345569943328531510),
380 : MathVector<3>(0.03660774955319742367877385463271, 0.19048604193463345569943328531510, 0.03660774955319742367877385463271),
381 : MathVector<3>(0.19048604193463345569943328531510, 0.03660774955319742367877385463271, 0.03660774955319742367877385463271),
382 : MathVector<3>(0.03660774955319742367877385463271, 0.03660774955319742367877385463271, 0.73629845895897169694301900541948),
383 : MathVector<3>(0.03660774955319742367877385463271, 0.73629845895897169694301900541948, 0.03660774955319742367877385463271),
384 : MathVector<3>(0.73629845895897169694301900541948, 0.03660774955319742367877385463271, 0.03660774955319742367877385463271),
385 : MathVector<3>(0.03660774955319742367877385463271, 0.19048604193463345569943328531510, 0.73629845895897169694301900541948),
386 : MathVector<3>(0.03660774955319742367877385463271, 0.73629845895897169694301900541948, 0.19048604193463345569943328531510),
387 : MathVector<3>(0.73629845895897169694301900541948, 0.03660774955319742367877385463271, 0.19048604193463345569943328531510),
388 : MathVector<3>(0.19048604193463345569943328531510, 0.03660774955319742367877385463271, 0.73629845895897169694301900541948),
389 : MathVector<3>(0.19048604193463345569943328531510, 0.73629845895897169694301900541948, 0.03660774955319742367877385463271),
390 : MathVector<3>(0.73629845895897169694301900541948, 0.19048604193463345569943328531510, 0.03660774955319742367877385463271)
391 : };
392 :
393 :
394 :
395 :
396 : template <>
397 0 : FlexGaussQuadrature<ReferenceTetrahedron>::FlexGaussQuadrature(int order)
398 : {
399 0 : switch(order)
400 : {
401 : case 0:
402 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 0>::order();
403 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 0>::size();
404 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 0>::points();
405 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 0>::weights();
406 0 : break;
407 :
408 : case 1:
409 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 1>::order();
410 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 1>::size();
411 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 1>::points();
412 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 1>::weights();
413 0 : break;
414 :
415 : case 2:
416 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 2>::order();
417 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 2>::size();
418 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 2>::points();
419 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 2>::weights();
420 0 : break;
421 :
422 : case 3:
423 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 3>::order();
424 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 3>::size();
425 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 3>::points();
426 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 3>::weights();
427 0 : break;
428 :
429 : case 4:
430 : case 5:
431 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 5>::order();
432 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 5>::size();
433 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 5>::points();
434 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 5>::weights();
435 0 : break;
436 :
437 : case 6:
438 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 6>::order();
439 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 6>::size();
440 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 6>::points();
441 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 6>::weights();
442 0 : break;
443 :
444 : case 7:
445 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 7>::order();
446 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 7>::size();
447 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 7>::points();
448 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 7>::weights();
449 0 : break;
450 :
451 : case 8:
452 0 : m_order = GaussQuadrature<ReferenceTetrahedron, 8>::order();
453 0 : m_numPoints = GaussQuadrature<ReferenceTetrahedron, 8>::size();
454 0 : m_pvPoint = GaussQuadrature<ReferenceTetrahedron, 8>::points();
455 0 : m_pvWeight = GaussQuadrature<ReferenceTetrahedron, 8>::weights();
456 0 : break;
457 :
458 0 : default: UG_THROW("Order "<<order<<" not available for GaussQuadrature of tetrahedron.");
459 : }
460 0 : }
461 : }; // namespace ug
462 :
|