52 #ifndef Intrepid2_DerivedBasis_HVOL_QUAD_h
53 #define Intrepid2_DerivedBasis_HVOL_QUAD_h
64 template<
class HVOL_LINE>
71 using LineBasis = HVOL_LINE;
74 ordinal_type polyOrder_x_, polyOrder_y_;
75 EPointType pointType_;
77 using ExecutionSpace =
typename HVOL_LINE::ExecutionSpace;
78 using OutputValueType =
typename HVOL_LINE::OutputValueType;
79 using PointValueType =
typename HVOL_LINE::PointValueType;
81 using OutputViewType =
typename HVOL_LINE::OutputViewType;
82 using PointViewType =
typename HVOL_LINE::PointViewType ;
83 using ScalarViewType =
typename HVOL_LINE::ScalarViewType;
85 using BasisBase =
typename HVOL_LINE::BasisBase;
94 TensorBasis(Teuchos::rcp( new LineBasis(polyOrder_x, pointType)),
95 Teuchos::rcp( new LineBasis(polyOrder_y, pointType))),
96 polyOrder_x_(polyOrder_x),
97 polyOrder_y_(polyOrder_y),
100 this->functionSpace_ = FUNCTION_SPACE_HVOL;
102 std::ostringstream basisName;
104 name_ = basisName.str();
106 this->setShardsTopologyAndTags();
122 return name_.c_str();
133 const EOperator VALUE = Intrepid2::OPERATOR_VALUE;
135 if (operatorType == VALUE)
141 INTREPID2_TEST_FOR_EXCEPTION(
true,std::invalid_argument,
"operator not yet supported");
151 virtual BasisPtr<typename Kokkos::HostSpace::device_type, typename BasisBase::OutputValueType, typename BasisBase::PointValueType>
154 return Teuchos::rcp(
new HostBasisType(polyOrder_x_, polyOrder_y_, pointType_) );
Basis_Derived_HVOL_QUAD(int polyOrder_x, int polyOrder_y, const EPointType pointType=POINTTYPE_DEFAULT)
Constructor.
virtual OperatorTensorDecomposition getSimpleOperatorDecomposition(const EOperator &operatorType) const override
Returns a simple decomposition of the specified operator: what operator(s) should be applied to basis...
Implementation of bases that are tensor products of two or three component bases. ...
virtual BasisPtr< typename Kokkos::HostSpace::device_type, typename BasisBase::OutputValueType, typename BasisBase::PointValueType > getHostBasis() const override
Creates and returns a Basis object whose DeviceType template argument is Kokkos::HostSpace::device_ty...
Implementation of H(vol) basis on the quadrilateral that is templated on H(vol) on the line...
Basis_Derived_HVOL_QUAD(int polyOrder, const EPointType pointType=POINTTYPE_DEFAULT)
Constructor.
For a multi-component tensor basis, specifies the operators to be applied to the components to produc...
virtual void getValues(BasisValues< OutputValueType, DeviceType > outputValues, const TensorPoints< PointValueType, DeviceType > inputPoints, const EOperator operatorType=OPERATOR_VALUE) const override
Evaluation of a FEM basis on a reference cell, using point and output value containers that allow pre...
virtual const char * getName() const override
Returns basis name.
H(vol) basis on the line based on Legendre polynomials.
virtual const char * getName() const override
Returns basis name.
Basis defined as the tensor product of two component bases.
virtual bool requireOrientation() const override
True if orientation is required.