143 outputValueViewType _outputValues;
144 const inputPointViewType _inputPoints;
145 const ordinal_type _order;
146 const double _alpha, _beta;
147 const ordinal_type _opDn;
149 KOKKOS_INLINE_FUNCTION
150 Functor( outputValueViewType outputValues_,
151 inputPointViewType inputPoints_,
152 const ordinal_type order_,
155 const ordinal_type opDn_ = 0 )
156 : _outputValues(outputValues_), _inputPoints(inputPoints_),
157 _order(order_), _alpha(alpha_), _beta(beta_), _opDn(opDn_) {}
159 KOKKOS_INLINE_FUNCTION
160 void operator()(
const size_type iter)
const {
161 const auto ptBegin = Util<ordinal_type>::min(iter*numPtsEval, _inputPoints.extent(0));
162 const auto ptEnd = Util<ordinal_type>::min(ptBegin+numPtsEval, _inputPoints.extent(0));
164 const auto ptRange = Kokkos::pair<ordinal_type,ordinal_type>(ptBegin, ptEnd);
165 const auto input = Kokkos::subview( _inputPoints, ptRange, Kokkos::ALL() );
167 if (input.extent(0)) {
169 case OPERATOR_VALUE : {
170 auto output = Kokkos::subview( _outputValues, Kokkos::ALL(), ptRange );
171 Serial<opType>::getValues( output, input, _order, _alpha, _beta );
174 case OPERATOR_GRAD : {
175 auto output = Kokkos::subview( _outputValues, Kokkos::ALL(), ptRange, Kokkos::ALL() );
176 Serial<opType>::getValues( output, input, _order, _alpha, _beta );
180 auto output = Kokkos::subview( _outputValues, Kokkos::ALL(), ptRange, Kokkos::ALL() );
181 Serial<opType>::getValues( output, input, _order, _alpha, _beta, _opDn );
185 INTREPID2_TEST_FOR_ABORT(
true,
186 ">>> ERROR: (Intrepid2::Basis_HGRAD_LINE_Cn_FEM_JACOBI::Functor) operator is not supported");