|
Intrepid2
|
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) |
| template<typename BasisHostType> | |
| void | init_HVOL (typename OrientationTools< DT >::CoeffMatrixDataViewType matData, BasisHostType const *cellBasis) |
Static Public Member Functions | |
| template<typename BasisType> | |
| static CoeffMatrixDataViewType | createCoeffMatrix (const BasisType *basis) |
| Create coefficient matrix. | |
| 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, bool isSide=false) |
| Compute orientations of cells in a workset. | |
| 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. | |
| template<typename outputValueType, class ... outputProperties, typename inputValueType, class ... inputProperties, typename OrientationViewType, typename BasisType> | |
| static void | modifyBasisByOrientationTranspose (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input, const OrientationViewType orts, const BasisType *basis) |
| Modify basis due to orientation, applying the transpose of the operator applied in modifyBasisByOrientation(). If the input provided represents basis coefficents in the global orientation, then this method will appropriately transform them to the local orientation. | |
| template<typename outputValueType, class ... outputProperties, typename inputValueType, class ... inputProperties, typename OrientationViewType, typename BasisTypeLeft, typename BasisTypeRight> | |
| static void | modifyMatrixByOrientation (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input, const OrientationViewType orts, const BasisTypeLeft *basisLeft, const BasisTypeRight *basisRight) |
| Modify an assembled (C,F1,F2) matrix according to orientation of the cells. | |
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 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. | |
| template<typename BasisHostType> | |
| static void | init_HVOL (CoeffMatrixDataViewType matData, BasisHostType const *cellBasis) |
| Compute orientation matrix for HVOL basis. | |
Tools to compute orientations for degrees-of-freedom.
Definition at line 406 of file Intrepid2_OrientationTools.hpp.
| typedef Kokkos::View<double****,DeviceType> Intrepid2::OrientationTools< DeviceType >::CoeffMatrixDataViewType |
subcell ordinal, orientation, matrix m x n
Definition at line 411 of file Intrepid2_OrientationTools.hpp.
|
inlinestatic |
Clear coefficient matrix.
Definition at line 325 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
References ortCoeffData.
|
inlinestatic |
Create coefficient matrix.
| basis | [in] - basis type |
Definition at line 302 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
References ortCoeffData.
Referenced by modifyBasisByOrientation(), modifyBasisByOrientationTranspose(), and modifyMatrixByOrientation().
|
inlinestaticprivate |
Definition at line 61 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
|
inlinestatic |
Compute orientations of cells in a workset.
| elemOrts | [out] - cell orientations |
| elemNodes | [in] - node coordinates |
| cellTopo | [in] - shards cell topology |
| isSide | [in] - boolean, whether the cell is a side |
Definition at line 64 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.
Referenced by Intrepid2::CellGeometry< PointScalar, spaceDim, DeviceType >::initializeOrientations().
| void Intrepid2::OrientationTools< DeviceType >::init_HCURL | ( | typename OrientationTools< DT >::CoeffMatrixDataViewType | matData, |
| BasisHostType const * | cellBasis ) |
Definition at line 168 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
| void Intrepid2::OrientationTools< DeviceType >::init_HDIV | ( | typename OrientationTools< DT >::CoeffMatrixDataViewType | matData, |
| BasisHostType const * | cellBasis ) |
Definition at line 228 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
| void Intrepid2::OrientationTools< DeviceType >::init_HGRAD | ( | typename OrientationTools< DT >::CoeffMatrixDataViewType | matData, |
| BasisHostType const * | cellBasis ) |
Definition at line 105 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
| void Intrepid2::OrientationTools< DeviceType >::init_HVOL | ( | typename OrientationTools< DT >::CoeffMatrixDataViewType | matData, |
| BasisHostType const * | cellBasis ) |
Definition at line 262 of file Intrepid2_OrientationToolsDefMatrixData.hpp.
|
inlinestatic |
Modify basis due to orientation.
| output | [out] - output array, of shape (C,F,P[,D]) |
| input | [in] - input array, of shape (C,F,P[,D]) or (F,P[,D]) |
| orts | [in] - orientations, of shape (C) |
| basis | [in] - basis of cardinality F |
Definition at line 282 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and createCoeffMatrix().
Referenced by Intrepid2::Experimental::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getHGradBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getL2BasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getL2DGBasisCoeffs(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::projectField().
|
inlinestatic |
Modify basis due to orientation, applying the transpose of the operator applied in modifyBasisByOrientation(). If the input provided represents basis coefficents in the global orientation, then this method will appropriately transform them to the local orientation.
| output | [out] - output array, of shape (C,F,P[,D]) |
| input | [in] - input array, of shape (C,F,P[,D]) or (F,P[,D]) |
| orts | [in] - orientations, of shape (C) |
| basis | [in] - basis of cardinality F |
Definition at line 364 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and createCoeffMatrix().
|
inlinestatic |
Modify an assembled (C,F1,F2) matrix according to orientation of the cells.
| output | [out] - output array, shape (C,F1,F2) |
| input | [in] - input array, shape (C,F1,F2) |
| orts | [in] - orientations, shape (C) |
| basisLeft | [in] - basis with cardinality F1 |
| basisRight | [in] - basis with cardinality F2 |
Definition at line 450 of file Intrepid2_OrientationToolsDefModifyBasis.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and createCoeffMatrix().
|
static |
key :: basis name, order, value :: matrix data view type
Definition at line 416 of file Intrepid2_OrientationTools.hpp.
Referenced by clearCoeffMatrix(), and createCoeffMatrix().