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 \cdot 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}^{\trianglelefteq}.
 
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}^{\trianglerighteq}.
 
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 Typedef Documentation

◆ ExecutionSpace

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::ExecutionSpace = typename DeviceType::execution_space

Definition at line 49 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ OutputScratchView

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::OutputScratchView = Kokkos::View<OutputScalar*,ScratchSpace,Kokkos::MemoryTraits<Kokkos::Unmanaged> >

Definition at line 51 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ OutputScratchView2D

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::OutputScratchView2D = Kokkos::View<OutputScalar**,ScratchSpace,Kokkos::MemoryTraits<Kokkos::Unmanaged> >

Definition at line 52 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ PointScratchView

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::PointScratchView = Kokkos::View<PointScalar*, ScratchSpace,Kokkos::MemoryTraits<Kokkos::Unmanaged> >

Definition at line 53 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ ScratchSpace

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::ScratchSpace = typename ExecutionSpace::scratch_memory_space

Definition at line 50 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ TeamMember

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::TeamMember = typename TeamPolicy::member_type

Definition at line 56 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ TeamPolicy

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
using Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::TeamPolicy = Kokkos::TeamPolicy<ExecutionSpace>

Definition at line 55 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

Constructor & Destructor Documentation

◆ Hierarchical_HDIV_PYR_Functor()

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::Hierarchical_HDIV_PYR_Functor ( EOperator  opType,
OutputFieldType  output,
InputPointsType  inputPoints,
int  polyOrder 
)
inline

Definition at line 88 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

Member Function Documentation

◆ computeFaceDivWeight()

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 >::computeFaceDivWeight ( OutputScalar &  divWeight,
const Kokkos::Array< PointScalar, 3 > &  s0Grad,
const Kokkos::Array< PointScalar, 3 > &  s1Grad,
const Kokkos::Array< PointScalar, 3 > &  s2Grad 
) const
inline

Definition at line 425 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ computeFaceVectorWeight()

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 >::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
inline

Definition at line 398 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ computeGradHomLi()

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 >::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
inline

Definition at line 439 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ cross()

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 >::cross ( Kokkos::Array< OutputScalar, 3 > &  c,
const Kokkos::Array< OutputScalar, 3 > &  a,
const Kokkos::Array< OutputScalar, 3 > &  b 
) const
inline

◆ dot() [1/2]

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
KOKKOS_INLINE_FUNCTION OutputScalar Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::dot ( const Kokkos::Array< OutputScalar, 3 > &  a,
const Kokkos::Array< OutputScalar, 3 > &  b 
) const
inline

Definition at line 128 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ dot() [2/2]

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 >::dot ( OutputScalar &  c,
const Kokkos::Array< OutputScalar, 3 > &  a,
const Kokkos::Array< OutputScalar, 3 > &  b 
) const
inline

◆ E_E()

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_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
inline

Definition at line 140 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ E_E_CURL()

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_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
inline

Definition at line 155 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ E_QUAD()

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.

◆ E_QUAD_CURL()

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_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
inline

Definition at line 217 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ operator()()

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 >::operator() ( const TeamMember &  teamMember) const
inline

Definition at line 456 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ team_shmem_size()

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
size_t Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::team_shmem_size ( int  team_size) const
inline

Definition at line 1226 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ V_LEFT_TRI()

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_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
inline

See Fuentes et al. (p. 455), definition of V_{ij}^{\trianglelefteq}.

Definition at line 249 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

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

◆ V_QUAD()

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().

◆ V_RIGHT_TRI()

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_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
inline

See Fuentes et al. (p. 455), definition of V_{ij}^{\trianglerighteq}.

Definition at line 277 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

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

◆ V_TRI()

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_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
inline

Definition at line 293 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ V_TRI_B42()

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_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
inline

See Equation (B.42) in Fuentes et al. Computes 1/mu V^{tri}_ij(mu s0, mu s1, s2).

Definition at line 326 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

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

◆ V_TRI_B42_DIV()

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_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
inline

◆ V_TRI_DIV()

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_TRI_DIV ( OutputScalar &  VTRI_DIV,
const ordinal_type &  i,
const ordinal_type &  j,
const OutputScratchView &  P,
const OutputScratchView &  P_2ip1,
const OutputScalar &  divWeight 
) const
inline

Definition at line 311 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

Member Data Documentation

◆ edge_end_

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::edge_end_[numEdges] = {1,2,3,0,4,4,4,4}

Definition at line 77 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ edge_start_

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::edge_start_[numEdges] = {0,1,2,3,0,1,2,3}

Definition at line 76 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ fad_size_output_

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

Definition at line 67 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ inputPoints_

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

Definition at line 61 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numEdges

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::numEdges = 8
static

Definition at line 72 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numFields_

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

Definition at line 65 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numMixedEdges

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::numMixedEdges = 4
static

Definition at line 70 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numPoints_

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

Definition at line 65 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numQuadFaces

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::numQuadFaces = 1
static

Definition at line 80 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numTriEdges

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::numTriEdges = 4
static

Definition at line 71 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numTriFaces

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::numTriFaces = 4
static

Definition at line 81 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ numVertices

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::numVertices = 5
static

Definition at line 69 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ opType_

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

Definition at line 58 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ output_

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

Definition at line 60 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ polyOrder_

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

Definition at line 63 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ tri_face_vertex_0

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::tri_face_vertex_0[numTriFaces] = {0,1,3,0}

Definition at line 84 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ tri_face_vertex_1

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::tri_face_vertex_1[numTriFaces] = {1,2,2,3}

Definition at line 85 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ tri_face_vertex_2

template<class DeviceType , class OutputScalar , class PointScalar , class OutputFieldType , class InputPointsType >
const int Intrepid2::Hierarchical_HDIV_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >::tri_face_vertex_2[numTriFaces] = {4,4,4,4}

Definition at line 86 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

◆ useCGBasis_

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

Definition at line 64 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.


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