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 BasisPtrType >
OrientationTools< SpT >
::CoeffMatrixDataViewType 
createCoeffMatrixInternal (BasisPtrType basis)
 
template<typename BasisPtrType >
OrientationTools< SpT >
::CoeffMatrixDataViewType 
createCoeffMatrix (BasisPtrType basis)
 

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...
 
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 >
, CoeffMatrixDataViewType
ortCoeffData
 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 327 of file Intrepid2_OrientationTools.hpp.

Member Function Documentation

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

Create coefficient matrix.

Parameters
basis[in] - basis type
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.

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.

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: