51 template <
typename SpT,
typename PT,
typename WT>
56 INTREPID2_TEST_FOR_EXCEPTION( degree < 0 ||
58 ">>> ERROR (CubatureDirectLineGaussJacobi20): No cubature rule implemented for the desired polynomial degree.");
60 typedef Kokkos::DynRankView<PT,Kokkos::LayoutRight,Kokkos::HostSpace> pointViewHostType;
61 typedef Kokkos::DynRankView<WT,Kokkos::LayoutRight,Kokkos::HostSpace> weightViewHostType;
71 auto points = Kokkos::create_mirror_view(
typename SpT::memory_space(), points_host);
73 Kokkos::deep_copy(points,points_host);
76 this->
cubatureData_.
points_ = Kokkos::DynRankView<PT,SpT>(
"CubatureDirectLineGaussJacobi20::cubatureData_::points_",
88 this->
cubatureData_.
weights_ = Kokkos::DynRankView<WT,SpT>(
"CubatureDirectLineGaussJacobi20::cubatureData_::weights_",
91 Kokkos::deep_copy(Kokkos::subdynrankview(this->
cubatureData_.
weights_, Kokkos::ALL()) , Kokkos::subdynrankview(weights, Kokkos::ALL()));
109 template<
typename SpT,
typename PT,
typename WT>
112 cubatureDataStatic_[cubatureDataStaticSize] = {
118 {2.66666666666666666666666666}
123 {2.66666666666666666666666666}
127 {{-7.549703546891172e-1, 0.0, 0.0},
128 {8.830368802245062e-2, 0.0, 0.0}},
130 8.062870566386037e-01}
134 {{-7.549703546891172e-1, 0.0, 0.0},
135 {8.830368802245062e-2, 0.0, 0.0}},
137 8.062870566386037e-01}
141 {{-8.540119518537008e-01, 0.0, 0.0},
142 {-3.059924679232963e-01, 0.0, 0.0},
143 { 4.100044197769969e-01, 0.0, 0.0}},
144 {1.257090888519093e+00,
145 1.169970154078928e+00,
146 2.396056240686456e-01}
150 {{-8.540119518537008e-01, 0.0, 0.0},
151 {-3.059924679232963e-01, 0.0, 0.0},
152 { 4.100044197769969e-01, 0.0, 0.0}},
153 {1.257090888519093e+00,
154 1.169970154078928e+00,
155 2.396056240686456e-01}
159 {{-9.029989011060054e-01, 0.0, 0.0},
160 {-5.227985248962754e-01, 0.0, 0.0},
161 {3.409459020873505e-02, 0.0, 0.0},
162 {5.917028357935457e-01, 0.0, 0.0}},
163 {8.871073248902235e-01,
164 1.147670318393715e+00,
165 5.490710973833849e-01,
166 8.281792599934450e-02}
170 {{-9.029989011060054e-01, 0.0, 0.0},
171 {-5.227985248962754e-01, 0.0, 0.0},
172 {3.409459020873505e-02, 0.0, 0.0},
173 {5.917028357935457e-01, 0.0, 0.0}},
174 {8.871073248902235e-01,
175 1.147670318393715e+00,
176 5.490710973833849e-01,
177 8.281792599934450e-02}
181 {{-9.308421201635699e-01, 0.0, 0.0},
182 {-6.530393584566085e-01, 0.0, 0.0},
183 {-2.202272258689614e-01, 0.0, 0.0},
184 {2.686669452617736e-01, 0.0, 0.0},
185 {7.021084258940329e-01, 0.0, 0.0}},
186 {6.541182742861678e-01,
187 1.009591695199292e+00,
188 7.136012897727201e-01,
189 2.564448057836956e-01,
190 3.291060162479211e-02}
194 {{-9.308421201635699e-01, 0.0, 0.0},
195 {-6.530393584566085e-01, 0.0, 0.0},
196 {-2.202272258689614e-01, 0.0, 0.0},
197 {2.686669452617736e-01, 0.0, 0.0},
198 {7.021084258940329e-01, 0.0, 0.0}},
199 {6.541182742861678e-01,
200 1.009591695199292e+00,
201 7.136012897727201e-01,
202 2.564448057836956e-01,
203 3.291060162479211e-02}
207 {{-9.481908898126656e-01, 0.0, 0.0},
208 {-7.368721166840297e-01, 0.0, 0.0},
209 {-3.951261639542174e-01, 0.0, 0.0},
210 {1.807282632950432e-02, 0.0, 0.0},
211 {4.313622546234276e-01, 0.0, 0.0},
212 {7.736112323551237e-01, 0.0, 0.0}},
213 {5.003096218126469e-01,
214 8.590119978942462e-01,
215 7.566174939883307e-01,
216 4.103165690369299e-01,
217 1.257623774795603e-01,
218 1.464860645495425e-02}
222 {{-9.481908898126656e-01, 0.0, 0.0},
223 {-7.368721166840297e-01, 0.0, 0.0},
224 {-3.951261639542174e-01, 0.0, 0.0},
225 {1.807282632950432e-02, 0.0, 0.0},
226 {4.313622546234276e-01, 0.0, 0.0},
227 {7.736112323551237e-01, 0.0, 0.0}},
228 {5.003096218126469e-01,
229 8.590119978942462e-01,
230 7.566174939883307e-01,
231 4.103165690369299e-01,
232 1.257623774795603e-01,
233 1.464860645495425e-02}
Kokkos::DynRankView< pointValueType, ExecSpaceType > points_
Array with the (X,Y,Z) coordinates of the cubature points.
static constexpr ordinal_type MaxDimension
The maximum ambient space dimension.
Defines GaussJacobi20 integration rules on a line used for Pyramid only.
ordinal_type numPoints_
Number of cubature points stored in the template.
CubatureData cubatureData_
Cubature data on device.
static const CubatureDataStatic cubatureDataStatic_[cubatureDataStaticSize]
Complete set of data defining line Gauss(-Legendre) rules.
static constexpr ordinal_type MaxCubatureDegreePyr
The maximum degree of the polynomial that can be integrated exactly by a direct pyramid rule...
ordinal_type degree_
The degree of polynomials that are integrated exactly by this cubature rule.
CubatureDirectLineGaussJacobi20(const ordinal_type degree=0)
Constructor.
Defines direct cubature (integration) rules in Intrepid.
Cubature data is defined on the host space and is static.
ordinal_type numPoints_
Number of cubature points stored in the template.
Kokkos::DynRankView< weightValueType, ExecSpaceType > weights_
Array with the associated cubature weights.