18 template <
typename DT,
typename PT,
typename WT>
23 INTREPID2_TEST_FOR_EXCEPTION( degree < 0 ||
25 ">>> ERROR (CubatureDirectLineGaussJacobi20): No cubature rule implemented for the desired polynomial degree.");
27 typedef Kokkos::DynRankView<PT,Kokkos::LayoutRight,Kokkos::HostSpace> pointViewHostType;
28 typedef Kokkos::DynRankView<WT,Kokkos::LayoutRight,Kokkos::HostSpace> weightViewHostType;
38 auto points = Kokkos::create_mirror_view(
typename DT::memory_space(), points_host);
40 Kokkos::deep_copy(points,points_host);
43 this->
cubatureData_.
points_ = Kokkos::DynRankView<PT,DT>(
"CubatureDirectLineGaussJacobi20::cubatureData_::points_",
55 this->
cubatureData_.
weights_ = Kokkos::DynRankView<WT,DT>(
"CubatureDirectLineGaussJacobi20::cubatureData_::weights_",
58 Kokkos::deep_copy(Kokkos::subdynrankview(this->
cubatureData_.
weights_, Kokkos::ALL()) , Kokkos::subdynrankview(weights, Kokkos::ALL()));
76 template<
typename DT,
typename PT,
typename WT>
79 cubatureDataStatic_[cubatureDataStaticSize] = {
85 {2.66666666666666666666666666}
90 {2.66666666666666666666666666}
94 {{-7.549703546891172e-1, 0.0, 0.0},
95 {8.830368802245062e-2, 0.0, 0.0}},
97 8.062870566386037e-01}
101 {{-7.549703546891172e-1, 0.0, 0.0},
102 {8.830368802245062e-2, 0.0, 0.0}},
104 8.062870566386037e-01}
108 {{-8.540119518537008e-01, 0.0, 0.0},
109 {-3.059924679232963e-01, 0.0, 0.0},
110 { 4.100044197769969e-01, 0.0, 0.0}},
111 {1.257090888519093e+00,
112 1.169970154078928e+00,
113 2.396056240686456e-01}
117 {{-8.540119518537008e-01, 0.0, 0.0},
118 {-3.059924679232963e-01, 0.0, 0.0},
119 { 4.100044197769969e-01, 0.0, 0.0}},
120 {1.257090888519093e+00,
121 1.169970154078928e+00,
122 2.396056240686456e-01}
126 {{-9.029989011060054e-01, 0.0, 0.0},
127 {-5.227985248962754e-01, 0.0, 0.0},
128 {3.409459020873505e-02, 0.0, 0.0},
129 {5.917028357935457e-01, 0.0, 0.0}},
130 {8.871073248902235e-01,
131 1.147670318393715e+00,
132 5.490710973833849e-01,
133 8.281792599934450e-02}
137 {{-9.029989011060054e-01, 0.0, 0.0},
138 {-5.227985248962754e-01, 0.0, 0.0},
139 {3.409459020873505e-02, 0.0, 0.0},
140 {5.917028357935457e-01, 0.0, 0.0}},
141 {8.871073248902235e-01,
142 1.147670318393715e+00,
143 5.490710973833849e-01,
144 8.281792599934450e-02}
148 {{-9.308421201635699e-01, 0.0, 0.0},
149 {-6.530393584566085e-01, 0.0, 0.0},
150 {-2.202272258689614e-01, 0.0, 0.0},
151 {2.686669452617736e-01, 0.0, 0.0},
152 {7.021084258940329e-01, 0.0, 0.0}},
153 {6.541182742861678e-01,
154 1.009591695199292e+00,
155 7.136012897727201e-01,
156 2.564448057836956e-01,
157 3.291060162479211e-02}
161 {{-9.308421201635699e-01, 0.0, 0.0},
162 {-6.530393584566085e-01, 0.0, 0.0},
163 {-2.202272258689614e-01, 0.0, 0.0},
164 {2.686669452617736e-01, 0.0, 0.0},
165 {7.021084258940329e-01, 0.0, 0.0}},
166 {6.541182742861678e-01,
167 1.009591695199292e+00,
168 7.136012897727201e-01,
169 2.564448057836956e-01,
170 3.291060162479211e-02}
174 {{-9.481908898126656e-01, 0.0, 0.0},
175 {-7.368721166840297e-01, 0.0, 0.0},
176 {-3.951261639542174e-01, 0.0, 0.0},
177 {1.807282632950432e-02, 0.0, 0.0},
178 {4.313622546234276e-01, 0.0, 0.0},
179 {7.736112323551237e-01, 0.0, 0.0}},
180 {5.003096218126469e-01,
181 8.590119978942462e-01,
182 7.566174939883307e-01,
183 4.103165690369299e-01,
184 1.257623774795603e-01,
185 1.464860645495425e-02}
189 {{-9.481908898126656e-01, 0.0, 0.0},
190 {-7.368721166840297e-01, 0.0, 0.0},
191 {-3.951261639542174e-01, 0.0, 0.0},
192 {1.807282632950432e-02, 0.0, 0.0},
193 {4.313622546234276e-01, 0.0, 0.0},
194 {7.736112323551237e-01, 0.0, 0.0}},
195 {5.003096218126469e-01,
196 8.590119978942462e-01,
197 7.566174939883307e-01,
198 4.103165690369299e-01,
199 1.257623774795603e-01,
200 1.464860645495425e-02}
static constexpr ordinal_type MaxDimension
The maximum ambient space dimension.
Defines GaussJacobi20 integration rules on a line used for Pyramid only.
Kokkos::DynRankView< weightValueType, DeviceType > weights_
Array with the associated cubature weights.
CubatureDirectLineGaussJacobi20(const ordinal_type degree=0)
Constructor.
static constexpr ordinal_type MaxCubatureDegreePyr
The maximum degree of the polynomial that can be integrated exactly by a direct pyramid rule...
CubatureData cubatureData_
Cubature data on device.
ordinal_type numPoints_
Number of cubature points stored in the template.
static const CubatureDataStatic cubatureDataStatic_[cubatureDataStaticSize]
Complete set of data defining line Gauss(-Legendre) rules.
Defines direct cubature (integration) rules in Intrepid.
Cubature data is defined on the host space and is static.
Kokkos::DynRankView< pointValueType, DeviceType > points_
Array with the (X,Y,Z) coordinates of the cubature points.
ordinal_type numPoints_
Number of cubature points stored in the template.
ordinal_type degree_
The degree of polynomials that are integrated exactly by this cubature rule.