Intrepid2
Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs > Class Template Reference

Helper class that allows SerendipityBasis construction with poly order arguments that are passed to the tensor-basis constructor. (SerendipityBasis itself requires a BasisPtr at construction.). More...

#include <Intrepid2_SerendipityBasisFamily.hpp>

Inheritance diagram for Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >:
Intrepid2::SerendipityBasis< FullBasis::BasisBase >

Public Types

using BasisBase = typename FullBasis::BasisBase
using BasisPtr = Teuchos::RCP<BasisBase>
using DeviceType = typename BasisBase::DeviceType
using ExecutionSpace = typename BasisBase::ExecutionSpace
using OutputValueType = typename BasisBase::OutputValueType
using PointValueType = typename BasisBase::PointValueType
using OrdinalTypeArray1D = typename BasisBase::OrdinalTypeArray1D
using OrdinalTypeArray1DHost = typename BasisBase::OrdinalTypeArray1DHost
using OrdinalTypeArray2DHost = typename BasisBase::OrdinalTypeArray2DHost
using OutputViewType = typename BasisBase::OutputViewType
using PointViewType = typename BasisBase::PointViewType
Public Types inherited from Intrepid2::SerendipityBasis< FullBasis::BasisBase >
using BasisBase
using BasisPtr
using DeviceType
using ExecutionSpace
using OutputValueType
using PointValueType
using OrdinalTypeArray1D
using OrdinalTypeArray1DHost
using OrdinalTypeArray2DHost
using OutputViewType
using PointViewType

Public Member Functions

 SerendipityBasisWrapper (int polyOrder, const EPointType pointType=POINTTYPE_DEFAULT)
 single-argument constructor, for isotropic bases.
template<bool M = (numPolyOrderArgs==2)>
 SerendipityBasisWrapper (int polyOrder_x, int polyOrder_y, const EPointType pointType=POINTTYPE_DEFAULT, typename std::enable_if< M >::type *=0)
 two-argument constructor; enabled if numPolyOrderArgs is 2.
template<bool M = (numPolyOrderArgs==3)>
 SerendipityBasisWrapper (int polyOrder_x, int polyOrder_y, int polyOrder_z, const EPointType pointType=POINTTYPE_DEFAULT, typename std::enable_if< M >::type *=0)
 three-argument constructor; enabled if numPolyOrderArgs is 3.
Public Member Functions inherited from Intrepid2::SerendipityBasis< FullBasis::BasisBase >
 SerendipityBasis (BasisPtr fullBasis)
 Constructor.
virtual int getNumTensorialExtrusions () const override
virtual BasisValues< OutputValueType, DeviceType > allocateBasisValues (TensorPoints< PointValueType, DeviceType > points, const EOperator operatorType=OPERATOR_VALUE) const override
 Allocate BasisValues container suitable for passing to the getValues() variant that takes a TensorPoints container as argument.
virtual const char * getName () const override
 Returns basis name.
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 preservation of tensor-product structure.
virtual HostBasisPtr< OutputValueType, PointValueType > getHostBasis () const override
 Creates and returns a Basis object whose DeviceType template argument is Kokkos::HostSpace::device_type, but is otherwise identical to this.
BasisPtr getUnderlyingBasis () const
 Returns a pointer to the underlying full basis.
OrdinalTypeArray1D ordinalMap () const
 Returns the ordinal map from the Serendipity basis ordinal to the ordinal in the underlying full basis.

Additional Inherited Members

Protected Attributes inherited from Intrepid2::SerendipityBasis< FullBasis::BasisBase >
BasisPtr fullBasis_
std::string name_
int numTensorialExtrusions_
OrdinalTypeArray1D ordinalMap_

Detailed Description

template<class FullBasis, int numPolyOrderArgs>
class Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >

Helper class that allows SerendipityBasis construction with poly order arguments that are passed to the tensor-basis constructor. (SerendipityBasis itself requires a BasisPtr at construction.).

Definition at line 35 of file Intrepid2_SerendipityBasisFamily.hpp.

Member Typedef Documentation

◆ BasisBase

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::BasisBase = typename FullBasis::BasisBase

Definition at line 40 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ BasisPtr

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::BasisPtr = Teuchos::RCP<BasisBase>

Definition at line 41 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ DeviceType

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::DeviceType = typename BasisBase::DeviceType

Definition at line 42 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ ExecutionSpace

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::ExecutionSpace = typename BasisBase::ExecutionSpace

Definition at line 43 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OrdinalTypeArray1D

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::OrdinalTypeArray1D = typename BasisBase::OrdinalTypeArray1D

Definition at line 47 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OrdinalTypeArray1DHost

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::OrdinalTypeArray1DHost = typename BasisBase::OrdinalTypeArray1DHost

Definition at line 48 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OrdinalTypeArray2DHost

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::OrdinalTypeArray2DHost = typename BasisBase::OrdinalTypeArray2DHost

Definition at line 49 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OutputValueType

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::OutputValueType = typename BasisBase::OutputValueType

Definition at line 44 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OutputViewType

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::OutputViewType = typename BasisBase::OutputViewType

Definition at line 50 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ PointValueType

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::PointValueType = typename BasisBase::PointValueType

Definition at line 45 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ PointViewType

template<class FullBasis, int numPolyOrderArgs>
using Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::PointViewType = typename BasisBase::PointViewType

Definition at line 51 of file Intrepid2_SerendipityBasisFamily.hpp.

Constructor & Destructor Documentation

◆ SerendipityBasisWrapper() [1/3]

template<class FullBasis, int numPolyOrderArgs>
Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::SerendipityBasisWrapper ( int polyOrder,
const EPointType pointType = POINTTYPE_DEFAULT )
inline

single-argument constructor, for isotropic bases.

Definition at line 54 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ SerendipityBasisWrapper() [2/3]

template<class FullBasis, int numPolyOrderArgs>
template<bool M = (numPolyOrderArgs==2)>
Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::SerendipityBasisWrapper ( int polyOrder_x,
int polyOrder_y,
const EPointType pointType = POINTTYPE_DEFAULT,
typename std::enable_if< M >::type * = 0 )
inline

two-argument constructor; enabled if numPolyOrderArgs is 2.

Definition at line 61 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ SerendipityBasisWrapper() [3/3]

template<class FullBasis, int numPolyOrderArgs>
template<bool M = (numPolyOrderArgs==3)>
Intrepid2::SerendipityBasisWrapper< FullBasis, numPolyOrderArgs >::SerendipityBasisWrapper ( int polyOrder_x,
int polyOrder_y,
int polyOrder_z,
const EPointType pointType = POINTTYPE_DEFAULT,
typename std::enable_if< M >::type * = 0 )
inline

three-argument constructor; enabled if numPolyOrderArgs is 3.

Definition at line 68 of file Intrepid2_SerendipityBasisFamily.hpp.


The documentation for this class was generated from the following file: