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"
104#include "Teuchos_LAPACK.hpp"
128 template<
typename ValueType>
129 KOKKOS_INLINE_FUNCTION
133 const ordinal_type ort);
143 template<
typename ValueType>
144 KOKKOS_INLINE_FUNCTION
150 const ordinal_type ort);
160 template<
typename ValueType>
161 KOKKOS_INLINE_FUNCTION
167 const ordinal_type ort);
176 template<
typename outPointViewType,
177 typename refPointViewType>
181 const refPointViewType refPoints,
182 const shards::CellTopology cellTopo,
183 const ordinal_type cellOrt = 0);
192 template<
typename outPointViewType,
193 typename refPointViewType>
194 KOKKOS_INLINE_FUNCTION
197 const refPointViewType refPoints,
198 const unsigned cellTopoKey,
199 const ordinal_type cellOrt = 0);
207 template<
typename JacobianViewType>
208 KOKKOS_INLINE_FUNCTION
217 template<
typename JacobianViewType>
218 KOKKOS_INLINE_FUNCTION
227 template<
typename JacobianViewType>
228 KOKKOS_INLINE_FUNCTION
239 template<
typename JacobianViewType>
243 const shards::CellTopology cellTopo,
244 const ordinal_type cellOrt);
252 template<
typename JacobianViewType>
253 KOKKOS_INLINE_FUNCTION
256 const unsigned cellTopoKey,
257 const ordinal_type cellOrt);
267 template<
typename TanViewType,
typename ParamViewType>
268 KOKKOS_INLINE_FUNCTION
270 const ParamViewType subCellParametrization,
271 const unsigned subcellTopoKey,
272 const ordinal_type subCellOrd,
273 const ordinal_type ort);
286 template<
typename TanNormViewType,
typename ParamViewType>
287 KOKKOS_INLINE_FUNCTION
289 const ParamViewType subCellParametrization,
290 const unsigned subcellTopoKey,
291 const ordinal_type subCellOrd,
292 const ordinal_type ort);
304 template<
typename coordsViewType,
typename subcellCoordsViewType,
typename ParamViewType>
305 KOKKOS_INLINE_FUNCTION
307 const subcellCoordsViewType subCellCoords,
308 const ParamViewType subcellParametrization,
309 const unsigned subcellTopoKey,
310 const ordinal_type subCellOrd,
311 const ordinal_type ort);
328 template<
typename OutputViewType,
329 typename subcellBasisHostType,
330 typename cellBasisHostType>
334 const subcellBasisHostType& subcellBasis,
335 const cellBasisHostType& cellBasis,
336 const ordinal_type subcellId,
337 const ordinal_type subcellOrt);
349 template<
typename OutputViewType,
350 typename subcellBasisHostType,
351 typename cellBasisHostType>
355 const subcellBasisHostType& subcellBasis,
356 const cellBasisHostType& cellBasis,
357 const ordinal_type subcellId,
358 const ordinal_type subcellOrt);
371 template<
typename OutputViewType,
372 typename subcellBasisHostType,
373 typename cellBasisHostType>
377 const subcellBasisHostType& subcellBasis,
378 const cellBasisHostType& cellBasis,
379 const ordinal_type subcellId,
380 const ordinal_type subcellOrt);
391 template<
typename OutputViewType,
392 typename cellBasisHostType>
396 const cellBasisHostType& cellBasis,
397 const ordinal_type cellOrt);
405 template<
typename DeviceType>
420 template<
typename BasisHostType>
427 template<
typename BasisHostType>
430 BasisHostType
const *cellBasis);
434 template<
typename BasisHostType>
437 BasisHostType
const *cellBasis);
441 template<
typename BasisHostType>
444 BasisHostType
const *cellBasis);
448 template<
typename BasisHostType>
451 BasisHostType
const *cellBasis);
458 template<
typename BasisType>
473 template<
typename elemOrtValueType,
class ...elemOrtProperties,
474 typename elemNodeValueType,
class ...elemNodeProperties>
477 getOrientation(Kokkos::DynRankView<elemOrtValueType,elemOrtProperties...> elemOrts,
478 const Kokkos::DynRankView<elemNodeValueType,elemNodeProperties...> elemNodes,
479 const shards::CellTopology cellTopo,
480 bool isSide =
false);
489 template<
typename outputValueType,
class ...outputProperties,
490 typename inputValueType,
class ...inputProperties,
491 typename OrientationViewType,
496 const Kokkos::DynRankView<inputValueType, inputProperties...> input,
497 const OrientationViewType orts,
498 const BasisType * basis);
509#include "Intrepid2_OrientationToolsDefCoeffMatrix_HCURL.hpp"
Header file for the abstract base class Intrepid2::Basis.
Header file for the Intrepid2::Basis_HCURL_HEX_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_HEX_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_QUAD_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_QUAD_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_TET_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_TET_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_TRI_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_TRI_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_WEDGE_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_HEX_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_HEX_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_QUAD_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_QUAD_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_TET_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_TET_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_TRI_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_TRI_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_WEDGE_I1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_HEX_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_LINE_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_QUAD_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TET_Cn_FEM class.
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_HVOL_TRI_Cn_FEM class.
Stateless classes that act as factories for two families of hierarchical bases. HierarchicalBasisFami...
Stateless class that acts as a factory for a family of nodal bases (hypercube topologies only at this...
Contains definitions of custom data types in Intrepid2.
Header function for Intrepid2::Util class and other utility functions.