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. ...
EFunctionSpace functionSpace_
The function space in which the basis is defined.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
void getValues(OutputViewType outputValues, const PointViewType inputPoints, const EOperator operatorType=OPERATOR_VALUE) const override
Evaluation of a FEM basis on a reference cell.
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.
ordinal_type getDofCount(const ordinal_type subcDim, const ordinal_type subcOrd) const
DoF count for specified subcell.
Basis_Derived_HGRAD_QUAD(int polyOrder_x, int polyOrder_y)
Constructor.
virtual bool requireOrientation() const override
True if orientation is required.
Basis defined as the tensor product of two component bases.