10 const double a1 = 0.40824826;
11 const double ma1 = -0.40824826;
12 const double a2 = 0.81649658;
13 const double ma2 = -0.81649658;
14 const double b1 = 0.70710678;
15 const double mb1 = -0.70710678;
16 const double c1 = 0.57735027;
17 const double mc1 = -0.57735027;
18 const double w1 = 1.3333333333;
31 const double xh8[8] = {
32 0.577350269189626, -0.577350269189626, 0.577350269189626, -0.577350269189626,
33 0.577350269189626, -0.577350269189626, 0.577350269189626, -0.577350269189626};
34 const double yh8[8] = {
35 0.577350269189626, 0.577350269189626, -0.577350269189626, -0.577350269189626,
36 0.577350269189626, 0.577350269189626, -0.577350269189626, -0.577350269189626};
37 const double zh8[8] = {-0.577350269189626, -0.577350269189626,
38 -0.577350269189626, -0.577350269189626,
39 0.577350269189626, 0.577350269189626,
40 0.577350269189626, 0.577350269189626};
41 const double ph8[8] = {1., 1., 1., 1., 1., 1., 1., 1.};
49 {{0.9317380000, 0., 0.}, 0.28465447168},
50 {{-0.9317380000, 0., 0.}, 0.28465447168},
51 {{0., 0.9317380000, 0.}, 0.28465447168},
52 {{0., -0.9317380000, 0.}, 0.28465447168},
53 {{0., 0., 0.9317380000}, 0.28465447168},
54 {{0., 0., -0.9317380000}, 0.28465447168},
55 {{0.9167441779, 0.9167441779, 0.}, 0.09983142160},
56 {{-0.9167441779, 0.9167441779, 0.}, 0.09983142160},
57 {{0.9167441779, -0.9167441779, 0.}, 0.09983142160},
58 {{-0.9167441779, -0.9167441779, 0.}, 0.09983142160},
59 {{0., 0.9167441779, 0.9167441779}, 0.09983142160},
60 {{0., -0.9167441779, 0.9167441779}, 0.09983142160},
61 {{0., 0.9167441779, -0.9167441779}, 0.09983142160},
62 {{0., -0.9167441779, -0.9167441779}, 0.09983142160},
63 {{0.9167441779, 0., 0.9167441779}, 0.09983142160},
64 {{-0.9167441779, 0., 0.9167441779}, 0.09983142160},
65 {{0.9167441779, 0., -0.9167441779}, 0.09983142160},
66 {{-0.9167441779, 0., -0.9167441779}, 0.09983142160},
67 {{0.4086003800, 0.4086003800, 0.4086003800}, 0.42294183928},
68 {{0.4086003800, 0.4086003800, -0.4086003800}, 0.42294183928},
69 {{0.4086003800, -0.4086003800, 0.4086003800}, 0.42294183928},
70 {{0.4086003800, -0.4086003800, -0.4086003800}, 0.42294183928},
71 {{-0.4086003800, 0.4086003800, 0.4086003800}, 0.42294183928},
72 {{-0.4086003800, 0.4086003800, -0.4086003800}, 0.42294183928},
73 {{-0.4086003800, -0.4086003800, 0.4086003800}, 0.42294183928},
74 {{-0.4086003800, -0.4086003800, -0.4086003800}, 0.42294183928},
75 {{0.7398529500, 0.7398529500, 0.7398529500}, 0.21382017456},
76 {{0.7398529500, 0.7398529500, -0.7398529500}, 0.21382017456},
77 {{0.7398529500, -0.7398529500, 0.7398529500}, 0.21382017456},
78 {{0.7398529500, -0.7398529500, -0.7398529500}, 0.21382017456},
79 {{-0.7398529500, 0.7398529500, 0.7398529500}, 0.21382017456},
80 {{-0.7398529500, 0.7398529500, -0.7398529500}, 0.21382017456},
81 {{-0.7398529500, -0.7398529500, 0.7398529500}, 0.21382017456},
82 {{-0.7398529500, -0.7398529500, -0.7398529500}, 0.21382017456}};
86 static std::vector<IntPt *>
GQHGL(40,
nullptr);
90 if(!forceTensorRule && order <= 1)
return GQH[order];
92 if(
static_cast<int>(
GQHGL.size()) < order + 1)
93 GQHGL.resize(order + 1,
nullptr);
95 int n = (order + 1) / (
float)2 + 0.5;
100 for(
int i = 0; i < n; i++) {
101 for(
int j = 0; j < n; j++) {
102 for(
int k = 0; k < n; k++) {
103 intpt[l].
pt[0] = pt[i];
104 intpt[l].
pt[1] = pt[j];
105 intpt[l].
pt[2] = pt[k];
106 intpt[l++].
weight = wt[i] * wt[j] * wt[k];
110 GQHGL[order] = intpt;
117 if(!forceTensorRule && order <= 1)
return GQHnPt[order];
118 int n = (order + 1) / (
float)2 + 0.5;