66 std::vector<Real> node2(dim2,0.0);
70 typename std::map<std::vector<Real>,
int>::iterator it = rule.
begin();
71 typename std::map<std::vector<Real>,
int>::iterator it_i;
72 typename std::map<std::vector<Real>,
int>::iterator it_j;
73 for (it_i=rule1.
begin(); it_i!=rule1.
end(); it_i++) {
74 for (it_j=rule2.
begin(); it_j!=rule2.
end(); it_j++) {
75 std::vector<Real> node = rule1.
getNode(it_i);
79 node.insert(node.end(),node2.begin(),node2.end());
80 rule.
insert(it,node,weight);
111 return 2*((level+1)/2)+1;
134 while (o<4*level+1) {
145 return (
int)pow(2.0,(
double)level)+1;
154 return 2*((level+1)/2)+1;
161 while (o<2*level+1) {
168 while (o<4*level+1) {
174 return (
int)pow(2.0,(
double)level+1.0)-1;
182 std::cout <<
"Specified Growth Rule Not Allowed!\n";
192 while (p<2*level+1) {
206 while (p<4*level+1) {
214 return (
int)pow(2.0,(
double)level+1.0)-1;
223 return 2*((level+1)/2)+1;
230 while (2*o-1<2*level+1) {
237 while (2*o-1<4*level+1) {
243 return (
int)pow(2.0,(
double)level+1.0)-1;
252 return 2*((level+1)/2)+1;
259 while (2*o-1<2*level+1) {
266 while (2*o-1<4*level+1) {
272 return (
int)pow(2.0,(
double)level+1.0)-1;
281 return 2*((level+1)/2)+1;
288 while (2*o-1<2*level+1) {
295 while (2*o-1<4*level+1) {
301 return (
int)pow(2.0,(
double)level+1.0)-1;
310 return 2*((level+1)/2)+1;
317 while (2*o-1<2*level+1) {
324 while (2*o-1<4*level+1) {
330 return (
int)pow(2.0,(
double)level+1.0)-1;
340 return 2*((level+1)/2)+1;
347 while (2*o-1<2*level+1) {
354 while (2*o-1<4*level+1) {
360 return (
int)pow(2.0,(
double)level+1.0)-1;
365 static int o_hgk[5] = { 1, 3, 9, 19, 35 };
366 static int p_hgk[5] = { 1, 5, 15, 29, 51 };
370 std::cout <<
"Specified Growth Rule Not Allowed!\n";
374 int l = 0, p = p_hgk[l], o = o_hgk[l];
375 while (p<2*level+1 && l<4) {
383 int l = 0, p = p_hgk[l], o = o_hgk[l];
384 while (p<4*level+1 && l<4) {
392 int l = level; l = std::max(l,0); l = std::min(l,4);
402 return 2*((level+1)/2)+1;
425 while (o<4*level+1) {
436 return (
int)pow(2.0,(
double)level)+1;
Quadrature< Real > kron_prod(Quadrature< Real > &rule1, Quadrature< Real > &rule2)
virtual std::vector< Real > getNode(typename std::map< std::vector< Real >, int >::iterator it)
EROLBurkardt
Enumeration of integration rules provided by John Burkardt.
virtual void insert(typename std::map< std::vector< Real >, int >::iterator it, std::vector< Real > point, Real weight)
virtual int getDimension() const
virtual std::map< std::vector< Real >, int >::iterator end()
virtual Real getWeight(int node)
virtual int getNumPoints() const
virtual std::map< std::vector< Real >, int >::iterator begin()
int growthRule1D(int index, EROLGrowth growth, EROLBurkardt rule)