Intrepid
Classes | Macros | Enumerations | Functions | Variables
Intrepid_Types.hpp File Reference

Contains definitions of custom data types in Intrepid. More...

#include <Teuchos_ScalarTraits.hpp>

Go to the source code of this file.

Classes

struct  Intrepid::CubatureTemplate
 Template for the cubature rules used by Intrepid. Cubature template consists of
cubature points and cubature weights. Intrepid provides a collection of cubature
templates for most standard cell topologies. The templates are defined in reference
coordinates using a standard reference cell for each canonical cell type. Cubature points are always specified by a triple of (X,Y,Z) coordinates even if the cell dimension is less than 3. The unused dimensions should be padded by zeroes. More...
 

Macros

#define INTREPID_VALIDATE(A)   /* empty */
 
#define INTREPID_MAX_ORDER   10
 The maximum reconstruction order.
 
#define INTREPID_MAX_INTEGRATION_POINTS   1001
 The maximum number of integration points for direct cubature rules.
 
#define INTREPID_MAX_CUBATURE_DEGREE_EDGE   61
 The maximum degree of the polynomial that can be integrated exactly by a direct edge rule.
 
#define INTREPID_MAX_CUBATURE_DEGREE_TRI   20
 The maximum degree of the polynomial that can be integrated exactly by a direct triangle rule.
 
#define INTREPID_MAX_CUBATURE_DEGREE_TET   20
 The maximum degree of the polynomial that can be integrated exactly by a direct tetrahedron rule.
 
#define INTREPID_MAX_CUBATURE_DEGREE_PYR   11
 The maximum degree of the polynomial that can be integrated exactly by a direct pyramid rule.
 
#define INTREPID_MAX_DIMENSION   3
 The maximum ambient space dimension.
 
#define INTREPID_MAX_NEWTON   15
 Maximum number of Newton iterations used internally in methods such as computing the action of the inverse reference to physical cell map.
 
#define INTREPID_MAX_DERIVATIVE   10
 Maximum order of derivatives allowed in intrepid.
 

Enumerations

enum  ECoordinates {
  COORDINATES_CARTESIAN =0 , COORDINATES_POLAR , COORDINATES_CYLINDRICAL , COORDINATES_SPHERICAL ,
  COORDINATES_MAX
}
 
enum  ENorm {
  NORM_ONE = 0 , NORM_TWO , NORM_INF , NORM_FRO ,
  NORM_MAX
}
 
enum  EOperator {
  OPERATOR_VALUE = 0 , OPERATOR_GRAD , OPERATOR_CURL , OPERATOR_DIV ,
  OPERATOR_D1 , OPERATOR_D2 , OPERATOR_D3 , OPERATOR_D4 ,
  OPERATOR_D5 , OPERATOR_D6 , OPERATOR_D7 , OPERATOR_D8 ,
  OPERATOR_D9 , OPERATOR_D10 , OPERATOR_MAX
}
 
enum  EFunctionSpace {
  FUNCTION_SPACE_HGRAD = 0 , FUNCTION_SPACE_HCURL , FUNCTION_SPACE_HDIV , FUNCTION_SPACE_HVOL ,
  FUNCTION_SPACE_VECTOR_HGRAD , FUNCTION_SPACE_TENSOR_HGRAD , FUNCTION_SPACE_MAX
}
 
enum  EDiscreteSpace { DISCRETE_SPACE_COMPLETE = 0 , DISCRETE_SPACE_INCOMPLETE , DISCRETE_SPACE_BROKEN , DISCRETE_SPACE_MAX }
 
enum  EPointType { POINTTYPE_EQUISPACED = 0 , POINTTYPE_SPECTRAL , POINTTYPE_SPECTRAL_OPEN , POINTTYPE_WARPBLEND }
 
enum  EBasis {
  BASIS_FEM_DEFAULT = 0 , BASIS_FEM_HIERARCHICAL , BASIS_FEM_FIAT , BASIS_FVD_DEFAULT ,
  BASIS_FVD_COVOLUME , BASIS_FVD_MIMETIC , BASIS_MAX
}
 
enum  ECompEngine { COMP_CPP = 0 , COMP_BLAS , COMP_ENGINE_MAX }
 

Functions

std::string Intrepid::ECoordinatesToString (ECoordinates coords)
 
int Intrepid::isValidCoordinate (ECoordinates coordinateType)
 Verifies validity of a Coordinate enum.
 
std::string Intrepid::ENormToString (ENorm norm)
 
int Intrepid::isValidNorm (ENorm normType)
 Verifies validity of a Norm enum.
 
std::string Intrepid::EOperatorToString (EOperator op)
 
EOperator & Intrepid::operator++ (EOperator &type)
 
EOperator Intrepid::operator++ (EOperator &type, int)
 
EOperator & Intrepid::operator-- (EOperator &type)
 
EOperator Intrepid::operator-- (EOperator &type, int)
 
int Intrepid::isValidOperator (const EOperator operatorType)
 Verifies validity of an operator enum.
 
std::string Intrepid::EFunctionSpaceToString (EFunctionSpace space)
 
int Intrepid::isValidFunctionSpace (const EFunctionSpace spaceType)
 Verifies validity of a function space enum.
 
std::string Intrepid::EDiscreteSpaceToString (EDiscreteSpace space)
 
int Intrepid::isValidDiscreteSpace (const EDiscreteSpace spaceType)
 Verifies validity of a discrete space enum.
 
std::string Intrepid::EPointTypeToString (EPointType pointType)
 
int Intrepid::isValidPointType (const EPointType pointType)
 Verifies validity of a point type enum.
 
std::string Intrepid::EBasisToString (EBasis basis)
 
int Intrepid::isValidBasis (const EBasis basisType)
 Verifies validity of a basis enum.
 
std::string Intrepid::ECompEngineToString (ECompEngine cEngine)
 
ECompEngine & Intrepid::operator++ (ECompEngine &type)
 
ECompEngine Intrepid::operator++ (ECompEngine &type, int)
 
ECompEngine & Intrepid::operator-- (ECompEngine &type)
 
ECompEngine Intrepid::operator-- (ECompEngine &type, int)
 
int Intrepid::isValidCompEngine (const ECompEngine compEngType)
 Verifies validity of a computational engine enum.
 

Variables

static const double Intrepid::INTREPID_EPSILON = std::abs(Teuchos::ScalarTraits<double>::eps())
 Platform-dependent machine epsilon.
 
static const double Intrepid::INTREPID_THRESHOLD = 10.0 * INTREPID_EPSILON
 Tolerance for various cell inclusion tests.
 
static const double Intrepid::INTREPID_TOL = 10.0* INTREPID_THRESHOLD
 General purpose tolerance in, e.g., internal Newton's method to invert ref to phys maps.
 

Detailed Description

Contains definitions of custom data types in Intrepid.

Author
Created by P. Bochev and D. Ridzal.

Definition in file Intrepid_Types.hpp.

Macro Definition Documentation

◆ INTREPID_MAX_CUBATURE_DEGREE_EDGE

#define INTREPID_MAX_CUBATURE_DEGREE_EDGE   61

The maximum degree of the polynomial that can be integrated exactly by a direct edge rule.

Definition at line 74 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_CUBATURE_DEGREE_PYR

#define INTREPID_MAX_CUBATURE_DEGREE_PYR   11

The maximum degree of the polynomial that can be integrated exactly by a direct pyramid rule.

Definition at line 92 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_CUBATURE_DEGREE_TET

#define INTREPID_MAX_CUBATURE_DEGREE_TET   20

The maximum degree of the polynomial that can be integrated exactly by a direct tetrahedron rule.

Definition at line 86 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_CUBATURE_DEGREE_TRI

#define INTREPID_MAX_CUBATURE_DEGREE_TRI   20

The maximum degree of the polynomial that can be integrated exactly by a direct triangle rule.

Definition at line 80 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_DERIVATIVE

#define INTREPID_MAX_DERIVATIVE   10

Maximum order of derivatives allowed in intrepid.

Definition at line 108 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_DIMENSION

#define INTREPID_MAX_DIMENSION   3

The maximum ambient space dimension.

Definition at line 97 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_INTEGRATION_POINTS

#define INTREPID_MAX_INTEGRATION_POINTS   1001

The maximum number of integration points for direct cubature rules.

Definition at line 68 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_NEWTON

#define INTREPID_MAX_NEWTON   15

Maximum number of Newton iterations used internally in methods such as computing the action of the inverse reference to physical cell map.

Definition at line 103 of file Intrepid_Types.hpp.

◆ INTREPID_MAX_ORDER

#define INTREPID_MAX_ORDER   10

The maximum reconstruction order.

Definition at line 63 of file Intrepid_Types.hpp.

◆ INTREPID_VALIDATE

#define INTREPID_VALIDATE (   A)    /* empty */

Definition at line 55 of file Intrepid_Types.hpp.

Enumeration Type Documentation

◆ EBasis

enum Intrepid::EBasis

Definition at line 417 of file Intrepid_Types.hpp.

◆ ECompEngine

enum Intrepid::ECompEngine

Definition at line 528 of file Intrepid_Types.hpp.

◆ ECoordinates

enum Intrepid::ECoordinates

Definition at line 127 of file Intrepid_Types.hpp.

◆ EDiscreteSpace

enum Intrepid::EDiscreteSpace

Definition at line 343 of file Intrepid_Types.hpp.

◆ EFunctionSpace

enum Intrepid::EFunctionSpace

Definition at line 293 of file Intrepid_Types.hpp.

◆ ENorm

enum Intrepid::ENorm

Definition at line 165 of file Intrepid_Types.hpp.

◆ EOperator

enum Intrepid::EOperator

Definition at line 206 of file Intrepid_Types.hpp.

◆ EPointType

enum Intrepid::EPointType

Definition at line 377 of file Intrepid_Types.hpp.

Function Documentation

◆ EBasisToString()

std::string Intrepid::EBasisToString ( EBasis  basis)
inline

Definition at line 428 of file Intrepid_Types.hpp.

◆ ECompEngineToString()

std::string Intrepid::ECompEngineToString ( ECompEngine  cEngine)
inline

Definition at line 535 of file Intrepid_Types.hpp.

◆ ECoordinatesToString()

std::string Intrepid::ECoordinatesToString ( ECoordinates  coords)
inline

Definition at line 135 of file Intrepid_Types.hpp.

◆ EDiscreteSpaceToString()

std::string Intrepid::EDiscreteSpaceToString ( EDiscreteSpace  space)
inline

Definition at line 351 of file Intrepid_Types.hpp.

◆ EFunctionSpaceToString()

std::string Intrepid::EFunctionSpaceToString ( EFunctionSpace  space)
inline

Definition at line 304 of file Intrepid_Types.hpp.

◆ ENormToString()

std::string Intrepid::ENormToString ( ENorm  norm)
inline

Definition at line 173 of file Intrepid_Types.hpp.

◆ EOperatorToString()

std::string Intrepid::EOperatorToString ( EOperator  op)
inline

Definition at line 224 of file Intrepid_Types.hpp.

◆ EPointTypeToString()

std::string Intrepid::EPointTypeToString ( EPointType  pointType)
inline

Definition at line 385 of file Intrepid_Types.hpp.

◆ isValidBasis()

int Intrepid::isValidBasis ( const EBasis  basisType)
inline

Verifies validity of a basis enum.

Parameters
basisType[in] - enum of the basis
Returns
1 if the argument is valid discrete space; 0 otherwise

Definition at line 448 of file Intrepid_Types.hpp.

References Intrepid::isValidBasis().

Referenced by Intrepid::isValidBasis().

◆ isValidCompEngine()

int Intrepid::isValidCompEngine ( const ECompEngine  compEngType)
inline

Verifies validity of a computational engine enum.

Parameters
compEngType[in] - enum of the computational engine
Returns
1 if the argument is valid computational engine; 0 otherwise

Definition at line 572 of file Intrepid_Types.hpp.

References Intrepid::isValidCompEngine().

Referenced by Intrepid::FunctionSpaceTools::integrate(), and Intrepid::isValidCompEngine().

◆ isValidCoordinate()

int Intrepid::isValidCoordinate ( ECoordinates  coordinateType)
inline

Verifies validity of a Coordinate enum.

Parameters
coordinateType[in] - enum of the coordinate system
Returns
1 if the argument is valid coordinate system; 0 otherwise

Definition at line 153 of file Intrepid_Types.hpp.

References Intrepid::isValidCoordinate().

Referenced by Intrepid::isValidCoordinate().

◆ isValidDiscreteSpace()

int Intrepid::isValidDiscreteSpace ( const EDiscreteSpace  spaceType)
inline

Verifies validity of a discrete space enum.

Parameters
spaceType[in] - enum of the function space
Returns
1 if the argument is valid discrete space; 0 otherwise

Definition at line 368 of file Intrepid_Types.hpp.

References Intrepid::isValidDiscreteSpace().

Referenced by Intrepid::isValidDiscreteSpace().

◆ isValidFunctionSpace()

int Intrepid::isValidFunctionSpace ( const EFunctionSpace  spaceType)
inline

Verifies validity of a function space enum.

Parameters
spaceType[in] - enum of the function space
Returns
1 if the argument is valid function space; 0 otherwise

Definition at line 324 of file Intrepid_Types.hpp.

References Intrepid::isValidFunctionSpace().

Referenced by Intrepid::getFieldRank(), and Intrepid::isValidFunctionSpace().

◆ isValidNorm()

int Intrepid::isValidNorm ( ENorm  normType)
inline

Verifies validity of a Norm enum.

Parameters
normType[in] - enum of the norm
Returns
1 if the argument is valid norm; 0 otherwise

Definition at line 191 of file Intrepid_Types.hpp.

References Intrepid::isValidNorm().

Referenced by Intrepid::isValidNorm().

◆ isValidOperator()

int Intrepid::isValidOperator ( const EOperator  operatorType)
inline

Verifies validity of an operator enum.

Parameters
operatorType[in] - enum of the operator
Returns
1 if the argument is valid operator; 0 otherwise

Definition at line 272 of file Intrepid_Types.hpp.

References Intrepid::isValidOperator().

Referenced by Intrepid::getOperatorOrder(), Intrepid::getOperatorRank(), Intrepid::Basis_HGRAD_POLY_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_HEX_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_HEX_C2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_HEX_I2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_LINE_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_LINE_Hermite_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_PYR_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_PYR_I2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_QUAD_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_QUAD_C2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_TET_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_TET_C2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_TET_COMP12_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_TRI_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_TRI_C2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_WEDGE_C1_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_WEDGE_C2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::Basis_HGRAD_WEDGE_I2_FEM< Scalar, ArrayScalar >::getValues(), Intrepid::isValidOperator(), and Intrepid::FieldContainer< Scalar, ArrayTypeId >::resize().

◆ isValidPointType()

int Intrepid::isValidPointType ( const EPointType  pointType)
inline

Verifies validity of a point type enum.

Parameters
pointType[in] - enum of the point type
Returns
1 if the argument is a valid point type; 0 otherwise

Definition at line 409 of file Intrepid_Types.hpp.

References Intrepid::isValidPointType().

Referenced by Intrepid::isValidPointType().

◆ operator++() [1/4]

ECompEngine & Intrepid::operator++ ( ECompEngine &  type)
inline

Definition at line 546 of file Intrepid_Types.hpp.

◆ operator++() [2/4]

ECompEngine Intrepid::operator++ ( ECompEngine &  type,
int   
)
inline

Definition at line 550 of file Intrepid_Types.hpp.

◆ operator++() [3/4]

EOperator & Intrepid::operator++ ( EOperator &  type)
inline

Definition at line 247 of file Intrepid_Types.hpp.

◆ operator++() [4/4]

EOperator Intrepid::operator++ ( EOperator &  type,
int   
)
inline

Definition at line 251 of file Intrepid_Types.hpp.

◆ operator--() [1/4]

ECompEngine & Intrepid::operator-- ( ECompEngine &  type)
inline

Definition at line 556 of file Intrepid_Types.hpp.

◆ operator--() [2/4]

ECompEngine Intrepid::operator-- ( ECompEngine &  type,
int   
)
inline

Definition at line 560 of file Intrepid_Types.hpp.

◆ operator--() [3/4]

EOperator & Intrepid::operator-- ( EOperator &  type)
inline

Definition at line 257 of file Intrepid_Types.hpp.

◆ operator--() [4/4]

EOperator Intrepid::operator-- ( EOperator &  type,
int   
)
inline

Definition at line 261 of file Intrepid_Types.hpp.

Variable Documentation

◆ INTREPID_EPSILON

const double Intrepid::INTREPID_EPSILON = std::abs(Teuchos::ScalarTraits<double>::eps())
static

Platform-dependent machine epsilon.

Definition at line 114 of file Intrepid_Types.hpp.

◆ INTREPID_THRESHOLD

const double Intrepid::INTREPID_THRESHOLD = 10.0 * INTREPID_EPSILON
static

Tolerance for various cell inclusion tests.

Definition at line 118 of file Intrepid_Types.hpp.

◆ INTREPID_TOL

const double Intrepid::INTREPID_TOL = 10.0* INTREPID_THRESHOLD
static

General purpose tolerance in, e.g., internal Newton's method to invert ref to phys maps.

Definition at line 122 of file Intrepid_Types.hpp.