175 outputValueViewType _outputValues;
176 const inputPointViewType _inputPoints;
177 const ordinal_type _order;
178 const double _alpha, _beta;
179 const ordinal_type _opDn;
181 KOKKOS_INLINE_FUNCTION
182 Functor( outputValueViewType outputValues_,
183 inputPointViewType inputPoints_,
184 const ordinal_type order_,
187 const ordinal_type opDn_ = 0 )
188 : _outputValues(outputValues_), _inputPoints(inputPoints_),
189 _order(order_), _alpha(alpha_), _beta(beta_), _opDn(opDn_) {}
191 KOKKOS_INLINE_FUNCTION
192 void operator()(
const size_type iter)
const {
193 const auto ptBegin = Util<ordinal_type>::min(iter*numPtsEval, _inputPoints.extent(0));
194 const auto ptEnd = Util<ordinal_type>::min(ptBegin+numPtsEval, _inputPoints.extent(0));
196 const auto ptRange = Kokkos::pair<ordinal_type,ordinal_type>(ptBegin, ptEnd);
197 const auto input = Kokkos::subview( _inputPoints, ptRange, Kokkos::ALL() );
199 if (input.extent(0)) {
201 case OPERATOR_VALUE : {
202 auto output = Kokkos::subview( _outputValues, Kokkos::ALL(), ptRange );
203 Serial<opType>::getValues( output, input, _order, _alpha, _beta );
206 case OPERATOR_GRAD : {
207 auto output = Kokkos::subview( _outputValues, Kokkos::ALL(), ptRange, Kokkos::ALL() );
208 Serial<opType>::getValues( output, input, _order, _alpha, _beta );
212 auto output = Kokkos::subview( _outputValues, Kokkos::ALL(), ptRange, Kokkos::ALL() );
213 Serial<opType>::getValues( output, input, _order, _alpha, _beta, _opDn );
217 INTREPID2_TEST_FOR_ABORT(
true,
218 ">>> ERROR: (Intrepid2::Basis_HGRAD_LINE_Cn_FEM_JACOBI::Functor) operator is not supported");