Intrepid2
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Intrepid2::Hierarchical_HDIV_TET_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType > Class Template Reference

Functor for computing values for the HierarchicalBasis_HDIV_TET class. More...

#include <Intrepid2_HierarchicalBasis_HDIV_TET.hpp>

Public Types

using ExecutionSpace = typename DeviceType::execution_space
 
using ScratchSpace = typename ExecutionSpace::scratch_memory_space
 
using OutputScratchView = Kokkos::View< OutputScalar *, ScratchSpace, Kokkos::MemoryTraits< Kokkos::Unmanaged >>
 
using PointScratchView = Kokkos::View< PointScalar *, ScratchSpace, Kokkos::MemoryTraits< Kokkos::Unmanaged >>
 
using TeamPolicy = Kokkos::TeamPolicy< ExecutionSpace >
 
using TeamMember = typename TeamPolicy::member_type
 

Public Member Functions

KOKKOS_INLINE_FUNCTION ordinal_type dofOrdinalForFace (const ordinal_type &faceOrdinal, const ordinal_type &zeroBasedFaceFamily, const ordinal_type &i, const ordinal_type &j) const
 
 Hierarchical_HDIV_TET_Functor (EOperator opType, OutputFieldType output, InputPointsType inputPoints, int polyOrder)
 
KOKKOS_INLINE_FUNCTION void computeFaceJacobi (OutputScratchView &P_2ip1, const ordinal_type &zeroBasedFaceOrdinal, const ordinal_type &i, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void computeFaceJacobiForInterior (OutputScratchView &P_2ip1, const ordinal_type &zeroBasedInteriorFamilyOrdinal, const ordinal_type &i, const PointScalar *lambda) const
 The face functions we compute for interior blending can have a different orientation than the ones used for face functions (specifically, for interior family III, we have 230 instead of 023).
 
KOKKOS_INLINE_FUNCTION void computeFaceLegendre (OutputScratchView &P, const ordinal_type &zeroBasedFaceOrdinal, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void computeFaceLegendreForInterior (OutputScratchView &P, const ordinal_type &zeroBasedInteriorFamilyOrdinal, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void computeFaceVectorWeight (OutputScalar &vectorWeight_x, OutputScalar &vectorWeight_y, OutputScalar &vectorWeight_z, const ordinal_type &zeroBasedFaceOrdinal, const PointScalar *lambda, const PointScalar *lambda_dx, const PointScalar *lambda_dy, const PointScalar *lambda_dz) const
 
KOKKOS_INLINE_FUNCTION void faceFunctionValue (OutputScalar &value_x, OutputScalar &value_y, OutputScalar &value_z, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &P, const OutputScratchView &P_2ip1, const OutputScalar &vectorWeight_x, const OutputScalar &vectorWeight_y, const OutputScalar &vectorWeight_z, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void computeFaceDivWeight (OutputScalar &divWeight, const ordinal_type &zeroBasedFaceOrdinal, const PointScalar *lambda_dx, const PointScalar *lambda_dy, const PointScalar *lambda_dz) const
 
KOKKOS_INLINE_FUNCTION void computeInteriorIntegratedJacobi (OutputScratchView &L_2ipjp1, const ordinal_type &i, const ordinal_type &j, const ordinal_type &zeroBasedFamilyOrdinal, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void computeInteriorJacobi (OutputScratchView &P_2ipjp1, const ordinal_type &i, const ordinal_type &j, const ordinal_type &zeroBasedFamilyOrdinal, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void faceFunctionDiv (OutputScalar &divValue, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &P, const OutputScratchView &P_2ip1, const OutputScalar &divWeight, const PointScalar *lambda) const
 
KOKKOS_INLINE_FUNCTION void gradInteriorIntegratedJacobi (OutputScalar &L_2ipjp1_dx, OutputScalar &L_2ipjp1_dy, OutputScalar &L_2ipjp1_dz, const ordinal_type &zeroBasedFamilyOrdinal, const ordinal_type &j, const ordinal_type &k, const OutputScratchView &P_2ipjp1, const PointScalar *lambda, const PointScalar *lambda_dx, const PointScalar *lambda_dy, const PointScalar *lambda_dz) const
 
KOKKOS_INLINE_FUNCTION void interiorFunctionDiv (OutputScalar &outputDiv, OutputScalar &L_2ipjp1_k, OutputScalar &faceDiv, OutputScalar &L_2ipjp1_k_dx, OutputScalar &L_2ipjp1_k_dy, OutputScalar &L_2ipjp1_k_dz, OutputScalar &faceValue_x, OutputScalar &faceValue_y, OutputScalar &faceValue_z) const
 
KOKKOS_INLINE_FUNCTION void operator() (const TeamMember &teamMember) const
 
size_t team_shmem_size (int team_size) const
 

Public Attributes

EOperator opType_
 
OutputFieldType output_
 
InputPointsType inputPoints_
 
ordinal_type polyOrder_
 
ordinal_type numFields_
 
ordinal_type numPoints_
 
size_t fad_size_output_
 
const ordinal_type face_vertices [numFaces *numVerticesPerFace]
 
const ordinal_type numFaceFunctionsPerFace_
 
const ordinal_type numFaceFunctions_
 
const ordinal_type numInteriorFunctionsPerFamily_
 
const ordinal_type numInteriorFunctions_
 
const ordinal_type faceOrdinalForInterior_ [numInteriorFamilies] = {0,2,3}
 
const ordinal_type faceFamilyForInterior_ [numInteriorFamilies] = {0,0,1}
 
const ordinal_type interiorCoordinateOrdinal_ [numInteriorFamilies] = {3,0,1}
 
const ordinal_type interior_face_family_start_ [numInteriorFamilies] = {0,0,1}
 
const ordinal_type interior_face_family_middle_ [numInteriorFamilies] = {1,1,2}
 
const ordinal_type interior_face_family_end_ [numInteriorFamilies] = {2,2,0}
 

Static Public Attributes

static constexpr ordinal_type numVertices = 4
 
static constexpr ordinal_type numFaces = 4
 
static constexpr ordinal_type numVerticesPerFace = 3
 
static constexpr ordinal_type numInteriorFamilies = 3
 

Detailed Description

template<class DeviceType, class OutputScalar, class PointScalar, class OutputFieldType, class InputPointsType>
class Intrepid2::Hierarchical_HDIV_TET_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >

Functor for computing values for the HierarchicalBasis_HDIV_TET class.

This functor is not intended for use outside of HierarchicalBasis_HDIV_TET.

Definition at line 69 of file Intrepid2_HierarchicalBasis_HDIV_TET.hpp.

Member Data Documentation

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const ordinal_type Intrepid2::Hierarchical_HDIV_TET_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::face_vertices[numFaces *numVerticesPerFace]
Initial value:
= {0,1,2,
0,1,3,
1,2,3,
0,2,3
}

Definition at line 95 of file Intrepid2_HierarchicalBasis_HDIV_TET.hpp.


The documentation for this class was generated from the following file: