48 #ifndef __INTREPID2_ORIENTATIONTOOLS_HPP__ 
   49 #define __INTREPID2_ORIENTATIONTOOLS_HPP__ 
   51 #include "Intrepid2_ConfigDefs.hpp" 
   55 #include "Shards_CellTopology.hpp" 
   56 #include "Shards_BasicTopologies.hpp" 
  101 #include "Teuchos_LAPACK.hpp" 
  104 namespace Intrepid2 {
 
  125       template<
typename ValueType>
 
  126       KOKKOS_INLINE_FUNCTION
 
  130                            const ordinal_type ort);
 
  140       template<
typename ValueType>
 
  141       KOKKOS_INLINE_FUNCTION
 
  147                                const ordinal_type ort);
 
  157       template<
typename ValueType>
 
  158       KOKKOS_INLINE_FUNCTION
 
  164                                     const ordinal_type ort);
 
  173       template<
typename outPointViewType,
 
  174                typename refPointViewType>
 
  178                              const refPointViewType refPoints,
 
  179                              const shards::CellTopology cellTopo,
 
  180                              const ordinal_type cellOrt = 0);
 
  189       template<
typename outPointViewType,
 
  190                typename refPointViewType>
 
  194                              const refPointViewType refPoints,
 
  195                              const unsigned cellTopoKey,
 
  196                              const ordinal_type cellOrt = 0);
 
  204       template<
typename JacobianViewType>
 
  205       KOKKOS_INLINE_FUNCTION
 
  214       template<
typename JacobianViewType>
 
  215       KOKKOS_INLINE_FUNCTION
 
  224       template<
typename JacobianViewType>
 
  225       KOKKOS_INLINE_FUNCTION
 
  236       template<
typename JacobianViewType>
 
  240                              const shards::CellTopology cellTopo,
 
  241                              const ordinal_type cellOrt);
 
  249       template<
typename JacobianViewType>
 
  253                              const unsigned cellTopoKey,
 
  254                              const ordinal_type cellOrt);
 
  270       template<
typename outputViewType,
 
  271                typename subcellBasisType,
 
  272                typename cellBasisType>
 
  276                            const subcellBasisType subcellBasis,
 
  277                            const cellBasisType cellBasis,
 
  278                            const ordinal_type subcellId,
 
  279                            const ordinal_type subcellOrt);
 
  290       template<
typename outputViewType,
 
  291                typename subcellBasisType,
 
  292                typename cellBasisType>
 
  296                            const subcellBasisType subcellBasis,
 
  297                            const cellBasisType cellBasis,
 
  298                            const ordinal_type subcellId,
 
  299                            const ordinal_type subcellOrt);
 
  310       template<
typename outputViewType,
 
  311                typename subcellBasisType,
 
  312                typename cellBasisType>
 
  316                           const subcellBasisType subcellBasis,
 
  317                           const cellBasisType cellBasis,
 
  318                           const ordinal_type subcellId,
 
  319                           const ordinal_type subcellOrt);
 
  326   template<
typename ExecSpaceType>
 
  340     template<
typename BasisPtrType>
 
  350                                        const ordinal_type order);
 
  354                                       const ordinal_type order);
 
  358                                       const ordinal_type order);
 
  362                                       const ordinal_type order);
 
  370                                        const ordinal_type order);
 
  374                                       const ordinal_type order);
 
  378                                       const ordinal_type order);
 
  382                                       const ordinal_type order);
 
  390                                       const ordinal_type order);
 
  394                                      const ordinal_type order);
 
  398                                      const ordinal_type order);
 
  402                                      const ordinal_type order);
 
  410                                          const ordinal_type edgeId);
 
  414                                              const ordinal_type faceId);
 
  418                                               const ordinal_type faceId);
 
  425     template<
typename BasisPtrType>
 
  437     template<
typename ptViewType>
 
  438     KOKKOS_INLINE_FUNCTION
 
  447     template<
typename elemOrtValueType, 
class ...elemOrtProperties,
 
  448              typename elemNodeValueType, 
class ...elemNodeProperties>
 
  451     getOrientation(      Kokkos::DynRankView<elemOrtValueType,elemOrtProperties...> elemOrts,
 
  452                    const Kokkos::DynRankView<elemNodeValueType,elemNodeProperties...> elemNodes,
 
  453                    const shards::CellTopology cellTopo);
 
  461     template<
typename outputValueType, 
class ...outputProperties,
 
  462              typename inputValueType,  
class ...inputProperties,
 
  463              typename ortValueType,    
class ...ortProperties,
 
  464              typename BasisPtrType>
 
  468                              const Kokkos::DynRankView<inputValueType, inputProperties...>  input,
 
  469                              const Kokkos::DynRankView<ortValueType,   ortProperties...> orts,
 
  470                              const BasisPtrType  basis);
 
  472     template<
typename ExecutionSpaceType, 
typename dofCoordsValueType,
 
  473              typename dofCoeffsValueType, 
typename BasisType>
 
  479       const BasisType&  basis,
 
  480       EPointType pointType = POINTTYPE_EQUISPACED);
 
  482     template<
typename dofCoordsValueType, 
class ...dofCoordsProperties,
 
  483              typename dofCoeffsValueType, 
class ...dofCoeffsProperties,
 
  484              typename ortValueType,       
class ...ortProperties,
 
  488     getModifiedDofs(  Kokkos::DynRankView<dofCoordsValueType,dofCoordsProperties...> orientedDofCoords,
 
  489       Kokkos::DynRankView<dofCoeffsValueType,dofCoeffsProperties...> orientedDofCoeffs,
 
  490       const Kokkos::DynRankView<ortValueType,   ortProperties...>    orts,
 
  491       const BasisType& basis,
 
  492       EPointType pointType = POINTTYPE_EQUISPACED);
 
Header file for the Intrepid2::Basis_HGRAD_LINE_Cn_FEM class. 
Header file for the Intrepid2::Basis_HDIV_TET_I1_FEM class. 
Header file for the Intrepid2::Basis_HCURL_HEX_In_FEM class. 
Header file for the Intrepid2::Basis_HDIV_HEX_I1_FEM class. 
Header file for the Intrepid2::Basis_HDIV_WEDGE_I1_FEM class. 
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
Header file for the Intrepid2::Basis_HDIV_HEX_In_FEM class. 
Header function for Intrepid2::Util class and other utility functions. 
Header file for the Intrepid2::Basis_HGRAD_TRI_Cn_FEM class. 
Header file for the Intrepid2::Basis_HVOL_LINE_Cn_FEM class. 
Header file for the Intrepid2::Basis_HDIV_QUAD_I1_FEM class. 
Header file for the Intrepid2::Basis_HCURL_TET_In_FEM class. 
Header file for the Intrepid2::Basis_HGRAD_TET_Cn_FEM class. 
Header file for the Intrepid2::Basis_HDIV_TRI_I1_FEM class. 
Header file for the Intrepid2::Basis_HDIV_QUAD_In_FEM class. 
Header file for the Intrepid2::Basis_HCURL_QUAD_In_FEM class. 
Header file for the Intrepid2::Basis_HDIV_TRI_In_FEM class. 
Contains definitions of custom data types in Intrepid2. 
Header file for the Intrepid2::Basis_HGRAD_QUAD_Cn_FEM class. 
Header file for the Intrepid2::Basis_HDIV_TET_In_FEM class. 
Header file for the Intrepid2::Basis_HCURL_QUAD_I1_FEM class. 
Header file for the Intrepid2::Basis_HCURL_WEDGE_I1_FEM class. 
Header file for the Intrepid2::Basis_HCURL_TET_I1_FEM class. 
Header file for the Intrepid2::Basis_HCURL_HEX_I1_FEM class. 
Header file for the Intrepid2::Basis_HCURL_TRI_I1_FEM class. 
Header file for the Intrepid2::Basis_HVOL_TRI_Cn_FEM class. 
Header file for the abstract base class Intrepid2::Basis. 
Header file for the Intrepid2::Basis_HCURL_TRI_In_FEM class. 
Header file for the Intrepid2::Basis_HGRAD_HEX_Cn_FEM class.