LifeV
QRKeast.cpp
Go to the documentation of this file.
1 //@HEADER
2 /*
3 *******************************************************************************
4 
5  Copyright (C) 2004, 2005, 2007 EPFL, Politecnico di Milano, INRIA
6  Copyright (C) 2010 EPFL, Politecnico di Milano, Emory University
7 
8  This file is part of LifeV.
9 
10  LifeV is free software; you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  LifeV is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with LifeV. If not, see <http://www.gnu.org/licenses/>.
22 
23 *******************************************************************************
24 */
25 //@HEADER
26 
27 /*!
28  @file
29  @brief File for the implementation of the QuadratureRule class.
30 
31  @author Samuel Quinodoz <samuel.quinodoz@epfl.ch>
32  @date 01-06-2010
33 
34  @contributor Samuel Quinodoz <samuel.quinodoz@epfl.ch>
35  @mantainer Samuel Quinodoz <samuel.quinodoz@epfl.ch>
36  */
37 
38 
39 #include <lifev/core/fem/QRKeast.hpp>
40 
41 namespace LifeV
42 {
43 
44 const Real QRKeast<1>::M_points[1][3] = { {0.25, 0.25, 0.25} };
45 const Real QRKeast<1>::M_weights[1] = { 1.0 / 6.0 };
46 
47 const Real QRKeast<4>::M_points[11][3] =
48 {
49  // [4]
50  {0.25, 0.25, 0.25},
51  // [3,1]
52  {0.0714285714285714285, 0.0714285714285714285, 0.0714285714285714285 },
53  {0.785714285714285714, 0.0714285714285714285, 0.0714285714285714285 },
54  {0.0714285714285714285, 0.785714285714285714, 0.0714285714285714285 },
55  {0.0714285714285714285, 0.0714285714285714285, 0.785714285714285714 },
56  // [2,2]
57  {0.399403576166799219, 0.100596423833200785, 0.100596423833200785 },
58  {0.100596423833200785, 0.399403576166799219, 0.100596423833200785 },
59  {0.100596423833200785, 0.100596423833200785, 0.399403576166799219 },
60  {0.100596423833200785, 0.399403576166799219, 0.399403576166799219 },
61  {0.399403576166799219, 0.100596423833200785, 0.399403576166799219 },
62  {0.399403576166799219, 0.399403576166799219, 0.100596423833200785 }
63 };
64 const Real QRKeast<4>::M_weights[11] =
65 {
66  // [4]
67  -0.0131555555555555550,
68  // [3,1]
69  0.00762222222222222222,
70  0.00762222222222222222,
71  0.00762222222222222222,
72  0.00762222222222222222,
73  // [2,2]
74  0.0248888888888888880,
75  0.0248888888888888880,
76  0.0248888888888888880,
77  0.0248888888888888880,
78  0.0248888888888888880,
79  0.0248888888888888880
80 };
81 
82 const Real QRKeast<6>::M_points[24][3] =
83 {
84  // [3,1]
85  {0.00665379170969464506, 0.00665379170969464506, 0.00665379170969464506},
86  {0.356191386222544953, 0.00665379170969464506, 0.00665379170969464506},
87  {0.00665379170969464506, 0.356191386222544953, 0.00665379170969464506},
88  {0.00665379170969464506, 0.00665379170969464506, 0.356191386222544953},
89  // [3,1]
90  {0.0406739585346113397, 0.0406739585346113397, 0.0406739585346113397},
91  {0.877978124396165982, 0.0406739585346113397, 0.0406739585346113397},
92  {0.0406739585346113397, 0.877978124396165982, 0.0406739585346113397},
93  {0.0406739585346113397, 0.0406739585346113397, 0.877978124396165982},
94  // [3,1]
95  {0.322337890142275646, 0.322337890142275646, 0.322337890142275646},
96  {0.0329863295731730594, 0.322337890142275646, 0.322337890142275646},
97  {0.322337890142275646, 0.0329863295731730594, 0.322337890142275646},
98  {0.322337890142275646, 0.322337890142275646, 0.0329863295731730594},
99  // [2,1,1]
100  {0.0636610018750175299, 0.0636610018750175299, 0.269672331458315867},
101  {0.0636610018750175299, 0.0636610018750175299, 0.603005664791649076},
102  {0.0636610018750175299, 0.269672331458315867, 0.0636610018750175299},
103  {0.0636610018750175299, 0.269672331458315867, 0.603005664791649076},
104  {0.0636610018750175299, 0.603005664791649076, 0.0636610018750175299},
105  {0.0636610018750175299, 0.603005664791649076, 0.269672331458315867},
106  {0.269672331458315867, 0.0636610018750175299, 0.0636610018750175299},
107  {0.269672331458315867, 0.0636610018750175299, 0.603005664791649076},
108  {0.269672331458315867, 0.603005664791649076, 0.0636610018750175299},
109  {0.603005664791649076, 0.0636610018750175299, 0.0636610018750175299},
110  {0.603005664791649076, 0.0636610018750175299, 0.269672331458315867},
111  {0.603005664791649076, 0.269672331458315867, 0.0636610018750175299}
112 };
113 const Real QRKeast<6>::M_weights[24] =
114 {
115  // [3,1]
116  0.00665379170969464506,
117  0.00665379170969464506,
118  0.00665379170969464506,
119  0.00665379170969464506,
120  // [3,1]
121  0.00167953517588677620,
122  0.00167953517588677620,
123  0.00167953517588677620,
124  0.00167953517588677620,
125  // [3,1]
126  0.00922619692394239843,
127  0.00922619692394239843,
128  0.00922619692394239843,
129  0.00922619692394239843,
130  // [2,1,1]
131  0.00803571428571428248,
132  0.00803571428571428248,
133  0.00803571428571428248,
134  0.00803571428571428248,
135  0.00803571428571428248,
136  0.00803571428571428248,
137  0.00803571428571428248,
138  0.00803571428571428248,
139  0.00803571428571428248,
140  0.00803571428571428248,
141  0.00803571428571428248,
142  0.00803571428571428248
143 };
144 
145 
146 const Real QRKeast<7>::M_points[31][3] =
147 {
148  // [2]
149  {0.5, 0.0, 0.0},
150  {0.0, 0.5, 0.0},
151  {0.0, 0.0, 0.5},
152  {0.5, 0.5, 0.0},
153  {0.5, 0.0, 0.5},
154  {0.0, 0.5, 0.5},
155  // [4]
156  {0.25, 0.25, 0.25},
157  // [3,1]
158  {0.0782131923303186549, 0.0782131923303186549, 0.0782131923303186549},
159  {0.765360423009044044, 0.0782131923303186549, 0.0782131923303186549},
160  {0.0782131923303186549, 0.765360423009044044, 0.0782131923303186549},
161  {0.0782131923303186549, 0.0782131923303186549, 0.765360423009044044},
162  // [3,1]
163  {0.121843216663904411, 0.121843216663904411, 0.121843216663904411},
164  {0.634470350008286765, 0.121843216663904411, 0.121843216663904411},
165  {0.121843216663904411, 0.634470350008286765, 0.121843216663904411},
166  {0.121843216663904411, 0.121843216663904411, 0.634470350008286765},
167  // [3,1]
168  {0.332539164446420554, 0.332539164446420554, 0.332539164446420554},
169  {0.00238250666073834549, 0.332539164446420554, 0.332539164446420554},
170  {0.332539164446420554, 0.00238250666073834549, 0.332539164446420554},
171  {0.332539164446420554, 0.332539164446420554, 0.00238250666073834549},
172  // [2,1,1]
173  {0.1, 0.1, 0.2},
174  {0.1, 0.1, 0.6},
175  {0.1, 0.2, 0.1},
176  {0.1, 0.2, 0.6},
177  {0.1, 0.6, 0.1},
178  {0.1, 0.6, 0.2},
179  {0.2, 0.1, 0.1},
180  {0.2, 0.1, 0.6},
181  {0.2, 0.6, 0.1},
182  {0.6, 0.1, 0.1},
183  {0.6, 0.1, 0.2},
184  {0.6, 0.2, 0.1}
185 };
186 
187 const Real QRKeast<7>::M_weights[31] =
188 {
189  // [2]
190  0.000970017636684296702,
191  0.000970017636684296702,
192  0.000970017636684296702,
193  0.000970017636684296702,
194  0.000970017636684296702,
195  0.000970017636684296702,
196  // [4]
197  0.0182642234661087939,
198  // [3,1]
199  0.0105999415244141609,
200  0.0105999415244141609,
201  0.0105999415244141609,
202  0.0105999415244141609,
203  // [3,1]
204  -0.0625177401143299494,
205  -0.0625177401143299494,
206  -0.0625177401143299494,
207  -0.0625177401143299494,
208  // [3,1]
209  0.00489142526307353653,
210  0.00489142526307353653,
211  0.00489142526307353653,
212  0.00489142526307353653,
213  // [2,1,1]
214  0.0275573192239850917,
215  0.0275573192239850917,
216  0.0275573192239850917,
217  0.0275573192239850917,
218  0.0275573192239850917,
219  0.0275573192239850917,
220  0.0275573192239850917,
221  0.0275573192239850917,
222  0.0275573192239850917,
223  0.0275573192239850917,
224  0.0275573192239850917,
225  0.0275573192239850917
226 };
227 
228 
229 }
static const Real M_points[24][3]
Definition: QRKeast.hpp:220
static const Real M_points[11][3]
Definition: QRKeast.hpp:171
static const Real M_points[1][3]
Definition: QRKeast.hpp:122
void updateInverseJacobian(const UInt &iQuadPt)
static const Real M_weights[1]
Definition: QRKeast.hpp:123
static const Real M_weights[31]
Definition: QRKeast.hpp:271
static const Real M_points[31][3]
Definition: QRKeast.hpp:270
static const Real M_weights[11]
Definition: QRKeast.hpp:172
double Real
Generic real data.
Definition: LifeV.hpp:175
static const Real M_weights[24]
Definition: QRKeast.hpp:221