Intrepid2
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

cross product: c = a x b

Definition at line 105 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

Referenced by V_LEFT_TRI(), V_QUAD(), V_RIGHT_TRI(), V_TRI_B42(), and V_TRI_B42_DIV().

◆ 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

dot product: c = a \cdot b

Definition at line 116 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

Referenced by V_TRI_B42_DIV().

◆ 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 1205 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 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 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 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 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

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

Definition at line 362 of file Intrepid2_HierarchicalBasis_HDIV_PYR.hpp.

References cross(), and dot().

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