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 "Kokkos_Vector.hpp"
#include "Shards_CellTopology.hpp"
#include <Teuchos_RCPDecl.hpp>
#include <vector>
#include <Intrepid2_BasisDef.hpp>

Go to the source code of this file.

Classes

class  Intrepid2::Basis< Device, outputValueType, pointValueType >
 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.
 
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getOperatorRank (const EFunctionSpace spaceType, const EOperator operatorType, const ordinal_type spaceDim)
 Returns rank of an operator.
 
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getOperatorOrder (const EOperator operatorType)
 Returns order of an operator.
 
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.
 
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.
 
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
 
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getDkCardinality (const EOperator operatorType, const ordinal_type spaceDim)
 Returns cardinality of Dk, i.e., the number of all derivatives of order k.
 
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).
 
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.
 
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.
 
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.
 
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.
 

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.

Typedef Documentation

◆ BasisPtr

template<typename DeviceType = void, typename OutputType = double, typename PointType = double>
using Intrepid2::BasisPtr = Teuchos::RCP<Basis<DeviceType,OutputType,PointType> >

Basis Pointer.

Definition at line 76 of file Intrepid2_Basis.hpp.

◆ HostBasisPtr

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.

Definition at line 81 of file Intrepid2_Basis.hpp.

Function Documentation

◆ getDkCardinality() [1/2]

template<EOperator operatorType, ordinal_type spaceDim>
KOKKOS_INLINE_FUNCTION constexpr ordinal_type Intrepid2::getDkCardinality ( )
constexpr

Definition at line 434 of file Intrepid2_BasisDef.hpp.

◆ getDkCardinality() [2/2]

KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getDkCardinality ( const EOperator operatorType,
const ordinal_type spaceDim )

Returns cardinality of Dk, i.e., the number of all derivatives of order k.

The set of all partial derivatives of order k is isomorphic to the set of all multisets of cardinality k with elements taken from the sets {x}, {x,y}, and {x,y,z} in 1D, 2D, and 3D respectively. For example, the partial derivative $\displaystyle D\{1,2,1\}f = \frac{d^4 f}{dx dy^2 dz}$ maps to the multiset $\{x, y, z\}$ with multiplicities $\{1,2,1\}$. The number of all such multisets is given by the binomial coefficient

\[       \begin{pmatrix} spaceDim + k - 1 \\ spaceDim - 1 \end{pmatrix}              \]

Therefore:

  • in 1D: cardinality = 1
  • in 2D: cardinality = k + 1
  • in 3D: cardinality = (k + 1)*(k + 2)/2
Parameters
operatorType[in] - k-th derivative operator Dk
spaceDim[in] - space dimension
Returns
the number of all partial derivatives of order k

Definition at line 396 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getDkCardinality(), and Intrepid2::getOperatorOrder().

Referenced by Intrepid2::Basis< Device, outputValueType, pointValueType >::allocateOutputView(), Intrepid2::getDkCardinality(), Intrepid2::Basis_TensorBasis< BasisBaseClass >::getOperatorDecomposition(), Intrepid2::Basis_TensorBasis< BasisBaseClass >::getSimpleOperatorDecomposition(), Intrepid2::Basis_TensorBasis< BasisBaseClass >::getValues(), Intrepid2::getValues_HGRAD_Args(), and Intrepid2::getValues_HVOL_Args().

◆ getDkEnumeration()

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.

By default, any implementation of Intrepid2::Basis method returns partials of order k (specified by OPERATOR_Dk) as a multiset ordered by the lexicographical order of the partial derivatives multiplicities. For example, the 10 derivatives of order 3 in 3D are enumerated as:

D3={(3,0,0),(2,1,0),(2,0,1),(1,2,0),(1,1,1),(1,0,2),(0,3,0),(0,2,1),(0,1,2),(0,0,3)}

The enumeration formula for this lexicographical order is

$i()            = 0$ in 1D (only 1 derivative)
$i(yMult)      =yMult$ in 2D
$i(yMult,zMult)=zMult+\sum_{r = 0}^{k-xMult} r$ in 3D

where the order k of Dk is defined by xMult + yMult + zMult. However, xMult is not really needed needed. Enumeration goes from 0 to ( (k+spaceDim-1) choose (spaceDim-1) )-1.

Parameters
yMult[in] - multiplicity of dy (default = -1)
zMult[in] - multiplicity of dz (default = -1)
Returns
the ordinal of partial derivative of order k as function of dx, dy, dz multiplicities

Definition at line 240 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getDkEnumeration().

Referenced by Intrepid2::getDkEnumeration().

◆ getFieldRank()

KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getFieldRank ( const EFunctionSpace spaceType)

Returns the rank of fields in a function space of the specified type.

Field rank is defined as the number of indices needed to specify function value and equals 0, 1,or 2 for scalars, vectors and tensors, respectively. The scalar field spaces in Intrepid are FUNCTION_SPACE_HGRAD and FUNCTION_SPACE_HVOL. The vector field spaces are FUNCTION_SPACE_HCURL, FUNCTION_SPACE_HDIV and FUNCTION_SPACE_VECTOR_HGRAD. FUNCTION_SPACE_TENSOR_HGRAD contains rank-2 tensors.

Parameters
spaceType[in] - function space type
Returns
rank of the fields in the specified function space

Definition at line 67 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getFieldRank(), and Intrepid2::isValidFunctionSpace().

Referenced by Intrepid2::getFieldRank(), Intrepid2::getOperatorRank(), and Intrepid2::Basis_TensorBasis< BasisBaseClass >::getValues().

◆ getJacobyRecurrenceCoeffs()

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

Parameters
an[out] - the a weight for recurrence
bn[out] - the b weight for recurrence
cn[out] - the c weight for recurrence
alpha[in] - the first Jacobi weight
beta[in] - the second Jacobi weight
n[n] - the polynomial degree

The recurrence is

\[
P^{\alpha,\beta}_{n+1} = \left( a_n + b_n x\right) P^{\alpha,\beta}_n - c_n P^{\alpha,\beta}_{n-1}
\]

, where

\[
P^{\alpha,\beta}_0 = 1
\]

Definition at line 270 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getJacobyRecurrenceCoeffs().

Referenced by Intrepid2::getJacobyRecurrenceCoeffs().

◆ getOperatorOrder() [1/2]

template<EOperator operatorType>
KOKKOS_INLINE_FUNCTION constexpr ordinal_type Intrepid2::getOperatorOrder ( )
constexpr

Definition at line 231 of file Intrepid2_BasisDef.hpp.

◆ getOperatorOrder() [2/2]

KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getOperatorOrder ( const EOperator operatorType)

Returns order of an operator.

Parameters
operatorType[in] - type of the operator whose order we want to know
Returns
result ranges from 0 (for OPERATOR_VALUE) to 10 (OPERATOR_D10)

Definition at line 194 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getOperatorOrder(), and Intrepid2::isValidOperator().

Referenced by Intrepid2::getDkCardinality(), Intrepid2::Basis_TensorBasis< BasisBaseClass >::getOperatorDecomposition(), Intrepid2::getOperatorOrder(), Intrepid2::Basis_TensorBasis< BasisBaseClass >::getSimpleOperatorDecomposition(), and Intrepid2::Basis_TensorBasis< BasisBaseClass >::getValues().

◆ getOperatorRank()

KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getOperatorRank ( const EFunctionSpace spaceType,
const EOperator operatorType,
const ordinal_type spaceDim )

Returns rank of an operator.

When an operator acts on a field of a certain rank, the result can be a field with the same or a different rank. Operator rank is defined the difference between the ranks of the output field and the input field:

Rank(OPERATOR) = Rank(OPERATOR(FIELD)) - Rank(FIELD)

Therefore, operator rank allows us to figure out the rank of the result:

Rank(OPERATOR(FIELD)) = Rank(FIELD) + Rank(OPERATOR)

and provides means to size properly arrays for output results. The following table summarizes operator ranks (~ denotes undefined, below slash means 3D). By default, in 1D any operator other than VALUE has rank 1, i.e., GRAD, CURL and DIV reduce to d/dx and Dk are the higher-order derivatives d^k/dx^k. Only scalar functions are allowed in 1D.

|========|======|============================|=========|==========|==========|==========|
| field  | rank |  FUNCTION_SPACE_[type]     |  VALUE  | GRAD, Dk |   CURL   |    DIV   |
|--------|------|----------------------------|---------|----------|----------|----------|
| scalar |   0  |  HGRAD, HVOL               |    0    |     1    | 3-dim/~  |     ~    |
| vector |   1  |  HCURL, HDIV, VECTOR_HGRAD |    0    |     1    | dim - 3  |    -1    |
| tensor |   2  |  TENSOR_HGRAD              |    0    |     1    | dim - 3  |    -1    |
|--------|------|----------------------------|---------|----------|----------|----------|
|   1D   |   0  |  HGRAD, HVOL only          |    0    |     1    |     1    |     1    |
|=======================================================================================|
Parameters
spaceType[in] - function space type
operatorType[in] - the operator acting on the specified function space
spaceDim[in] - spatial dimension
Returns
rank of the operator as defined in the table

Definition at line 96 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getFieldRank(), Intrepid2::getOperatorRank(), and Intrepid2::isValidOperator().

Referenced by Intrepid2::getOperatorRank(), and Intrepid2::Basis_TensorBasis< BasisBaseClass >::getValues().

◆ getPnCardinality() [1/2]

template<ordinal_type spaceDim, ordinal_type n>
KOKKOS_INLINE_FUNCTION constexpr ordinal_type Intrepid2::getPnCardinality ( )
constexpr

Definition at line 456 of file Intrepid2_BasisDef.hpp.

◆ getPnCardinality() [2/2]

template<ordinal_type spaceDim>
KOKKOS_INLINE_FUNCTION ordinal_type Intrepid2::getPnCardinality ( ordinal_type n)

Returns cardinality of Polynomials of order n (P^n).

  • in 1D: cardinality = n+1
  • in 2D: cardinality = (n+1)*(n+2)/2
  • in 3D: cardinality = (n+1)*(n+2)*(n+3)/6
Parameters
n[in] - polynomial order
Returns
dimension of polynomial space

Definition at line 440 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getPnCardinality().

Referenced by Intrepid2::getPnCardinality().

◆ getPnEnumeration()

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.

Parameters
p[in] - exponent of x in the polynomial term x^p y^q z^r
q[in] - exponent of y in the polynomial term x^p y^q z^r (default = 0)
r[in] - exponent of z in the polynomial term x^p y^q z^r (default = 0)
Returns
the index of the term x^p y^q z^r of a polynomial of degree k (p+q+r <= n)

Definition at line 259 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getPnEnumeration().

Referenced by Intrepid2::getPnEnumeration().

◆ getValues_HCURL_Args()

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.

Parameters
outputValues[in] - array of variable rank for the output basis values
inputPoints[in] - rank-2 array with dimensions (P,D) containing the points
operatorType[in] - operator applied to basis functions
cellTopo[in] - base cell topology on which the basis is defined
basisCard[in] - cardinality of the basis

Definition at line 594 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getValues_HCURL_Args().

Referenced by Intrepid2::Basis_HCURL_HEX_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_HEX_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_QUAD_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_QUAD_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_TET_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_TET_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_TRI_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_TRI_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HCURL_WEDGE_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), and Intrepid2::getValues_HCURL_Args().

◆ getValues_HDIV_Args()

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.

Parameters
outputValues[in] - array of variable rank for the output basis values
inputPoints[in] - rank-2 array with dimensions (P,D) containing the points
operatorType[in] - operator applied to basis functions
cellTopo[in] - base cell topology on which the basis is defined
basisCard[in] - cardinality of the basis

Definition at line 679 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getValues_HDIV_Args().

Referenced by Intrepid2::Basis_HDIV_HEX_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_HEX_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_QUAD_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_QUAD_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_TET_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_TET_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_TRI_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_TRI_In_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HDIV_WEDGE_I1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), and Intrepid2::getValues_HDIV_Args().

◆ getValues_HGRAD_Args()

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.

Parameters
outputValues[in] - array of variable rank for the output basis values
inputPoints[in] - rank-2 array with dimensions (P,D) containing the points
operatorType[in] - operator applied to basis functions
cellTopo[in] - base cell topology on which the basis is defined
basisCard[in] - cardinality of the basis

Definition at line 475 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getDkCardinality(), and Intrepid2::getValues_HGRAD_Args().

Referenced by Intrepid2::Basis_HGRAD_HEX_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_HEX_C2_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_HEX_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_LINE_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_LINE_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_LINE_Cn_FEM_JACOBI< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_PYR_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_QUAD_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_QUAD_C2_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_QUAD_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TET_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TET_C2_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TET_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TET_Cn_FEM_ORTH< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TET_COMP12_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TRI_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TRI_C2_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TRI_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_TRI_Cn_FEM_ORTH< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_WEDGE_C1_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HGRAD_WEDGE_C2_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HVOL_C0_FEM< DeviceType, outputValueType, pointValueType >::getValues(), and Intrepid2::getValues_HGRAD_Args().

◆ getValues_HVOL_Args()

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.

Parameters
outputValues[in] - array of variable rank for the output basis values
inputPoints[in] - rank-2 array with dimensions (P,D) containing the points
operatorType[in] - operator applied to basis functions
cellTopo[in] - base cell topology on which the basis is defined
basisCard[in] - cardinality of the basis

Definition at line 740 of file Intrepid2_BasisDef.hpp.

References Intrepid2::getDkCardinality(), and Intrepid2::getValues_HVOL_Args().

Referenced by Intrepid2::Basis_HVOL_HEX_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HVOL_LINE_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HVOL_QUAD_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HVOL_TET_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), Intrepid2::Basis_HVOL_TRI_Cn_FEM< DeviceType, outputValueType, pointValueType >::getValues(), and Intrepid2::getValues_HVOL_Args().