Intrepid2
Public Types | Public Member Functions | List of all members
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 = 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 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 void getValues (OutputViewType outputValues, const PointViewType inputPoints, const EOperator operatorType=OPERATOR_VALUE) const override
 Evaluation of a FEM basis on a reference cell.
 
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 69 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 74 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ BasisPtr

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

Definition at line 75 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ DeviceType

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

Definition at line 76 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ ExecutionSpace

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

Definition at line 77 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OrdinalTypeArray1D

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

Definition at line 81 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OrdinalTypeArray1DHost

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

Definition at line 82 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OrdinalTypeArray2DHost

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

Definition at line 83 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OutputValueType

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

Definition at line 78 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ OutputViewType

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

Definition at line 84 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ PointValueType

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

Definition at line 79 of file Intrepid2_SerendipityBasisFamily.hpp.

◆ PointViewType

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

Definition at line 85 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 88 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 95 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 102 of file Intrepid2_SerendipityBasisFamily.hpp.


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