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

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

#include <Intrepid2_OrientationTools.hpp>

Public Types

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

Public Member Functions

template<typename BasisType >
void init_HGRAD_QUAD (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HCURL_QUAD (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HDIV_QUAD (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HGRAD_HEX (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HCURL_HEX (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HDIV_HEX (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HGRAD_TRI (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HCURL_TRI (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HDIV_TRI (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HGRAD_TET (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HCURL_TET (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
void init_HDIV_TET (typename OrientationTools< SpT >::CoeffMatrixDataViewType matData, BasisType 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 ptViewType >
static KOKKOS_INLINE_FUNCTION bool isLeftHandedCell (const ptViewType pts)
 Check if left-handed. If an element is alinged left, it is an error. More...
 
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 ortValueType , class ... ortProperties, typename BasisType >
static void modifyBasisByOrientation (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input, const Kokkos::DynRankView< ortValueType, ortProperties... > orts, const BasisType *basis)
 Modify basis due to orientation. More...
 
template<typename ExecutionSpaceType , typename dofCoordsValueType , typename dofCoeffsValueType , typename BasisType >
static void getSubCellBases (Teuchos::RCP< Basis< ExecutionSpaceType, dofCoeffsValueType, dofCoordsValueType > > *faceBases, Teuchos::RCP< Basis< ExecutionSpaceType, dofCoeffsValueType, dofCoordsValueType > > &edgeBasis, const BasisType &basis, EPointType pointType=POINTTYPE_EQUISPACED)
 
template<typename dofCoordsValueType , class ... dofCoordsProperties, typename dofCoeffsValueType , class ... dofCoeffsProperties, typename ortValueType , class ... ortProperties, typename BasisType >
static void getModifiedDofs (Kokkos::DynRankView< dofCoordsValueType, dofCoordsProperties... > orientedDofCoords, Kokkos::DynRankView< dofCoeffsValueType, dofCoeffsProperties... > orientedDofCoeffs, const Kokkos::DynRankView< ortValueType, ortProperties... > orts, const BasisType &basis, EPointType pointType=POINTTYPE_EQUISPACED)
 

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 BasisType >
static CoeffMatrixDataViewType createCoeffMatrixInternal (const BasisType *basis)
 
template<typename BasisType >
static void init_HGRAD_QUAD (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HGRAD_HEX (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HGRAD_TRI (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HGRAD_TET (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HCURL_QUAD (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HCURL_HEX (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HCURL_TRI (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HCURL_TET (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HDIV_QUAD (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HDIV_HEX (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HDIV_TRI (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
template<typename BasisType >
static void init_HDIV_TET (CoeffMatrixDataViewType matData, BasisType const *cellBasis)
 
static void init_EDGE_ELEMENT_I1_FEM (CoeffMatrixDataViewType matData, const ordinal_type edgeId)
 
static void init_TRI_FACE_ELEMENT_I1_FEM (CoeffMatrixDataViewType matData, const ordinal_type faceId)
 
static void init_QUAD_FACE_ELEMENT_I1_FEM (CoeffMatrixDataViewType matData, const ordinal_type faceId)
 

Detailed Description

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

Tools to compute orientations for degrees-of-freedom.

Definition at line 330 of file Intrepid2_OrientationTools.hpp.

Member Function Documentation

◆ createCoeffMatrix()

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

Create coefficient matrix.

Parameters
basis[in] - basis type

Definition at line 762 of file Intrepid2_OrientationToolsDefMatrixData.hpp.

◆ getOrientation()

template<typename SpT >
template<typename elemOrtValueType , class ... elemOrtProperties, typename elemNodeValueType , class ... elemNodeProperties>
void Intrepid2::OrientationTools< SpT >::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 109 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.

◆ isLeftHandedCell()

template<typename SpT >
template<typename ptViewType >
KOKKOS_INLINE_FUNCTION bool Intrepid2::OrientationTools< SpT >::isLeftHandedCell ( const ptViewType  pts)
static

Check if left-handed. If an element is alinged left, it is an error.

Parameters
pts[in] - points

Definition at line 62 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.

◆ modifyBasisByOrientation()

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

Modify basis due to orientation.

Parameters
output[out] - output array
input[in] - input array
orts[in] - orientations
basis[in] - basis type

Definition at line 275 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.


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