13 const double xq3[3] = {0.816496580928, -0.408248290464, -0.408248290464};
14 const double yq3[3] = {0.0, 0.840896415255, -0.840896415255};
15 const double pq3[3] = {1.3333333333333, 1.3333333333333, 1.3333333333333};
20 const double xq4[4] = {0.577350269189626, -0.577350269189626, 0.577350269189626,
22 const double yq4[4] = {0.577350269189626, 0.577350269189626, -0.577350269189626,
24 const double pq4[4] = {1., 1., 1., 1.};
32 const double xq7[7] = {0.,
39 const double yq7[7] = {0.,
46 const double pq7[7] = {1.1428571428571428, 0.31746031746031744,
47 0.31746031746031744, 0.5555555555555556,
48 0.5555555555555556, 0.5555555555555556,
55 const double a9 = 0.774596669241483;
59 const double pb2 = 0.888888888888889 * 0.888888888888889;
60 const double pc2 = 0.555555555555556 * 0.555555555555556;
61 const double pbc = 0.555555555555556 * 0.888888888888889;
70 const double a16 = 0.861136311594053;
71 const double b16 = 0.339981043584856;
76 const double pe2 = 0.347854845137454 * 0.347854845137454;
77 const double pf2 = 0.652145154862546 * 0.652145154862546;
78 const double pef = 0.347854845137454 * 0.652145154862546;
97 static std::vector<IntPt *>
GQQGL(40,
nullptr);
101 if(!forceTensorRule && order <= 2)
return GQQ[order];
103 if(
static_cast<int>(
GQQGL.size()) < order + 1)
104 GQQGL.resize(order + 1,
nullptr);
106 int n = (order + 1) / (
float)2 + 0.5;
111 for(
int i = 0; i < n; i++) {
112 for(
int j = 0; j < n; j++) {
113 intpt[k].
pt[0] = pt[i];
114 intpt[k].
pt[1] = pt[j];
115 intpt[k].
pt[2] = 0.0;
116 intpt[k++].
weight = wt[i] * wt[j];
119 GQQGL[order] = intpt;
126 if(!forceTensorRule && order <= 2)
return GQQnPt[order];
128 int n = (order + 1) / (
float)2 + 0.5;