49 #ifndef __INTREPID2_REALSPACETOOLS_HPP__
50 #define __INTREPID2_REALSPACETOOLS_HPP__
52 #include "Intrepid2_ConfigDefs.hpp"
57 #include "Kokkos_Core.hpp"
78 template<
typename ExecSpaceType =
void>
92 template<
typename inVecValueType,
class ...inVecProperties>
93 KOKKOS_INLINE_FUNCTION
95 vectorNorm(
const Kokkos::DynRankView<inVecValueType,inVecProperties...> inVec,
96 const ENorm normType );
107 template<
typename inMatValueType,
class ...inMatProperties>
108 KOKKOS_INLINE_FUNCTION
109 static inMatValueType
110 det(
const Kokkos::DynRankView<inMatValueType,inMatProperties...> inMat );
122 template<
typename inVec1ValueType,
class ...inVec1Properties,
123 typename inVec2ValueType,
class ...inVec2Properties>
124 KOKKOS_INLINE_FUNCTION
125 static inVec1ValueType
126 dot(
const Kokkos::DynRankView<inVec1ValueType,inVec1Properties...> inVec1,
127 const Kokkos::DynRankView<inVec2ValueType,inVec2Properties...> inVec2 );
137 template<
typename outputValueType,
class ...outputProperties,
138 typename inputValueType,
class ...inputProperties>
141 const Kokkos::DynRankView<inputValueType, inputProperties...> input );
153 template<
typename outputValueType,
class ...outputProperties,
154 typename inputValueType,
class ...inputProperties>
156 clone( Kokkos::DynRankView<outputValueType,outputProperties...> output,
157 const Kokkos::DynRankView<inputValueType,inputProperties...> input );
168 template<
typename absArrayValueType,
class ...absArrayProperties,
169 typename inArrayValueType,
class ...inArrayProperties>
171 absval( Kokkos::DynRankView<absArrayValueType,absArrayProperties...> absArray,
172 const Kokkos::DynRankView<inArrayValueType, inArrayProperties...> inArray );
179 template<
typename inoutArrayValueType,
class ...inoutArrayProperties>
181 absval( Kokkos::DynRankView<inoutArrayValueType,inoutArrayProperties...> inoutArray );
197 template<
typename normArrayValueType,
class ...normArrayProperties,
198 typename inVecValueType,
class ...inVecProperties>
200 vectorNorm( Kokkos::DynRankView<normArrayValueType,normArrayProperties...> normArray,
201 const Kokkos::DynRankView<inVecValueType, inVecProperties...> inVecs,
202 const ENorm normType );
218 template<
typename transposeMatValueType,
class ...transposeMatProperties,
219 typename inMatValueType,
class ...inMatProperties>
221 transpose( Kokkos::DynRankView<transposeMatValueType,transposeMatProperties...> transposeMats,
222 const Kokkos::DynRankView<inMatValueType, inMatProperties...> inMats );
239 template<
typename inverseMatValueType,
class ...inverseMatProperties,
240 typename inMatValueType,
class ...inMatProperties>
242 inverse( Kokkos::DynRankView<inverseMatValueType,inverseMatProperties...> inverseMats,
243 const Kokkos::DynRankView<inMatValueType, inMatProperties...> inMats );
260 template<
typename detArrayValueType,
class ...detArrayProperties,
261 typename inMatValueType,
class ...inMatProperties>
263 det( Kokkos::DynRankView<detArrayValueType,detArrayProperties...> detArray,
264 const Kokkos::DynRankView<inMatValueType, inMatProperties...> inMats );
277 template<
typename sumArrayValueType,
class ...sumArrayProperties,
278 typename inArray1ValueType,
class ...inArray1Properties,
279 typename inArray2ValueType,
class ...inArray2Properties>
281 add( Kokkos::DynRankView<sumArrayValueType,sumArrayProperties...> sumArray,
282 const Kokkos::DynRankView<inArray1ValueType,inArray1Properties...> inArray1,
283 const Kokkos::DynRankView<inArray2ValueType,inArray2Properties...> inArray2 );
295 template<
typename inoutSumArrayValueType,
class ...inoutSumArrayProperties,
296 typename inArrayValueType,
class ...inArrayProperties>
298 add( Kokkos::DynRankView<inoutSumArrayValueType,inoutSumArrayProperties...> inoutSumArray,
299 const Kokkos::DynRankView<inArrayValueType, inArrayProperties...> inArray );
312 template<
typename diffArrayValueType,
class ...diffArrayProperties,
313 typename inArray1ValueType,
class ...inArray1Properties,
314 typename inArray2ValueType,
class ...inArray2Properties>
316 subtract( Kokkos::DynRankView<diffArrayValueType,diffArrayProperties...> diffArray,
317 const Kokkos::DynRankView<inArray1ValueType, inArray1Properties...> inArray1,
318 const Kokkos::DynRankView<inArray2ValueType, inArray2Properties...> inArray2 );
330 template<
typename inoutDiffArrayValueType,
class ...inoutDiffArrayProperties,
331 typename inArrayValueType,
class ...inArrayProperties>
333 subtract( Kokkos::DynRankView<inoutDiffArrayValueType,inoutDiffArrayProperties...> diffArray,
334 const Kokkos::DynRankView<inArrayValueType, inArrayProperties...> inArray );
347 template<
typename ValueType,
348 typename scaledArrayValueType,
class ...scaledArrayProperties,
349 typename inArrayValueType,
class ...inArrayProperties>
351 scale( Kokkos::DynRankView<scaledArrayValueType,scaledArrayProperties...> scaledArray,
352 const Kokkos::DynRankView<inArrayValueType, inArrayProperties...> inArray,
353 const ValueType alpha );
361 template<
typename ValueType,
362 typename inoutScaledArrayValueType,
class ...inoutScaledArrayProperties>
364 scale( Kokkos::DynRankView<inoutScaledArrayValueType,inoutScaledArrayProperties...> inoutScaledArray,
365 const ValueType alpha );
381 template<
typename dotArrayValueType,
class ...dotArrayProperties,
382 typename inVec1ValueType,
class ...inVec1Properties,
383 typename inVec2ValueType,
class ...inVec2Properties>
385 dot( Kokkos::DynRankView<dotArrayValueType,dotArrayProperties...> dotArray,
386 const Kokkos::DynRankView<inVec1ValueType, inVec1Properties...> inVecs1,
387 const Kokkos::DynRankView<inVec2ValueType, inVec2Properties...> inVecs2 );
407 template<
typename matVecValueType,
class ...matVecProperties,
408 typename inMatValueType,
class ...inMatProperties,
409 typename inVecValueType,
class ...inVecProperties>
411 matvec( Kokkos::DynRankView<matVecValueType,matVecProperties...> matVecs,
412 const Kokkos::DynRankView<inMatValueType, inMatProperties...> inMats,
413 const Kokkos::DynRankView<inVecValueType, inVecProperties...> inVecs );
428 template<
typename vecProdValueType,
class ...vecProdProperties,
429 typename inLeftValueType,
class ...inLeftProperties,
430 typename inRightValueType,
class ...inRightProperties>
432 vecprod( Kokkos::DynRankView<vecProdValueType,vecProdProperties...> vecProd,
433 const Kokkos::DynRankView<inLeftValueType, inLeftProperties...> inLeft,
434 const Kokkos::DynRankView<inRightValueType,inRightProperties...> inRight );
Header function for Intrepid2::Util class and other utility functions.
Contains definitions of custom data types in Intrepid2.