51 #ifndef Intrepid2_DerivedBasis_HGRAD_QUAD_h
52 #define Intrepid2_DerivedBasis_HGRAD_QUAD_h
58 template<
class HGRAD_LINE>
63 using ExecutionSpace =
typename HGRAD_LINE::ExecutionSpace;
64 using OutputValueType =
typename HGRAD_LINE::OutputValueType;
65 using PointValueType =
typename HGRAD_LINE::PointValueType;
67 using OutputViewType =
typename HGRAD_LINE::OutputViewType;
68 using PointViewType =
typename HGRAD_LINE::PointViewType ;
69 using ScalarViewType =
typename HGRAD_LINE::ScalarViewType;
71 using LineBasis = HGRAD_LINE;
81 LineBasis(polyOrder_y))
106 virtual void getValues(OutputViewType outputValues,
const EOperator operatorType,
107 const PointViewType inputPoints1,
const PointViewType inputPoints2,
108 bool tensorPoints)
const override
110 Intrepid2::EOperator op1, op2;
111 if (operatorType == Intrepid2::OPERATOR_VALUE)
113 op1 = Intrepid2::OPERATOR_VALUE;
114 op2 = Intrepid2::OPERATOR_VALUE;
118 inputPoints2, op2, tensorPoints);
120 else if (operatorType == Intrepid2::OPERATOR_GRAD)
129 auto outputValuesComponent1 = Kokkos::subview(outputValues,Kokkos::ALL(),Kokkos::ALL(),0);
130 auto outputValuesComponent2 = Kokkos::subview(outputValues,Kokkos::ALL(),Kokkos::ALL(),1);
133 op1 = Intrepid2::OPERATOR_GRAD;
134 op2 = Intrepid2::OPERATOR_VALUE;
138 inputPoints2, op2, tensorPoints);
141 op1 = Intrepid2::OPERATOR_VALUE;
142 op2 = Intrepid2::OPERATOR_GRAD;
146 inputPoints2, op2, tensorPoints);
150 INTREPID2_TEST_FOR_EXCEPTION(
true,std::invalid_argument,
"operator not yet supported");
Implementation of bases that are tensor products of two or three component bases.
virtual bool requireOrientation() const override
True if orientation is required.
Basis_Derived_HGRAD_QUAD(int polyOrder_x, int polyOrder_y)
Constructor.
virtual void getValues(OutputViewType outputValues, const EOperator operatorType, const PointViewType inputPoints1, const PointViewType inputPoints2, bool tensorPoints) const override
multi-component getValues() method (required/called by TensorBasis)
Basis_Derived_HGRAD_QUAD(int polyOrder)
Constructor.
Basis defined as the tensor product of two component bases.
virtual void getValues(OutputViewType, const PointViewType, const EOperator=OPERATOR_VALUE) const
Evaluation of a FEM basis on a reference cell.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
ordinal_type getDofCount(const ordinal_type subcDim, const ordinal_type subcOrd) const
DoF count for specified subcell.
EFunctionSpace functionSpace_
The function space in which the basis is defined.