47 #ifndef __INTREPID2_PROJECTIONTOOLS_HPP__ 
   48 #define __INTREPID2_PROJECTIONTOOLS_HPP__ 
   50 #include "Intrepid2_ConfigDefs.hpp" 
   54 #include "Shards_CellTopology.hpp" 
   55 #include "Shards_BasicTopologies.hpp" 
  100 #include "Teuchos_LAPACK.hpp" 
  107 namespace Intrepid2 {
 
  109 namespace Experimental {
 
  168 template<
typename ExecSpaceType>
 
  172   enum EvalPointsType {BASIS, TARGET};
 
  191   template<
typename BasisType,
 
  192   typename ortValueType,       
class ...ortProperties>
 
  195       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  196       const BasisType* cellBasis,
 
  198       const EvalPointsType evalPointType = TARGET
 
  220   template<
typename basisCoeffsValueType, 
class ...basisCoeffsProperties,
 
  221   typename funValsValueType, 
class ...funValsProperties,
 
  223   typename ortValueType,       
class ...ortProperties>
 
  225   getL2BasisCoeffs(Kokkos::DynRankView<basisCoeffsValueType,basisCoeffsProperties...> basisCoeffs,
 
  226       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetAtEvalPoints,
 
  227       const typename BasisType::scalarViewType evaluationPoints,
 
  228       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  229       const BasisType* cellBasis,
 
  252   template<
typename BasisType,
 
  253   typename ortValueType,       
class ...ortProperties>
 
  256       typename BasisType::scalarViewType gradEvalPoints,
 
  257       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  258       const BasisType* cellBasis,
 
  260       const EvalPointsType evalPointType = TARGET
 
  286   template<
typename basisCoeffsValueType, 
class ...basisCoeffsProperties,
 
  287   typename funValsValueType, 
class ...funValsProperties,
 
  289   typename ortValueType,       
class ...ortProperties>
 
  291   getHGradBasisCoeffs(Kokkos::DynRankView<basisCoeffsValueType,basisCoeffsProperties...> basisCoeffs,
 
  292       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetAtEvalPoints,
 
  293       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetGradAtGradEvalPoints,
 
  294       const typename BasisType::scalarViewType evaluationPoints,
 
  295       const typename BasisType::scalarViewType gradEvalPoints,
 
  296       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  297       const BasisType* cellBasis,
 
  320   template<
typename BasisType,
 
  321   typename ortValueType,       
class ...ortProperties>
 
  324       typename BasisType::scalarViewType curlEvalPoints,
 
  325       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  326       const BasisType* cellBasis,
 
  328       const EvalPointsType evalPointType = TARGET
 
  356   template<
typename basisCoeffsValueType, 
class ...basisCoeffsProperties,
 
  357   typename funValsValueType, 
class ...funValsProperties,
 
  359   typename ortValueType,       
class ...ortProperties>
 
  361   getHCurlBasisCoeffs(Kokkos::DynRankView<basisCoeffsValueType,basisCoeffsProperties...> basisCoeffs,
 
  362       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetAtEvalPoints,
 
  363       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetCurlAtCurlEvalPoints,
 
  364       const typename BasisType::scalarViewType evaluationPoints,
 
  365       const typename BasisType::scalarViewType curlEvalPoints,
 
  366       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  367       const BasisType* cellBasis,
 
  390   template<
typename BasisType,
 
  391   typename ortValueType,       
class ...ortProperties>
 
  394       typename BasisType::scalarViewType divEvalPoints,
 
  395       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  396       const BasisType* cellBasis,
 
  398       const EvalPointsType evalPointType = TARGET
 
  424   template<
typename basisCoeffsValueType, 
class ...basisCoeffsProperties,
 
  425   typename funValsValueType, 
class ...funValsProperties,
 
  427   typename ortValueType,       
class ...ortProperties>
 
  429   getHDivBasisCoeffs(Kokkos::DynRankView<basisCoeffsValueType,basisCoeffsProperties...> basisCoeffs,
 
  430       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetAtEvalPoints,
 
  431       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetDivAtDivEvalPoints,
 
  432       const typename BasisType::scalarViewType evaluationPoints,
 
  433       const typename BasisType::scalarViewType divEvalPoints,
 
  434       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  435       const BasisType* cellBasis,
 
  454   template<
typename BasisType,
 
  455   typename ortValueType,       
class ...ortProperties>
 
  458       const Kokkos::DynRankView<ortValueType, ortProperties...>  cellOrientations,
 
  459       const BasisType* cellBasis,
 
  461       const EvalPointsType evalPointType = TARGET
 
  482   template<
typename basisCoeffsValueType, 
class ...basisCoeffsProperties,
 
  483   typename funValsValueType, 
class ...funValsProperties,
 
  485   typename ortValueType,       
class ...ortProperties>
 
  487   getHVolBasisCoeffs(Kokkos::DynRankView<basisCoeffsValueType,basisCoeffsProperties...> basisCoeffs,
 
  488       const Kokkos::DynRankView<funValsValueType,funValsProperties...> targetAtEvalPoints,
 
  489       const typename BasisType::scalarViewType evaluationPoints,
 
  490       const Kokkos::DynRankView<ortValueType,   ortProperties...>  cellOrientations,
 
  491       const BasisType* cellBasis,
 
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. 
 
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::Experimental::ProjectionStruct. 
 
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. 
 
An helper class to compute the evaluation points and weights needed for performing projections...
 
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.