9#include <kernel/cubature/symmetric_simplex_driver.hpp>
10#include <kernel/util/meta_math.hpp>
29 template<
typename Shape_>
39 static constexpr bool variadic =
true;
40 static constexpr int min_points = 2;
41 static constexpr int max_points = 6;
49 static int count(
int param)
74 static void set(Rule<Shape::Simplex<3>, Weight_, Coord_, Point_>& rule,
75 int k,
double w,
double x,
double y,
double z)
77 rule.get_weight(k) = Weight_(w);
78 rule.get_coord(k, 0) = Coord_(x);
79 rule.get_coord(k, 1) = Coord_(y);
80 rule.get_coord(k, 2) = Coord_(z);
98 set(rule, 0, 0.0416666666666667, 0.1381966011250110, 0.1381966011250110, 0.1381966011250110);
99 set(rule, 1, 0.0416666666666667, 0.5854101966249680, 0.1381966011250110, 0.1381966011250110);
100 set(rule, 2, 0.0416666666666667, 0.1381966011250110, 0.5854101966249680, 0.1381966011250110);
101 set(rule, 3, 0.0416666666666667, 0.1381966011250110, 0.1381966011250110, 0.5854101966249680);
105 set(rule, 0, 0.0079388558072015, 0.0738349017262234, 0.0738349017262234, 0.0738349017262234);
106 set(rule, 1, 0.0079388558072015, 0.7784952948213300, 0.0738349017262234, 0.0738349017262234);
107 set(rule, 2, 0.0079388558072015, 0.0738349017262234, 0.7784952948213300, 0.0738349017262234);
108 set(rule, 3, 0.0079388558072015, 0.0738349017262234, 0.0738349017262234, 0.7784952948213300);
109 set(rule, 4, 0.0224852072396435, 0.4062443438840510, 0.0937556561159491, 0.0937556561159491);
110 set(rule, 5, 0.0224852072396435, 0.0937556561159491, 0.4062443438840510, 0.0937556561159491);
111 set(rule, 6, 0.0224852072396435, 0.0937556561159491, 0.0937556561159491, 0.4062443438840510);
112 set(rule, 7, 0.0224852072396435, 0.4062443438840510, 0.4062443438840510, 0.0937556561159491);
113 set(rule, 8, 0.0224852072396435, 0.4062443438840510, 0.0937556561159491, 0.4062443438840510);
114 set(rule, 9, 0.0224852072396435, 0.0937556561159491, 0.4062443438840510, 0.4062443438840510);
118 set(rule, 0, 0.0011778457990783, 0.0323525947272439, 0.0323525947272439, 0.0323525947272439);
119 set(rule, 1, 0.0011778457990783, 0.9029422158182679, 0.0323525947272439, 0.0323525947272439);
120 set(rule, 2, 0.0011778457990783, 0.0323525947272439, 0.9029422158182679, 0.0323525947272439);
121 set(rule, 3, 0.0011778457990783, 0.0323525947272439, 0.0323525947272439, 0.9029422158182679);
122 set(rule, 4, 0.0078331114953146, 0.6165965330619370, 0.0603604415251421, 0.0603604415251421);
123 set(rule, 5, 0.0078331114953146, 0.2626825838877790, 0.0603604415251421, 0.0603604415251421);
124 set(rule, 6, 0.0078331114953146, 0.0603604415251421, 0.6165965330619370, 0.0603604415251421);
125 set(rule, 7, 0.0078331114953146, 0.0603604415251421, 0.2626825838877790, 0.0603604415251421);
126 set(rule, 8, 0.0078331114953146, 0.0603604415251421, 0.0603604415251421, 0.6165965330619370);
127 set(rule, 9, 0.0078331114953146, 0.0603604415251421, 0.0603604415251421, 0.2626825838877790);
128 set(rule, 10, 0.0078331114953146, 0.2626825838877790, 0.6165965330619370, 0.0603604415251421);
129 set(rule, 11, 0.0078331114953146, 0.6165965330619370, 0.2626825838877790, 0.0603604415251421);
130 set(rule, 12, 0.0078331114953146, 0.2626825838877790, 0.0603604415251421, 0.6165965330619370);
131 set(rule, 13, 0.0078331114953146, 0.6165965330619370, 0.0603604415251421, 0.2626825838877790);
132 set(rule, 14, 0.0078331114953146, 0.0603604415251421, 0.2626825838877790, 0.6165965330619370);
133 set(rule, 15, 0.0078331114953146, 0.0603604415251421, 0.6165965330619370, 0.2626825838877790);
134 set(rule, 16, 0.0169894863816447, 0.3097693042728620, 0.3097693042728620, 0.0706920871814129);
135 set(rule, 17, 0.0169894863816447, 0.3097693042728620, 0.0706920871814129, 0.3097693042728620);
136 set(rule, 18, 0.0169894863816447, 0.0706920871814129, 0.3097693042728620, 0.3097693042728620);
137 set(rule, 19, 0.0169894863816447, 0.3097693042728620, 0.3097693042728620, 0.3097693042728620);
141 set(rule, 0, 0.0003650077327565, 0.0267367755543735, 0.0267367755543735, 0.0267367755543735);
142 set(rule, 1, 0.0003650077327565, 0.9197896733368800, 0.0267367755543735, 0.0267367755543735);
143 set(rule, 2, 0.0003650077327565, 0.0267367755543735, 0.9197896733368800, 0.0267367755543735);
144 set(rule, 3, 0.0003650077327565, 0.0267367755543735, 0.0267367755543735, 0.9197896733368800);
145 set(rule, 4, 0.0023899278362944, 0.7477598884818090, 0.0391022406356488, 0.0391022406356488);
146 set(rule, 5, 0.0023899278362944, 0.1740356302468940, 0.0391022406356488, 0.0391022406356488);
147 set(rule, 6, 0.0023899278362944, 0.0391022406356488, 0.7477598884818090, 0.0391022406356488);
148 set(rule, 7, 0.0023899278362944, 0.0391022406356488, 0.1740356302468940, 0.0391022406356488);
149 set(rule, 8, 0.0023899278362944, 0.0391022406356488, 0.0391022406356488, 0.7477598884818090);
150 set(rule, 9, 0.0023899278362944, 0.0391022406356488, 0.0391022406356488, 0.1740356302468940);
151 set(rule, 10, 0.0023899278362944, 0.1740356302468940, 0.7477598884818090, 0.0391022406356488);
152 set(rule, 11, 0.0023899278362944, 0.7477598884818090, 0.1740356302468940, 0.0391022406356488);
153 set(rule, 12, 0.0023899278362944, 0.1740356302468940, 0.0391022406356488, 0.7477598884818090);
154 set(rule, 13, 0.0023899278362944, 0.7477598884818090, 0.0391022406356488, 0.1740356302468940);
155 set(rule, 14, 0.0023899278362944, 0.0391022406356488, 0.1740356302468940, 0.7477598884818090);
156 set(rule, 15, 0.0023899278362944, 0.0391022406356488, 0.7477598884818090, 0.1740356302468940);
157 set(rule, 16, 0.0041717565947791, 0.4547545999844830, 0.0452454000155172, 0.0452454000155172);
158 set(rule, 17, 0.0041717565947791, 0.0452454000155172, 0.4547545999844830, 0.0452454000155172);
159 set(rule, 18, 0.0041717565947791, 0.0452454000155172, 0.0452454000155172, 0.4547545999844830);
160 set(rule, 19, 0.0041717565947791, 0.4547545999844830, 0.4547545999844830, 0.0452454000155172);
161 set(rule, 20, 0.0041717565947791, 0.4547545999844830, 0.0452454000155172, 0.4547545999844830);
162 set(rule, 21, 0.0041717565947791, 0.0452454000155172, 0.4547545999844830, 0.4547545999844830);
163 set(rule, 22, 0.0079973222176259, 0.2232010379623150, 0.2232010379623150, 0.0504792790607720);
164 set(rule, 23, 0.0079973222176259, 0.5031186450145980, 0.2232010379623150, 0.0504792790607720);
165 set(rule, 24, 0.0079973222176259, 0.2232010379623150, 0.5031186450145980, 0.0504792790607720);
166 set(rule, 25, 0.0079973222176259, 0.2232010379623150, 0.0504792790607720, 0.2232010379623150);
167 set(rule, 26, 0.0079973222176259, 0.5031186450145980, 0.0504792790607720, 0.2232010379623150);
168 set(rule, 27, 0.0079973222176259, 0.2232010379623150, 0.0504792790607720, 0.5031186450145980);
169 set(rule, 28, 0.0079973222176259, 0.0504792790607720, 0.2232010379623150, 0.2232010379623150);
170 set(rule, 29, 0.0079973222176259, 0.0504792790607720, 0.5031186450145980, 0.2232010379623150);
171 set(rule, 30, 0.0079973222176259, 0.0504792790607720, 0.2232010379623150, 0.5031186450145980);
172 set(rule, 31, 0.0079973222176259, 0.5031186450145980, 0.2232010379623150, 0.2232010379623150);
173 set(rule, 32, 0.0079973222176259, 0.2232010379623150, 0.5031186450145980, 0.2232010379623150);
174 set(rule, 33, 0.0079973222176259, 0.2232010379623150, 0.2232010379623150, 0.5031186450145980);
175 set(rule, 34, 0.0155290955199223, 0.2500000000000000, 0.2500000000000000, 0.2500000000000000);
179 set(rule, 0, 0.0001728852056023, 0.0149520651530592, 0.0149520651530592, 0.0149520651530592);
180 set(rule, 1, 0.0001728852056023, 0.9551438045408220, 0.0149520651530592, 0.0149520651530592);
181 set(rule, 2, 0.0001728852056023, 0.0149520651530592, 0.9551438045408220, 0.0149520651530592);
182 set(rule, 3, 0.0001728852056023, 0.0149520651530592, 0.0149520651530592, 0.9551438045408220);
183 set(rule, 4, 0.0016002774233247, 0.1518319491659370, 0.0340960211962615, 0.0340960211962615);
184 set(rule, 5, 0.0016002774233247, 0.7799760084415400, 0.0340960211962615, 0.0340960211962615);
185 set(rule, 6, 0.0016002774233247, 0.0340960211962615, 0.1518319491659370, 0.0340960211962615);
186 set(rule, 7, 0.0016002774233247, 0.0340960211962615, 0.7799760084415400, 0.0340960211962615);
187 set(rule, 8, 0.0016002774233247, 0.0340960211962615, 0.0340960211962615, 0.1518319491659370);
188 set(rule, 9, 0.0016002774233247, 0.0340960211962615, 0.0340960211962615, 0.7799760084415400);
189 set(rule, 10, 0.0016002774233247, 0.7799760084415400, 0.1518319491659370, 0.0340960211962615);
190 set(rule, 11, 0.0016002774233247, 0.1518319491659370, 0.7799760084415400, 0.0340960211962615);
191 set(rule, 12, 0.0016002774233247, 0.7799760084415400, 0.0340960211962615, 0.1518319491659370);
192 set(rule, 13, 0.0016002774233247, 0.1518319491659370, 0.0340960211962615, 0.7799760084415400);
193 set(rule, 14, 0.0016002774233247, 0.0340960211962615, 0.7799760084415400, 0.1518319491659370);
194 set(rule, 15, 0.0016002774233247, 0.0340960211962615, 0.1518319491659370, 0.7799760084415400);
195 set(rule, 16, 0.0027415662799705, 0.5526556431060170, 0.0462051504150017, 0.0462051504150017);
196 set(rule, 17, 0.0027415662799705, 0.3549340560639790, 0.0462051504150017, 0.0462051504150017);
197 set(rule, 18, 0.0027415662799705, 0.0462051504150017, 0.5526556431060170, 0.0462051504150017);
198 set(rule, 19, 0.0027415662799705, 0.0462051504150017, 0.3549340560639790, 0.0462051504150017);
199 set(rule, 20, 0.0027415662799705, 0.0462051504150017, 0.0462051504150017, 0.5526556431060170);
200 set(rule, 21, 0.0027415662799705, 0.0462051504150017, 0.0462051504150017, 0.3549340560639790);
201 set(rule, 22, 0.0027415662799705, 0.3549340560639790, 0.5526556431060170, 0.0462051504150017);
202 set(rule, 23, 0.0027415662799705, 0.5526556431060170, 0.3549340560639790, 0.0462051504150017);
203 set(rule, 24, 0.0027415662799705, 0.3549340560639790, 0.0462051504150017, 0.5526556431060170);
204 set(rule, 25, 0.0027415662799705, 0.5526556431060170, 0.0462051504150017, 0.3549340560639790);
205 set(rule, 26, 0.0027415662799705, 0.0462051504150017, 0.3549340560639790, 0.5526556431060170);
206 set(rule, 27, 0.0027415662799705, 0.0462051504150017, 0.5526556431060170, 0.3549340560639790);
207 set(rule, 28, 0.0025624627752218, 0.2281904610687610, 0.2281904610687610, 0.0055147549744775);
208 set(rule, 29, 0.0025624627752218, 0.5381043228880020, 0.2281904610687610, 0.0055147549744775);
209 set(rule, 30, 0.0025624627752218, 0.2281904610687610, 0.5381043228880020, 0.0055147549744775);
210 set(rule, 31, 0.0025624627752218, 0.2281904610687610, 0.0055147549744775, 0.2281904610687610);
211 set(rule, 32, 0.0025624627752218, 0.5381043228880020, 0.0055147549744775, 0.2281904610687610);
212 set(rule, 33, 0.0025624627752218, 0.2281904610687610, 0.0055147549744775, 0.5381043228880020);
213 set(rule, 34, 0.0025624627752218, 0.0055147549744775, 0.2281904610687610, 0.2281904610687610);
214 set(rule, 35, 0.0025624627752218, 0.0055147549744775, 0.5381043228880020, 0.2281904610687610);
215 set(rule, 36, 0.0025624627752218, 0.0055147549744775, 0.2281904610687610, 0.5381043228880020);
216 set(rule, 37, 0.0025624627752218, 0.5381043228880020, 0.2281904610687610, 0.2281904610687610);
217 set(rule, 38, 0.0025624627752218, 0.2281904610687610, 0.5381043228880020, 0.2281904610687610);
218 set(rule, 39, 0.0025624627752218, 0.2281904610687610, 0.2281904610687610, 0.5381043228880020);
219 set(rule, 40, 0.0048920019729205, 0.3523052600879940, 0.3523052600879940, 0.0992057202494530);
220 set(rule, 41, 0.0048920019729205, 0.1961837595745600, 0.3523052600879940, 0.0992057202494530);
221 set(rule, 42, 0.0048920019729205, 0.3523052600879940, 0.1961837595745600, 0.0992057202494530);
222 set(rule, 43, 0.0048920019729205, 0.3523052600879940, 0.0992057202494530, 0.3523052600879940);
223 set(rule, 44, 0.0048920019729205, 0.1961837595745600, 0.0992057202494530, 0.3523052600879940);
224 set(rule, 45, 0.0048920019729205, 0.3523052600879940, 0.0992057202494530, 0.1961837595745600);
225 set(rule, 46, 0.0048920019729205, 0.0992057202494530, 0.3523052600879940, 0.3523052600879940);
226 set(rule, 47, 0.0048920019729205, 0.0992057202494530, 0.1961837595745600, 0.3523052600879940);
227 set(rule, 48, 0.0048920019729205, 0.0992057202494530, 0.3523052600879940, 0.1961837595745600);
228 set(rule, 49, 0.0048920019729205, 0.1961837595745600, 0.3523052600879940, 0.3523052600879940);
229 set(rule, 50, 0.0048920019729205, 0.3523052600879940, 0.1961837595745600, 0.3523052600879940);
230 set(rule, 51, 0.0048920019729205, 0.3523052600879940, 0.3523052600879940, 0.1961837595745600);
231 set(rule, 52, 0.0061048561067518, 0.1344783347929940, 0.1344783347929940, 0.1344783347929940);
232 set(rule, 53, 0.0061048561067518, 0.5965649956210169, 0.1344783347929940, 0.1344783347929940);
233 set(rule, 54, 0.0061048561067518, 0.1344783347929940, 0.5965649956210169, 0.1344783347929940);
234 set(rule, 55, 0.0061048561067518, 0.1344783347929940, 0.1344783347929940, 0.5965649956210169);
Cubature Rule class template.
static String name()
Returns the name of the cubature rule.
static void fill(Rule< Shape::Simplex< 3 >, Weight_, Coord_, Point_ > &rule, int num_points)
Fills the cubature rule structure.
Shunn-Ham driver class template.
String class implementation.
Simplex shape tag struct template.