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.