Nektar++
NodalTriFeketeData.h
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // File: NodalTriFeketeData.h
4 //
5 // For more information, please see: http://www.nektar.info
6 //
7 // The MIT License
8 //
9 // Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10 // Department of Aeronautics, Imperial College London (UK), and Scientific
11 // Computing and Imaging Institute, University of Utah (USA).
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining a
14 // copy of this software and associated documentation files (the "Software"),
15 // to deal in the Software without restriction, including without limitation
16 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
17 // and/or sell copies of the Software, and to permit persons to whom the
18 // Software is furnished to do so, subject to the following conditions:
19 //
20 // The above copyright notice and this permission notice shall be included
21 // in all copies or substantial portions of the Software.
22 //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 // DEALINGS IN THE SOFTWARE.
30 //
31 // Description:
32 //
33 ///////////////////////////////////////////////////////////////////////////////
34 
35 namespace Nektar
36 {
37 namespace LibUtilities
38 {
39 static const unsigned int perm3A_2d[3][3] = {
40  {0, 1, 2}, {2, 0, 1}, {0, 2, 1}}; // Works for aab
41 static const unsigned int perm3B_2d[3][3] = {
42  {0, 1, 2}, {1, 0, 2}, {1, 2, 0}}; // Works for abb
43 static const unsigned int perm3C_2d[3][3] = {
44  {0, 1, 2}, {2, 0, 1}, {1, 2, 0}}; // Works for aab and abb
45 static const unsigned int perm6_2d[6][3] = {
46  {0, 1, 2}, {1, 0, 2}, {2, 0, 1},
47  {2, 1, 0}, {0, 2, 1}, {1, 2, 0}}; // Works for abc
48 const unsigned int NodalTriFeketeAvailable = 16;
49 static const unsigned int NodalTriFeketeNPTS[NodalTriFeketeAvailable] = {
50  1, 2, 3, 4, 5, 7, 8, 10, 12, 14, 16, 19, 21, 24, 27, 30};
51 static const NekDouble NodalTriFeketeData[][6] = {
52  // %%% n_1 n_3 n_6 l_1 l_2 l_3
53  // 1 1 %%% Order / Number of Points
54  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
55  // 2 2 %%% Order / Number of Points
56  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
57  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
58  // 3 3 %%% Order / Number of Points
59  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
60  {0, 0, 1, 0.7236067977, 0.2763932023, 0.0000000000},
61  {1, 0, 0, 0.3333333333, 0.3333333333, 0.3333333333},
62  // 4 4 %%% Order / Number of Points
63  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
64  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
65  {0, 0, 1, 0.8273268354, 0.1726731646, 0.0000000000},
66  {0, 2, 0, 0.5669152707, 0.2165423647, 0.2165423647},
67  // 5 5 %%% Order / Number of Points
68  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
69  {0, 0, 1, 0.8825276620, 0.1174723380, 0.0000000000},
70  {0, 0, 1, 0.6426157582, 0.3573842418, 0.0000000000},
71  {0, 2, 0, 0.7039610574, 0.1480194713, 0.1480194713},
72  {0, 1, 0, 0.4208255393, 0.4208255393, 0.1583489214},
73  // 6 7 %%% Order / Number of Points
74  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
75  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
76  {0, 0, 1, 0.9151145777, 0.0848854223, 0.0000000000},
77  {0, 0, 1, 0.7344348598, 0.2655651402, 0.0000000000},
78  {1, 0, 0, 0.3333333333, 0.3333333333, 0.3333333333},
79  {0, 2, 0, 0.7873290632, 0.1063354684, 0.1063354684},
80  {0, 0, 1, 0.5665492870, 0.3162697959, 0.1171809171},
81  // 7 8 %%% Order / Number of Points
82  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
83  {0, 0, 1, 0.9358700743, 0.0641299257, 0.0000000000},
84  {0, 0, 1, 0.7958500908, 0.2041499092, 0.0000000000},
85  {0, 0, 1, 0.6046496090, 0.3953503910, 0.0000000000},
86  {0, 2, 0, 0.8408229862, 0.0795885069, 0.079588506},
87  {0, 2, 0, 0.4735817901, 0.2632091050, 0.2632091050},
88  {0, 1, 0, 0.4539853441, 0.4539853441, 0.0920293119},
89  {0, 0, 1, 0.6676923094, 0.2433646431, 0.0889430475},
90  // 8 10 %%% Order / Number of Points
91  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
92  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
93  {0, 0, 1, 0.9498789977, 0.0501210023, 0.0000000000},
94  {0, 0, 1, 0.8385931398, 0.1614068602, 0.0000000000},
95  {0, 0, 1, 0.6815587319, 0.3184412681, 0.0000000000},
96  {0, 2, 0, 0.8444999609, 0.0777500195, 0.0777500195},
97  {0, 1, 0, 0.4683305115, 0.4683305115, 0.0633389771},
98  {0, 1, 0, 0.3853668203, 0.3853668204, 0.2292663593},
99  {0, 0, 1, 0.7172965409, 0.2335581033, 0.0491453558},
100  {0, 0, 1, 0.5853134902, 0.2667701010, 0.1479164088},
101  // 9 12 %%% Order / Number of Points
102  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
103  {0, 0, 1, 0.9597669930, 0.0402330070, 0.0000000000},
104  {0, 0, 1, 0.8693870908, 0.1306129092, 0.0000000000},
105  {0, 0, 1, 0.7389628040, 0.2610371960, 0.0000000000},
106  {0, 0, 1, 0.5826397065, 0.4173602935, 0.0000000000},
107  {1, 0, 0, 0.3333333333, 0.3333333333, 0.3333333333},
108  {0, 2, 0, 0.9021308608, 0.0489345696, 0.0489345696},
109  {0, 2, 0, 0.6591363598, 0.1704318201, 0.1704318201},
110  {0, 1, 0, 0.4699587644, 0.4699587644, 0.0600824712},
111  {0, 0, 1, 0.7904339977, 0.1543901944, 0.0551758079},
112  {0, 0, 1, 0.6401193011, 0.3010242110, 0.0588564879},
113  {0, 0, 1, 0.4963227512, 0.3252434900, 0.1784337588},
114  // 10 14 %%% Order / Number of Points
115  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
116  {0, 2, 0, 0.5000000000, 0.5000000000, 0.0000000000},
117  {0, 0, 1, 0.9670007152, 0.0329992848, 0.0000000000},
118  {0, 0, 1, 0.8922417368, 0.1077582632, 0.0000000000},
119  {0, 0, 1, 0.7826176635, 0.2173823365, 0.0000000000},
120  {0, 0, 1, 0.6478790678, 0.3521209322, 0.0000000000},
121  {0, 2, 0, 0.9145236987, 0.0427381507, 0.0427381507},
122  {0, 2, 0, 0.5331019411, 0.2334490294, 0.2334490294},
123  {0, 1, 0, 0.4814795342, 0.4814795342, 0.0370409316},
124  {0, 1, 0, 0.3800851251, 0.3800851251, 0.2398297498},
125  {0, 0, 1, 0.8150971991, 0.1351329831, 0.0497698178},
126  {0, 0, 1, 0.6778669104, 0.2844305545, 0.0377025351},
127  {0, 0, 1, 0.6759450113, 0.2079572403, 0.1160977485},
128  {0, 0, 1, 0.5222323306, 0.3633472465, 0.1144204229},
129  // 11 16 %%% Order / Number of Points
130  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
131  {0, 0, 1, 0.9724496361, 0.0275503639, 0.0000000000},
132  {0, 0, 1, 0.9096396608, 0.0903603392, 0.0000000000},
133  {0, 0, 1, 0.8164380765, 0.1835619235, 0.0000000000},
134  {0, 0, 1, 0.6997654705, 0.3002345295, 0.0000000000},
135  {0, 0, 1, 0.5682764664, 0.4317235336, 0.0000000000},
136  {0, 2, 0, 0.9201760661, 0.0399119670, 0.0399119670},
137  {0, 2, 0, 0.8097416696, 0.0951291652, 0.0951291652},
138  {0, 2, 0, 0.4216558161, 0.2891720920, 0.2891720920},
139  {0, 1, 0, 0.4200100315, 0.4200100315, 0.1599799371},
140  {0, 1, 0, 0.4832770031, 0.4832770031, 0.0334459938},
141  {0, 0, 1, 0.8236881237, 0.1452587341, 0.0310531421},
142  {0, 0, 1, 0.7030268141, 0.2021386640, 0.0948345219},
143  {0, 0, 1, 0.6642752329, 0.3066778199, 0.0290469472},
144  {0, 0, 1, 0.5605605456, 0.3510551601, 0.0883842943},
145  {0, 0, 1, 0.5584153138, 0.2661283688, 0.1754563174},
146  // 12 19 %%% Order / Number of Points
147  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
148  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
149  {0, 0, 1, 0.9766549233, 0.0233450767, 0.0000000000},
150  {0, 0, 1, 0.9231737823, 0.0768262177, 0.0000000000},
151  {0, 0, 1, 0.8430942345, 0.1569057655, 0.0000000000},
152  {0, 0, 1, 0.7414549105, 0.2585450895, 0.0000000000},
153  {0, 0, 1, 0.6246434651, 0.3753565349, 0.0000000000},
154  {1, 0, 0, 0.3333333333, 0.3333333333, 0.3333333333},
155  {0, 1, 0, 0.4005558261, 0.4005558262, 0.1988883477},
156  {0, 2, 0, 0.4763189598, 0.2618405201, 0.2618405201},
157  {0, 2, 0, 0.8385226450, 0.0807386775, 0.0807386775},
158  {0, 2, 0, 0.9326048528, 0.0336975736, 0.0336975736},
159  {0, 0, 1, 0.8530528428, 0.1206826354, 0.0262645218},
160  {0, 0, 1, 0.7260597695, 0.2489279690, 0.0250122615},
161  {0, 0, 1, 0.6376427136, 0.2874821712, 0.0748751152},
162  {0, 0, 1, 0.5625832895, 0.4071849276, 0.0302317829},
163  {0, 0, 1, 0.7415828366, 0.1697134458, 0.0887037176},
164  {0, 0, 1, 0.5954847541, 0.2454317980, 0.1590834479},
165  {0, 0, 1, 0.5072511952, 0.3837518758, 0.1089969290},
166  // 13 21 %%% Order / Number of Points
167  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
168  {0, 0, 1, 0.9799675226, 0.0200324774, 0.0000000000},
169  {0, 0, 1, 0.9339005269, 0.0660994731, 0.0000000000},
170  {0, 0, 1, 0.8644342995, 0.1355657005, 0.0000000000},
171  {0, 0, 1, 0.7753197015, 0.2246802985, 0.0000000000},
172  {0, 0, 1, 0.6713620067, 0.3286379933, 0.0000000000},
173  {0, 0, 1, 0.5581659344, 0.4418340656, 0.0000000000},
174  {0, 2, 0, 0.8520024555, 0.0739987723, 0.0739987723},
175  {0, 2, 0, 0.7432264994, 0.1283867503, 0.1283867503},
176  {0, 2, 0, 0.5395738831, 0.2302130584, 0.2302130584},
177  {0, 1, 0, 0.4644144021, 0.4644144021, 0.0711711958},
178  {0, 2, 0, 0.4114075139, 0.2942962431, 0.2942962431},
179  {0, 1, 0, 0.3929739081, 0.3929739081, 0.2140521839},
180  {0, 0, 1, 0.9198937820, 0.0580254800, 0.0220807380},
181  {0, 0, 1, 0.8269495692, 0.1490288338, 0.0240215969},
182  {0, 0, 1, 0.7425432195, 0.1884717952, 0.0689849852},
183  {0, 0, 1, 0.7075668818, 0.2676625888, 0.0247705295},
184  {0, 0, 1, 0.6366434033, 0.2298513909, 0.1335052058},
185  {0, 0, 1, 0.5976134593, 0.3320684992, 0.0703180415},
186  {0, 0, 1, 0.5665760284, 0.4108329044, 0.0225910673},
187  {0, 0, 1, 0.5028853010, 0.3560657231, 0.1410489759},
188  // 14 24 %%% Order / Number of Points
189  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
190  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
191  {0, 0, 1, 0.9826229633, 0.0173770367, 0.0000000000},
192  {0, 0, 1, 0.9425410221, 0.0574589779, 0.0000000000},
193  {0, 0, 1, 0.8817598450, 0.1182401550, 0.0000000000},
194  {0, 0, 1, 0.8031266027, 0.1968733973, 0.0000000000},
195  {0, 0, 1, 0.7103190274, 0.2896809726, 0.0000000000},
196  {0, 0, 1, 0.6076769777, 0.3923230223, 0.0000000000},
197  {0, 2, 0, 0.9545282960, 0.0227358520, 0.0227358520},
198  {0, 2, 0, 0.7279988378, 0.1360005811, 0.1360005811},
199  {0, 2, 0, 0.6146143335, 0.1926928332, 0.1926928332},
200  {0, 1, 0, 0.4704320969, 0.4704320969, 0.0591358062},
201  {0, 2, 0, 0.4062455674, 0.2968772163, 0.2968772163},
202  {0, 1, 0, 0.3997167456, 0.3997167456, 0.2005665089},
203  {0, 0, 1, 0.8994312852, 0.0727092891, 0.0278594257},
204  {0, 0, 1, 0.8235331194, 0.1556596225, 0.0208072581},
205  {0, 0, 1, 0.8159593721, 0.1175577052, 0.0664829227},
206  {0, 0, 1, 0.7277004755, 0.2121104191, 0.0601891053},
207  {0, 0, 1, 0.7017966273, 0.2792485214, 0.0189548513},
208  {0, 0, 1, 0.6286342673, 0.2519081185, 0.1194576142},
209  {0, 0, 1, 0.6152236423, 0.3254238863, 0.0593524714},
210  {0, 0, 1, 0.5599300851, 0.4197058520, 0.0203640629},
211  {0, 0, 1, 0.5124435882, 0.2931807429, 0.1943756690},
212  {0, 0, 1, 0.5038948451, 0.3812965190, 0.1148086359},
213  // 15 27 %%% Order / Number of Points
214  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
215  {0, 0, 1, 0.9847840231, 0.0152159769, 0.0000000000},
216  {0, 0, 1, 0.9496002665, 0.0503997335, 0.0000000000},
217  {0, 0, 1, 0.8960041459, 0.1039958541, 0.0000000000},
218  {0, 0, 1, 0.8261943514, 0.1738056486, 0.0000000000},
219  {0, 0, 1, 0.7430297109, 0.2569702891, 0.0000000000},
220  {0, 0, 1, 0.6499152345, 0.3500847655, 0.0000000000},
221  {0, 0, 1, 0.5506631368, 0.4493368632, 0.0000000000},
222  {1, 0, 0, 0.3333333333, 0.3333333333, 0.3333333333},
223  {0, 2, 0, 0.9561008318, 0.0219495841, 0.0219495841},
224  {0, 2, 0, 0.8937652924, 0.0531173538, 0.0531173538},
225  {0, 2, 0, 0.7626684778, 0.1186657611, 0.1186657611},
226  {0, 2, 0, 0.5478917292, 0.2260541354, 0.2260541354},
227  {0, 1, 0, 0.4761452138, 0.4761452137, 0.0477095725},
228  {0, 1, 0, 0.4206960976, 0.4206960976, 0.1586078048},
229  {0, 0, 1, 0.9011419064, 0.0816639421, 0.0171941515},
230  {0, 0, 1, 0.8302595715, 0.1162464503, 0.0534939782},
231  {0, 0, 1, 0.8059790318, 0.1759511193, 0.0180698489},
232  {0, 0, 1, 0.7424917767, 0.1978887556, 0.0596194677},
233  {0, 0, 1, 0.6958779924, 0.2844332752, 0.0196887324},
234  {0, 0, 1, 0.6684861226, 0.1975591066, 0.1339547708},
235  {0, 0, 1, 0.6374939126, 0.2749910734, 0.0875150140},
236  {0, 0, 1, 0.6000365168, 0.3524012205, 0.0475622627},
237  {0, 0, 1, 0.5666808380, 0.4176001732, 0.0157189888},
238  {0, 0, 1, 0.5400834895, 0.3013819154, 0.1585345951},
239  {0, 0, 1, 0.5173966708, 0.3853507643, 0.0972525649},
240  {0, 0, 1, 0.4350225702, 0.3270403780, 0.2379370518},
241  // 16 30 %%% Order / Number of Points
242  {0, 2, 0, 1.0000000000, 0.0000000000, 0.0000000000},
243  {0, 1, 0, 0.5000000000, 0.5000000000, 0.0000000000},
244  {0, 0, 1, 0.9865660883, 0.0134339117, 0.0000000000},
245  {0, 0, 1, 0.9554399980, 0.0445600020, 0.0000000000},
246  {0, 0, 1, 0.9078481256, 0.0921518744, 0.0000000000},
247  {0, 0, 1, 0.8455144903, 0.1544855097, 0.0000000000},
248  {0, 0, 1, 0.7706926997, 0.2293073003, 0.0000000000},
249  {0, 0, 1, 0.6860872168, 0.3139127832, 0.0000000000},
250  {0, 0, 1, 0.5947559868, 0.4052440132, 0.0000000000},
251  {0, 2, 0, 0.9082733123, 0.0458633439, 0.0458633439},
252  {0, 2, 0, 0.7814558654, 0.1092720673, 0.1092720673},
253  {0, 2, 0, 0.5061583246, 0.2469208377, 0.2469208377},
254  {0, 1, 0, 0.4752124798, 0.4752124798, 0.0495750405},
255  {0, 1, 0, 0.4264731058, 0.4264731058, 0.1470537884},
256  {0, 2, 0, 0.3970899287, 0.3014550356, 0.3014550356},
257  {0, 1, 0, 0.3866478326, 0.3866478326, 0.2267043349},
258  {0, 0, 1, 0.9485194031, 0.0373109962, 0.0141696007},
259  {0, 0, 1, 0.8743842850, 0.1097814309, 0.0158342841},
260  {0, 0, 1, 0.8512484463, 0.0959614844, 0.0527900693},
261  {0, 0, 1, 0.7826094027, 0.1639276476, 0.0534629497},
262  {0, 0, 1, 0.7790251588, 0.2050142286, 0.0159606126},
263  {0, 0, 1, 0.7045940167, 0.2476638915, 0.0477420917},
264  {0, 0, 1, 0.7008539071, 0.1815134068, 0.1176326861},
265  {0, 0, 1, 0.6644617368, 0.3197919643, 0.0157462988},
266  {0, 0, 1, 0.6229177644, 0.2778907781, 0.0991914575},
267  {0, 0, 1, 0.6010014909, 0.3493750783, 0.0496234308},
268  {0, 0, 1, 0.6009076040, 0.2332142592, 0.1658781368},
269  {0, 0, 1, 0.5481915845, 0.4347608890, 0.0170475265},
270  {0, 0, 1, 0.5160516828, 0.3894384191, 0.0945098981},
271  {0, 0, 1, 0.5043443688, 0.3260983223, 0.1695573088}};
272 } // namespace LibUtilities
273 } // namespace Nektar
const unsigned int NodalTriFeketeAvailable
static const unsigned int perm3A_2d[3][3]
static const unsigned int perm3C_2d[3][3]
static const NekDouble NodalTriFeketeData[][6]
static const unsigned int perm6_2d[6][3]
static const unsigned int perm3B_2d[3][3]
static const unsigned int NodalTriFeketeNPTS[NodalTriFeketeAvailable]
The above copyright notice and this permission notice shall be included.
Definition: CoupledSolver.h:2
double NekDouble