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

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

#include <Intrepid2_HierarchicalBasis_HDIV_PYR.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 OutputScratchView2D = 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

 Hierarchical_HDIV_PYR_Functor (EOperator opType, OutputFieldType output, InputPointsType inputPoints, int polyOrder)
 
KOKKOS_INLINE_FUNCTION void cross (Kokkos::Array< OutputScalar, 3 > &c, const Kokkos::Array< OutputScalar, 3 > &a, const Kokkos::Array< OutputScalar, 3 > &b) const
 cross product: c = a x b
 
KOKKOS_INLINE_FUNCTION void dot (OutputScalar &c, const Kokkos::Array< OutputScalar, 3 > &a, const Kokkos::Array< OutputScalar, 3 > &b) const
 dot product: c = a b
 
KOKKOS_INLINE_FUNCTION OutputScalar dot (const Kokkos::Array< OutputScalar, 3 > &a, const Kokkos::Array< OutputScalar, 3 > &b) const
 
KOKKOS_INLINE_FUNCTION void E_E (Kokkos::Array< OutputScalar, 3 > &EE, const ordinal_type &i, const OutputScratchView &PHom, const PointScalar &s0, const PointScalar &s1, const Kokkos::Array< PointScalar, 3 > &s0_grad, const Kokkos::Array< PointScalar, 3 > &s1_grad) const
 
KOKKOS_INLINE_FUNCTION void E_E_CURL (Kokkos::Array< OutputScalar, 3 > &curl_EE, const ordinal_type &i, const OutputScratchView &PHom, const PointScalar &s0, const PointScalar &s1, const Kokkos::Array< PointScalar, 3 > &s0_grad, const Kokkos::Array< PointScalar, 3 > &s1_grad) const
 
KOKKOS_INLINE_FUNCTION void V_QUAD (Kokkos::Array< OutputScalar, 3 > &VQUAD, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &PHom_s, const PointScalar &s0, const PointScalar &s1, const Kokkos::Array< PointScalar, 3 > &s0_grad, const Kokkos::Array< PointScalar, 3 > &s1_grad, const OutputScratchView &PHom_t, const PointScalar &t0, const PointScalar &t1, const Kokkos::Array< PointScalar, 3 > &t0_grad, const Kokkos::Array< PointScalar, 3 > &t1_grad) const
 
KOKKOS_INLINE_FUNCTION void E_QUAD (Kokkos::Array< OutputScalar, 3 > &EQUAD, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &HomPi_s01, const PointScalar &s0, const PointScalar &s1, const Kokkos::Array< PointScalar, 3 > &s0_grad, const Kokkos::Array< PointScalar, 3 > &s1_grad, const OutputScratchView &HomLi_t01) const
 
KOKKOS_INLINE_FUNCTION void E_QUAD_CURL (Kokkos::Array< OutputScalar, 3 > &EQUAD_CURL, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &HomPi_s01, const PointScalar &s0, const PointScalar &s1, const Kokkos::Array< PointScalar, 3 > &s0_grad, const Kokkos::Array< PointScalar, 3 > &s1_grad, const OutputScratchView &HomPj_t01, const OutputScratchView &HomLj_t01, const OutputScratchView &HomLj_dt_t01, const Kokkos::Array< PointScalar, 3 > &t0_grad, const Kokkos::Array< PointScalar, 3 > &t1_grad) const
 
KOKKOS_INLINE_FUNCTION void V_LEFT_TRI (Kokkos::Array< OutputScalar, 3 > &VLEFTTRI, const OutputScalar &phi_i, const Kokkos::Array< OutputScalar, 3 > &phi_i_grad, const OutputScalar &phi_j, const Kokkos::Array< OutputScalar, 3 > &phi_j_grad, const OutputScalar &t0, const Kokkos::Array< OutputScalar, 3 > &t0_grad) const
 See Fuentes et al. (p. 455), definition of V_{ij}^{}.
 
KOKKOS_INLINE_FUNCTION void V_RIGHT_TRI (Kokkos::Array< OutputScalar, 3 > &VRIGHTTRI, const OutputScalar &mu1, const Kokkos::Array< OutputScalar, 3 > &mu1_grad, const OutputScalar &phi_i, const Kokkos::Array< OutputScalar, 3 > &phi_i_grad, const OutputScalar &t0, const Kokkos::Array< OutputScalar, 3 > &t0_grad) const
 See Fuentes et al. (p. 455), definition of V_{ij}^{}.
 
KOKKOS_INLINE_FUNCTION void V_TRI (Kokkos::Array< OutputScalar, 3 > &VTRI, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &P, const OutputScratchView &P_2ip1, const Kokkos::Array< PointScalar, 3 > &vectorWeight) const
 
KOKKOS_INLINE_FUNCTION void V_TRI_DIV (OutputScalar &VTRI_DIV, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &P, const OutputScratchView &P_2ip1, const OutputScalar &divWeight) const
 
KOKKOS_INLINE_FUNCTION void V_TRI_B42 (Kokkos::Array< OutputScalar, 3 > &VTRI_mus0_mus1_s2_over_mu, const Kokkos::Array< OutputScalar, 3 > &VTRI_00_s0_s1_s2, const Kokkos::Array< OutputScalar, 3 > &EE_0_s0_s1, const OutputScalar &s2, const OutputScalar &mu, const Kokkos::Array< OutputScalar, 3 > &mu_grad, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &P_mus0_mus1, const OutputScratchView &P_2ip1_mus0pmus1_s2) const
 See Equation (B.42) in Fuentes et al. Computes 1/mu V^{tri}_ij(mu s0, mu s1, s2).
 
KOKKOS_INLINE_FUNCTION void V_TRI_B42_DIV (OutputScalar &div_VTRI_mus0_mus1_s2_over_mu, const Kokkos::Array< OutputScalar, 3 > &VTRI_00_s0_s1_s2, const Kokkos::Array< OutputScalar, 3 > &EE_0_s0_s1, const OutputScalar &s2, const Kokkos::Array< OutputScalar, 3 > &s2_grad, const OutputScalar &mu, const Kokkos::Array< OutputScalar, 3 > &mu_grad, const ordinal_type &i, const ordinal_type &j, const OutputScratchView &P_mus0_mus1, const OutputScratchView &P_2ip1_mus0pmus1_s2) const
 See Equation (B.42) in Fuentes et al. Computes 1/mu V^{tri}_ij(mu s0, mu s1, s2).
 
KOKKOS_INLINE_FUNCTION void computeFaceVectorWeight (Kokkos::Array< OutputScalar, 3 > &vectorWeight, const PointScalar &s0, const Kokkos::Array< PointScalar, 3 > &s0Grad, const PointScalar &s1, const Kokkos::Array< PointScalar, 3 > &s1Grad, const PointScalar &s2, const Kokkos::Array< PointScalar, 3 > &s2Grad) const
 
KOKKOS_INLINE_FUNCTION void computeFaceDivWeight (OutputScalar &divWeight, const Kokkos::Array< PointScalar, 3 > &s0Grad, const Kokkos::Array< PointScalar, 3 > &s1Grad, const Kokkos::Array< PointScalar, 3 > &s2Grad) const
 
KOKKOS_INLINE_FUNCTION void computeGradHomLi (Kokkos::Array< OutputScalar, 3 > &HomLi_grad, const ordinal_type i, const OutputScratchView &HomPi_s0s1, const OutputScratchView &HomLi_dt_s0s1, const Kokkos::Array< PointScalar, 3 > &s0Grad, const Kokkos::Array< PointScalar, 3 > &s1Grad) 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_
 
int polyOrder_
 
bool useCGBasis_
 
int numFields_
 
int numPoints_
 
size_t fad_size_output_
 
const int edge_start_ [numEdges] = {0,1,2,3,0,1,2,3}
 
const int edge_end_ [numEdges] = {1,2,3,0,4,4,4,4}
 
const int tri_face_vertex_0 [numTriFaces] = {0,1,3,0}
 
const int tri_face_vertex_1 [numTriFaces] = {1,2,2,3}
 
const int tri_face_vertex_2 [numTriFaces] = {4,4,4,4}
 

Static Public Attributes

static const int numVertices = 5
 
static const int numMixedEdges = 4
 
static const int numTriEdges = 4
 
static const int numEdges = 8
 
static const int numQuadFaces = 1
 
static const int numTriFaces = 4
 

Detailed Description

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

Functor for computing values for the HierarchicalBasis_HDIV_PYR class.

This functor is not intended for use outside of HierarchicalBasis_HDIV_PYR.

Definition at line 47 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

Member Function Documentation

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::E_QUAD ( Kokkos::Array< OutputScalar, 3 > &  EQUAD,
const ordinal_type &  i,
const ordinal_type &  j,
const OutputScratchView &  HomPi_s01,
const PointScalar &  s0,
const PointScalar &  s1,
const Kokkos::Array< PointScalar, 3 > &  s0_grad,
const Kokkos::Array< PointScalar, 3 > &  s1_grad,
const OutputScratchView &  HomLi_t01 
) const
inline

The "quadrilateral face" H(curl) functions defined by Fuentes et al., Appendix E.2., p. 432 Here, HomPi_s01, HomLi_t01 are the homogenized Legendre polynomials [P](s0,s1) and homogenized integrated Legendre polynomials [L](t0,t1), given in Appendix E.1, p. 430

Definition at line 197 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
KOKKOS_INLINE_FUNCTION void Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::V_QUAD ( Kokkos::Array< OutputScalar, 3 > &  VQUAD,
const ordinal_type &  i,
const ordinal_type &  j,
const OutputScratchView &  PHom_s,
const PointScalar &  s0,
const PointScalar &  s1,
const Kokkos::Array< PointScalar, 3 > &  s0_grad,
const Kokkos::Array< PointScalar, 3 > &  s1_grad,
const OutputScratchView &  PHom_t,
const PointScalar &  t0,
const PointScalar &  t1,
const Kokkos::Array< PointScalar, 3 > &  t0_grad,
const Kokkos::Array< PointScalar, 3 > &  t1_grad 
) const
inline

The "quadrilateral face" H(div) functions defined by Fuentes et al., Appendix E.2., p. 433 Here, PHom are the homogenized Legendre polynomials [P](s0,s1) and [P](t0,t1), given in Appendix E.1, p. 430

Definition at line 174 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

References Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::cross().


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