Intrepid2
Public Types | 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
 

Static Public Member Functions

template<typename BasisPtrType >
static CoeffMatrixDataViewType createCoeffMatrix (BasisPtrType 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 BasisPtrType >
static void modifyBasisByOrientation (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input, const Kokkos::DynRankView< ortValueType, ortProperties... > orts, const BasisPtrType 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 BasisPtrType >
static CoeffMatrixDataViewType createCoeffMatrixInternal (BasisPtrType basis)
 
static void init_HGRAD_QUAD_Cn_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HGRAD_HEX_Cn_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HGRAD_TRI_Cn_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HGRAD_TET_Cn_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HCURL_QUAD_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HCURL_HEX_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HCURL_TRI_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HCURL_TET_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HDIV_QUAD_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HDIV_HEX_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HDIV_TRI_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
static void init_HDIV_TET_In_FEM (CoeffMatrixDataViewType matData, const ordinal_type order)
 
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 298 of file Intrepid2_OrientationTools.hpp.

Member Function Documentation

◆ createCoeffMatrix()

template<typename SpT >
template<typename BasisPtrType >
OrientationTools< SpT >::CoeffMatrixDataViewType Intrepid2::OrientationTools< SpT >::createCoeffMatrix ( BasisPtrType  basis)
inlinestatic

Create coefficient matrix.

Parameters
basis[in] - basis type

Definition at line 713 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 BasisPtrType >
void Intrepid2::OrientationTools< SpT >::modifyBasisByOrientation ( Kokkos::DynRankView< outputValueType, outputProperties... >  output,
const Kokkos::DynRankView< inputValueType, inputProperties... >  input,
const Kokkos::DynRankView< ortValueType, ortProperties... >  orts,
const BasisPtrType  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 133 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.


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