Intrepid2
|
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 > | |
OrientationTools< SpT > ::CoeffMatrixDataViewType | createCoeffMatrixInternal (const BasisType *basis) |
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) |
template<typename BasisType > | |
OrientationTools< SpT > ::CoeffMatrixDataViewType | createCoeffMatrix (const BasisType *basis) |
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 > , CoeffMatrixDataViewType > | ortCoeffData |
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) |
Tools to compute orientations for degrees-of-freedom.
Definition at line 330 of file Intrepid2_OrientationTools.hpp.
|
inlinestatic |
Create coefficient matrix.
basis | [in] - basis type |
|
inlinestatic |
Compute orientations of cells in a workset.
elemOrts | [out] - cell orientations |
elemNodes | [in] - node coordinates |
cellTopo | [in] - shards cell topology |
Definition at line 109 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.
|
static |
Check if left-handed. If an element is alinged left, it is an error.
pts | [in] - points |
Definition at line 62 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.
|
inlinestatic |
Modify basis due to orientation.
output | [out] - output array |
input | [in] - input array |
orts | [in] - orientations |
basis | [in] - basis type |
Definition at line 275 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.