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"
107 namespace Intrepid2 {
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);
273 template<
typename OutputViewType,
274 typename subcellBasisType,
275 typename cellBasisType>
279 const subcellBasisType subcellBasis,
280 const cellBasisType cellBasis,
281 const ordinal_type subcellId,
282 const ordinal_type subcellOrt);
293 template<
typename OutputViewType,
294 typename subcellBasisType,
295 typename cellBasisType>
299 const subcellBasisType subcellBasis,
300 const cellBasisType cellBasis,
301 const ordinal_type subcellId,
302 const ordinal_type subcellOrt);
313 template<
typename OutputViewType,
314 typename subcellBasisType,
315 typename cellBasisType>
319 const subcellBasisType subcellBasis,
320 const cellBasisType cellBasis,
321 const ordinal_type subcellId,
322 const ordinal_type subcellOrt);
329 template<
typename ExecSpaceType>
343 template<
typename BasisType>
351 template<
typename BasisType>
354 BasisType
const *cellBasis);
356 template<
typename BasisType>
359 BasisType
const *cellBasis);
361 template<
typename BasisType>
364 BasisType
const *cellBasis);
366 template<
typename BasisType>
369 BasisType
const *cellBasis);
375 template<
typename BasisType>
378 BasisType
const *cellBasis);
380 template<
typename BasisType>
383 BasisType
const *cellBasis);
385 template<
typename BasisType>
388 BasisType
const *cellBasis);
390 template<
typename BasisType>
393 BasisType
const *cellBasis);
399 template<
typename BasisType>
402 BasisType
const *cellBasis);
405 template<
typename BasisType>
408 BasisType
const *cellBasis);
410 template<
typename BasisType>
413 BasisType
const *cellBasis);
415 template<
typename BasisType>
418 BasisType
const *cellBasis);
426 const ordinal_type edgeId);
430 const ordinal_type faceId);
434 const ordinal_type faceId);
441 template<
typename BasisType>
453 template<
typename ptViewType>
454 KOKKOS_INLINE_FUNCTION
463 template<
typename elemOrtValueType,
class ...elemOrtProperties,
464 typename elemNodeValueType,
class ...elemNodeProperties>
467 getOrientation( Kokkos::DynRankView<elemOrtValueType,elemOrtProperties...> elemOrts,
468 const Kokkos::DynRankView<elemNodeValueType,elemNodeProperties...> elemNodes,
469 const shards::CellTopology cellTopo);
477 template<
typename outputValueType,
class ...outputProperties,
478 typename inputValueType,
class ...inputProperties,
479 typename ortValueType,
class ...ortProperties,
484 const Kokkos::DynRankView<inputValueType, inputProperties...> input,
485 const Kokkos::DynRankView<ortValueType, ortProperties...> orts,
486 const BasisType* basis);
488 template<
typename ExecutionSpaceType,
typename dofCoordsValueType,
489 typename dofCoeffsValueType,
typename BasisType>
495 const BasisType& basis,
496 EPointType pointType = POINTTYPE_EQUISPACED);
498 template<
typename dofCoordsValueType,
class ...dofCoordsProperties,
499 typename dofCoeffsValueType,
class ...dofCoeffsProperties,
500 typename ortValueType,
class ...ortProperties,
504 getModifiedDofs( Kokkos::DynRankView<dofCoordsValueType,dofCoordsProperties...> orientedDofCoords,
505 Kokkos::DynRankView<dofCoeffsValueType,dofCoeffsProperties...> orientedDofCoeffs,
506 const Kokkos::DynRankView<ortValueType, ortProperties...> orts,
507 const BasisType& basis,
508 EPointType pointType = POINTTYPE_EQUISPACED);
Stateless classes that act as factories for two families of hierarchical bases. HierarchicalBasisFami...
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.
Stateless class that acts as a factory for a family of nodal bases (hypercube topologies only at this...
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.