Intrepid2
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Private Member Functions | List of all members
Intrepid2::OrientationTools< DeviceType > Class Template Reference

Tools to compute orientations for degrees-of-freedom. More...

#include <Intrepid2_OrientationTools.hpp>

Public Types

typedef Kokkos::View< double ****, DeviceType > CoeffMatrixDataViewType
 subcell ordinal, orientation, matrix m x n
 

Public Member Functions

template<typename BasisHostType >
void init_HGRAD (typename OrientationTools< DT >::CoeffMatrixDataViewType matData, BasisHostType const *cellBasis)
 
template<typename BasisHostType >
void init_HCURL (typename OrientationTools< DT >::CoeffMatrixDataViewType matData, BasisHostType const *cellBasis)
 
template<typename BasisHostType >
void init_HDIV (typename OrientationTools< DT >::CoeffMatrixDataViewType matData, BasisHostType const *cellBasis)
 

Static Public Member Functions

template<typename BasisType >
static CoeffMatrixDataViewType createCoeffMatrix (const BasisType *basis)
 Create coefficient matrix. More...
 
static void clearCoeffMatrix ()
 Clear coefficient matrix.
 
template<typename elemOrtValueType , class ... elemOrtProperties, typename elemNodeValueType , class ... elemNodeProperties>
static void getOrientation (Kokkos::DynRankView< elemOrtValueType, elemOrtProperties... > elemOrts, const Kokkos::DynRankView< elemNodeValueType, elemNodeProperties... > elemNodes, const shards::CellTopology cellTopo)
 Compute orientations of cells in a workset. More...
 
template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties, typename OrientationViewType , typename BasisType >
static void modifyBasisByOrientation (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input, const OrientationViewType orts, const BasisType *basis)
 Modify basis due to orientation. More...
 

Static Public Attributes

static std::map< std::pair< std::string, ordinal_type >, CoeffMatrixDataViewTypeortCoeffData
 key :: basis name, order, value :: matrix data view type
 

Static Private Member Functions

template<typename BasisHostType >
static CoeffMatrixDataViewType createCoeffMatrixInternal (const BasisHostType *basis)
 
template<typename BasisHostType >
static void init_HGRAD (CoeffMatrixDataViewType matData, BasisHostType const *cellBasis)
 Compute orientation matrix for HGRAD basis.
 
template<typename BasisHostType >
static void init_HCURL (CoeffMatrixDataViewType matData, BasisHostType const *cellBasis)
 Compute orientation matrix for HCURL basis.
 
template<typename BasisHostType >
static void init_HDIV (CoeffMatrixDataViewType matData, BasisHostType const *cellBasis)
 Compute orientation matrix for HDIV basis.
 

Detailed Description

template<typename DeviceType>
class Intrepid2::OrientationTools< DeviceType >

Tools to compute orientations for degrees-of-freedom.

Definition at line 388 of file Intrepid2_OrientationTools.hpp.

Member Function Documentation

◆ createCoeffMatrix()

template<typename DT >
template<typename BasisType >
OrientationTools< DT >::CoeffMatrixDataViewType Intrepid2::OrientationTools< DT >::createCoeffMatrix ( const BasisType *  basis)
inlinestatic

Create coefficient matrix.

Parameters
basis[in] - basis type

Definition at line 231 of file Intrepid2_OrientationToolsDefMatrixData.hpp.

◆ getOrientation()

template<typename DT >
template<typename elemOrtValueType , class ... elemOrtProperties, typename elemNodeValueType , class ... elemNodeProperties>
void Intrepid2::OrientationTools< DT >::getOrientation ( Kokkos::DynRankView< elemOrtValueType, elemOrtProperties... >  elemOrts,
const Kokkos::DynRankView< elemNodeValueType, elemNodeProperties... >  elemNodes,
const shards::CellTopology  cellTopo 
)
inlinestatic

Compute orientations of cells in a workset.

Parameters
elemOrts[out] - cell orientations
elemNodes[in] - node coordinates
cellTopo[in] - shards cell topology

Definition at line 65 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.

Referenced by Intrepid2::CellGeometry< PointScalar, spaceDim, DeviceType >::initializeOrientations().

◆ init_HGRAD()

template<typename DeviceType>
template<typename BasisHostType >
void Intrepid2::OrientationTools< DeviceType >::init_HGRAD ( typename OrientationTools< DT >::CoeffMatrixDataViewType  matData,
BasisHostType const *  cellBasis 
)

KK: mauro, this is an expensive construction for high order elements and we repeat this for all possible orientation combinations we need to address this later
KK: mauro, this is an expensive construction for high order elements and we repeat this for all possible orientation combinations we need to address this later

Definition at line 107 of file Intrepid2_OrientationToolsDefMatrixData.hpp.

References Intrepid2::Impl::OrientationTools::getCoeffMatrix_HGRAD().

◆ modifyBasisByOrientation()

template<typename DT >
template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties, typename OrientationViewType , typename BasisType >
void Intrepid2::OrientationTools< DT >::modifyBasisByOrientation ( Kokkos::DynRankView< outputValueType, outputProperties... >  output,
const Kokkos::DynRankView< inputValueType, inputProperties... >  input,
const OrientationViewType  orts,
const BasisType *  basis 
)
inlinestatic

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