Intrepid2
Classes | Typedefs | Functions
Intrepid2_Basis.hpp File Reference

Header file for the abstract base class Intrepid2::Basis. More...

#include "Intrepid2_ConfigDefs.hpp"
#include "Intrepid2_Types.hpp"
#include "Intrepid2_Utils.hpp"
#include "Intrepid2_BasisValues.hpp"
#include "Intrepid2_CellTopologyTags.hpp"
#include "Intrepid2_TensorPoints.hpp"
#include "Shards_CellTopology.hpp"
#include "Intrepid2_CellData.hpp"
#include <Teuchos_RCPDecl.hpp>
#include <Kokkos_Core.hpp>
#include <vector>
#include <Intrepid2_BasisDef.hpp>

Go to the source code of this file.

Classes

class  Intrepid2::Basis< DeviceType, OutputType, PointType >
 An abstract base class that defines interface for concrete basis implementations for Finite Element (FEM) and Finite Volume/Finite Difference (FVD) discrete spaces. More...
 
class  Intrepid2::Basis< DeviceType, OutputType, PointType >
 An abstract base class that defines interface for concrete basis implementations for Finite Element (FEM) and Finite Volume/Finite Difference (FVD) discrete spaces. More...
 

Typedefs

template<typename DeviceType = void, typename OutputType = double, typename PointType = double>
using Intrepid2::BasisPtr = Teuchos::RCP< Basis< DeviceType, OutputType, PointType > >
 Basis Pointer.
 
template<typename OutputType = double, typename PointType = double>
using Intrepid2::HostBasisPtr = BasisPtr< typename Kokkos::HostSpace::device_type, OutputType, PointType >
 Pointer to a Basis whose device type is on the host (Kokkos::HostSpace::device_type), allowing host access to input and output views, and ensuring host execution of basis evaluation.
 

Functions

KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getFieldRank (const EFunctionSpace spaceType)
 Returns the rank of fields in a function space of the specified type. More...
 
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getOperatorRank (const EFunctionSpace spaceType, const EOperator operatorType, const ordinal_type spaceDim)
 Returns rank of an operator. More...
 
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getOperatorOrder (const EOperator operatorType)
 Returns order of an operator. More...
 
template<EOperator operatorType>
KOKKOS_INLINE_FUNCTION
constexpr ordinal_type 
Intrepid2::getOperatorOrder ()
 
template<ordinal_type spaceDim>
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getDkEnumeration (const ordinal_type xMult, const ordinal_type yMult=-1, const ordinal_type zMult=-1)
 Returns the ordinal of a partial derivative of order k based on the multiplicities of the partials dx, dy, and dz. More...
 
template<ordinal_type spaceDim>
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getPnEnumeration (const ordinal_type p, const ordinal_type q=0, const ordinal_type r=0)
 Returns the index of the term x^p y^q z^r of a polynomial of degree n (p+q+r <= n). In 2D, the terms of a polynomial of degree 2 are ordered as 1, x, y, x^2, xy, y^2. So if p=q=1, the term x^p y^q has index 4 (counting from 0), while p=2, q=0 has index 3. Enumeration goes from 0 to ( (n+spaceDim) choose (spaceDim) )-1. More...
 
template<typename value_type >
KOKKOS_INLINE_FUNCTION void Intrepid2::getJacobyRecurrenceCoeffs (value_type &an, value_type &bn, value_type &cn, const ordinal_type alpha, const ordinal_type beta, const ordinal_type n)
 function for computing the Jacobi recurrence coefficients so that More...
 
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getDkCardinality (const EOperator operatorType, const ordinal_type spaceDim)
 Returns multiplicities of dx, dy, and dz based on the enumeration of the partial derivative, its order and the space dimension. Inverse of the getDkEnumeration() method. More...
 
template<EOperator operatorType, ordinal_type spaceDim>
KOKKOS_INLINE_FUNCTION
constexpr ordinal_type 
Intrepid2::getDkCardinality ()
 
template<ordinal_type spaceDim>
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getPnCardinality (ordinal_type n)
 Returns cardinality of Polynomials of order n (P^n). More...
 
template<ordinal_type spaceDim, ordinal_type n>
KOKKOS_INLINE_FUNCTION
constexpr ordinal_type 
Intrepid2::getPnCardinality ()
 
template<typename outputValueViewType , typename inputPointViewType >
void Intrepid2::getValues_HGRAD_Args (const outputValueViewType outputValues, const inputPointViewType inputPoints, const EOperator operatorType, const shards::CellTopology cellTopo, const ordinal_type basisCard)
 Runtime check of the arguments for the getValues method in an HGRAD-conforming FEM basis. Verifies that ranks and dimensions of ViewType input and output arrays are consistent with the specified operatorType. More...
 
template<typename outputValueViewType , typename inputPointViewType >
void Intrepid2::getValues_HCURL_Args (const outputValueViewType outputValues, const inputPointViewType inputPoints, const EOperator operatorType, const shards::CellTopology cellTopo, const ordinal_type basisCard)
 Runtime check of the arguments for the getValues method in an HCURL-conforming FEM basis. Verifies that ranks and dimensions of ViewType input and output arrays are consistent with the specified operatorType. More...
 
template<typename outputValueViewType , typename inputPointViewType >
void Intrepid2::getValues_HDIV_Args (const outputValueViewType outputValues, const inputPointViewType inputPoints, const EOperator operatorType, const shards::CellTopology cellTopo, const ordinal_type basisCard)
 Runtime check of the arguments for the getValues method in an HDIV-conforming FEM basis. Verifies that ranks and dimensions of ViewType input and output arrays are consistent with the specified operatorType. More...
 
template<typename outputValueViewType , typename inputPointViewType >
void Intrepid2::getValues_HVOL_Args (const outputValueViewType outputValues, const inputPointViewType inputPoints, const EOperator operatorType, const shards::CellTopology cellTopo, const ordinal_type basisCard)
 Runtime check of the arguments for the getValues method in an HVOL-conforming FEM basis. Verifies that ranks and dimensions of ViewType input and output arrays are consistent with the specified operatorType. More...
 

Detailed Description

Header file for the abstract base class Intrepid2::Basis.

Author
Created by P. Bochev and D. Ridzal. Kokkorized by Kyungjoo Kim

Definition in file Intrepid2_Basis.hpp.