49 #ifndef __INTREPID2_FUNCTIONSPACETOOLS_HPP__ 
   50 #define __INTREPID2_FUNCTIONSPACETOOLS_HPP__ 
   52 #include "Intrepid2_ConfigDefs.hpp" 
   54 #include "Shards_CellTopology.hpp" 
   55 #include "Shards_BasicTopologies.hpp" 
   66 #include "Kokkos_Core.hpp" 
   77   template<
typename ExecSpaceType = 
void>
 
  119     template<
typename outputValueType, 
class ...outputProperties,
 
  120              typename inputValueType,     
class ...inputProperties>
 
  123                          const Kokkos::DynRankView<inputValueType, inputProperties...>  input );
 
  166     template<
typename outputValValueType,       
class ...outputValProperties,
 
  167              typename jacobianInverseValueType, 
class ...jacobianInverseProperties,
 
  168              typename inputValValueType,        
class ...inputValProperties>
 
  170     HGRADtransformGRAD(       Kokkos::DynRankView<outputValValueType,      outputValProperties...>       outputVals,
 
  171                         const Kokkos::DynRankView<jacobianInverseValueType,jacobianInverseProperties...> jacobianInverse,
 
  172                         const Kokkos::DynRankView<inputValValueType,       inputValProperties...>        inputVals );
 
  214     template<
typename outputValValueType,       
class ...outputValProperties,
 
  215              typename jacobianInverseValueType, 
class ...jacobianInverseProperties,
 
  216              typename inputValValueType,        
class ...inputValProperties>
 
  218     HCURLtransformVALUE(       Kokkos::DynRankView<outputValValueType,      outputValProperties...>       outputVals,
 
  219                          const Kokkos::DynRankView<jacobianInverseValueType,jacobianInverseProperties...> jacobianInverse,
 
  220                          const Kokkos::DynRankView<inputValValueType,       inputValProperties...>        inputVals );
 
  265     template<
typename outputValValueType,      
class ...outputValProperties,
 
  266              typename jacobianValueType,    
class ...jacobianProperties,
 
  267              typename jacobianDetValueType, 
class ...jacobianDetProperties,
 
  268              typename inputValValueType,       
class ...inputValProperties>
 
  270     HCURLtransformCURL(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  271                         const Kokkos::DynRankView<jacobianValueType,   jacobianProperties...>    jacobian,
 
  272                         const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
 
  273                         const Kokkos::DynRankView<inputValValueType,   inputValProperties...>    inputVals );
 
  318     template<
typename outputValValueType,      
class ...outputValProperties,
 
  319              typename jacobianDetValueType, 
class ...jacobianDetProperties,
 
  320              typename inputValValueType,       
class ...inputValProperties>
 
  322     HCURLtransformCURL(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  323                         const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
 
  324                         const Kokkos::DynRankView<inputValValueType,   inputValProperties...>    inputVals );
 
  370     template<
typename outputValValueType,      
class ...outputValProperties,
 
  371              typename jacobianValueType,       
class ...jacobianProperties,
 
  372              typename jacobianDetValueType,    
class ...jacobianDetProperties,
 
  373              typename inputValValueType,       
class ...inputValProperties>
 
  375     HGRADtransformCURL(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  376                         const Kokkos::DynRankView<jacobianValueType,   jacobianProperties...>    jacobian,
 
  377                         const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
 
  378                         const Kokkos::DynRankView<inputValValueType,   inputValProperties...>    inputVals );
 
  426     template<
typename outputValValueType,      
class ...outputValProperties,
 
  427              typename jacobianValueType,       
class ...jacobianProperties,
 
  428              typename jacobianDetValueType,    
class ...jacobianDetProperties,
 
  429              typename inputValValueType,       
class ...inputValProperties>
 
  431     HDIVtransformVALUE(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  432                         const Kokkos::DynRankView<jacobianValueType,   jacobianProperties...>    jacobian,
 
  433                         const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
 
  434                         const Kokkos::DynRankView<inputValValueType,   inputValProperties...>    inputVals );
 
  477     template<
typename outputValValueType,      
class ...outputValProperties,
 
  478              typename jacobianDetValueType,    
class ...jacobianDetProperties,
 
  479              typename inputValValueType,       
class ...inputValProperties>
 
  481     HDIVtransformDIV(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  482                       const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
 
  483                       const Kokkos::DynRankView<inputValValueType,   inputValProperties...>    inputVals );
 
  525     template<
typename outputValValueType,      
class ...outputValProperties,
 
  526              typename jacobianDetValueType,    
class ...jacobianDetProperties,
 
  527              typename inputValValueType,       
class ...inputValProperties>
 
  529     HVOLtransformVALUE(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  530                         const Kokkos::DynRankView<jacobianDetValueType,jacobianDetProperties...> jacobianDet,
 
  531                         const Kokkos::DynRankView<inputValValueType,   inputValProperties...>    inputVals );
 
  547     template<
typename outputValueValueType, 
class ...outputValueProperties,
 
  548              typename leftValueValueType,   
class ...leftValueProperties,
 
  549              typename rightValueValueType,  
class ...rightValueProperties>
 
  551     integrate(       Kokkos::DynRankView<outputValueValueType,outputValueProperties...> outputValues,
 
  552                const Kokkos::DynRankView<leftValueValueType,  leftValueProperties...>   leftValues,
 
  553                const Kokkos::DynRankView<rightValueValueType, rightValueProperties...>  rightValues,
 
  554                const bool sumInto = 
false);
 
  587     template<
typename outputValValueType,   
class ...outputValProperties,
 
  588              typename inputDetValueType,    
class ...inputDetPropertes,
 
  589              typename inputWeightValueType, 
class ...inputWeightPropertes>
 
  591     computeCellMeasure(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>  outputVals,
 
  592                         const Kokkos::DynRankView<inputDetValueType,   inputDetPropertes...>    inputDet,
 
  593                         const Kokkos::DynRankView<inputWeightValueType,inputWeightPropertes...> inputWeights );
 
  641     template<
typename outputValValueType,   
class ...outputValProperties,
 
  642              typename inputJacValueType,    
class ...inputJacProperties,
 
  643              typename inputWeightValueType, 
class ...inputWeightPropertes,
 
  644              typename scratchValueType,     
class ...scratchProperties>
 
  646     computeFaceMeasure(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>  outputVals,
 
  647                         const Kokkos::DynRankView<inputJacValueType,   inputJacProperties...>   inputJac,
 
  648                         const Kokkos::DynRankView<inputWeightValueType,inputWeightPropertes...> inputWeights,
 
  650                         const shards::CellTopology  parentCell,
 
  651                         const Kokkos::DynRankView<scratchValueType,    scratchProperties...>    scratch );      
 
  697     template<
typename outputValValueType,   
class ...outputValProperties,
 
  698              typename inputJacValueType,    
class ...inputJacProperties,
 
  699              typename inputWeightValueType, 
class ...inputWeightProperties,
 
  700              typename scratchValueType,     
class ...scratchProperties>
 
  702     computeEdgeMeasure(       Kokkos::DynRankView<outputValValueType,  outputValProperties...>   outputVals,
 
  703                         const Kokkos::DynRankView<inputJacValueType,   inputJacProperties...>    inputJac,
 
  704                         const Kokkos::DynRankView<inputWeightValueType,inputWeightProperties...> inputWeights,
 
  706                         const shards::CellTopology  parentCell,
 
  707                         const Kokkos::DynRankView<scratchValueType,    scratchProperties...>     scratch );
 
  717     template<
typename outputValValueType,    
class ...outputValProperties,
 
  718              typename inputMeasureValueType, 
class ...inputMeasureProperties,
 
  719              typename inputValValueType,     
class ...inputValProperteis>
 
  721     multiplyMeasure(       Kokkos::DynRankView<outputValValueType,   outputValProperties...>    outputVals,
 
  722                      const Kokkos::DynRankView<inputMeasureValueType,inputMeasureProperties...> inputMeasure,
 
  723                      const Kokkos::DynRankView<inputValValueType,    inputValProperteis...>     inputVals );
 
  758     template<
typename outputFieldValueType, 
class ...outputFieldProperties,
 
  759              typename inputDataValueType,   
class ...inputDataPropertes,
 
  760              typename inputFieldValueType,  
class ...inputFieldProperties>
 
  763                              const Kokkos::DynRankView<inputDataValueType,  inputDataPropertes...>    inputData,
 
  764                              const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...>  inputFields,
 
  765                              const bool reciprocal = 
false );
 
  799     template<
typename outputDataValuetype,     
class ...outputDataProperties,
 
  800              typename inputDataLeftValueType,  
class ...inputDataLeftProperties,
 
  801              typename inputDataRightValueType, 
class ...inputDataRightProperties>
 
  804                             const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...>  inputDataLeft,
 
  805                             const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight,
 
  806                             const bool reciprocal = 
false );
 
  839     template<
typename outputFieldValueType, 
class ...outputFieldProperties,
 
  840              typename inputDataValueType,   
class ...inputDataProperties,
 
  841              typename inputFieldValueType,  
class ...inputFieldProperties>
 
  843     dotMultiplyDataField(       Kokkos::DynRankView<outputFieldValueType,outputFieldProperties...> outputFields,
 
  844                           const Kokkos::DynRankView<inputDataValueType,  inputDataProperties...>   inputData,
 
  845                           const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...>  inputFields );
 
  877     template<
typename outputDataValueType,     
class ...outputDataProperties,
 
  878              typename inputDataLeftValueType,  
class ...inputDataLeftProperties,
 
  879              typename inputDataRightValueType, 
class ...inputDataRightProperties>
 
  881     dotMultiplyDataData(       Kokkos::DynRankView<outputDataValueType,    outputDataProperties...>     outputData,
 
  882                          const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...>  inputDataLeft,
 
  883                          const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight );
 
  919     template<
typename outputFieldValueType, 
class ...outputFieldProperties,
 
  920              typename inputDataValueType,   
class ...inputDataProperties,
 
  921              typename inputFieldValueType,  
class ...inputFieldProperties>
 
  924                              const Kokkos::DynRankView<inputDataValueType,  inputDataProperties...>   inputData,
 
  925                              const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...>  inputFields );
 
  961     template<
typename outputDataValueType,     
class ...outputDataProperties,
 
  962              typename inputDataLeftValueType,  
class ...inputDataLeftProperties,
 
  963              typename inputDataRightValueType, 
class ...inputDataRightProperties>
 
  966                             const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...>  inputDataLeft,
 
  967                             const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight );
 
 1019     template<
typename outputFieldValueType, 
class ...outputFieldProperties,
 
 1020              typename inputDataValueType,   
class ...inputDataProperties,
 
 1021              typename inputFieldValueType,  
class ...inputFieldProperties>
 
 1024                              const Kokkos::DynRankView<inputDataValueType,  inputDataProperties...>   inputData,
 
 1025                              const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...>  inputFields,
 
 1026                              const char transpose = 
'N');
 
 1077     template<
typename outputDataValueType,     
class ...outputDataProperties,
 
 1078              typename inputDataLeftValueType,  
class ...inputDataLeftProperties,
 
 1079              typename inputDataRightValueType, 
class ...inputDataRightProperties>
 
 1082                             const Kokkos::DynRankView<inputDataLeftValueType, inputDataLeftProperties...>  inputDataLeft,
 
 1083                             const Kokkos::DynRankView<inputDataRightValueType,inputDataRightProperties...> inputDataRight,
 
 1084                             const char transpose = 
'N' );
 
 1112     template<
typename inoutOperatorValueType, 
class ...inoutOperatorProperties,
 
 1113              typename fieldSignValueType,     
class ...fieldSignProperties>
 
 1115     applyLeftFieldSigns(       Kokkos::DynRankView<inoutOperatorValueType,inoutOperatorProperties...> inoutOperator,
 
 1116                          const Kokkos::DynRankView<fieldSignValueType,    fieldSignProperties...>     fieldSigns );
 
 1144     template<
typename inoutOperatorValueType, 
class ...inoutOperatorProperties,
 
 1145              typename fieldSignValueType,     
class ...fieldSignProperties>
 
 1147     applyRightFieldSigns(       Kokkos::DynRankView<inoutOperatorValueType,inoutOperatorProperties...> inoutOperator,
 
 1148                           const Kokkos::DynRankView<fieldSignValueType,    fieldSignProperties...>     fieldSigns );
 
 1173     template<
typename inoutFunctionValueType, 
class ...inoutFunctionProperties,
 
 1174              typename fieldSignValueType,     
class ...fieldSignProperties>
 
 1176     applyFieldSigns(       Kokkos::DynRankView<inoutFunctionValueType,inoutFunctionProperties...> inoutFunction,
 
 1177                      const Kokkos::DynRankView<fieldSignValueType,    fieldSignProperties...>     fieldSigns );
 
 1215     template<
typename outputPointValueType, 
class ...outputPointProperties,
 
 1216              typename inputCoeffValueType,  
class ...inputCoeffProperties,
 
 1217              typename inputFieldValueType,  
class ...inputFieldProperties>
 
 1219     evaluate(       Kokkos::DynRankView<outputPointValueType,outputPointProperties...> outputPointVals,
 
 1220               const Kokkos::DynRankView<inputCoeffValueType, inputCoeffProperties...>  inputCoeffs,
 
 1221               const Kokkos::DynRankView<inputFieldValueType, inputFieldProperties...>  inputFields );
 
Header function for Intrepid2::Util class and other utility functions. 
 
Contains definitions of custom data types in Intrepid2. 
 
Header file for small functions used in Intrepid2.