Intrepid
|
Intrepid utilities. More...
#include "Intrepid_ConfigDefs.hpp"
#include "Intrepid_Rank.hpp"
#include "Intrepid_Types.hpp"
#include "Teuchos_Array.hpp"
#include "Teuchos_oblackholestream.hpp"
#include "Teuchos_RCP.hpp"
Go to the source code of this file.
Enumerations | |
enum | TypeOfExactData { INTREPID_UTILS_FRACTION =0, INTREPID_UTILS_SCALAR } |
Functions | |
int | Intrepid::getFieldRank (const EFunctionSpace spaceType) |
Returns the rank of fields in a function space of the specified type. More... | |
int | Intrepid::getOperatorRank (const EFunctionSpace spaceType, const EOperator operatorType, const int spaceDim) |
Returns rank of an operator. More... | |
int | Intrepid::getOperatorOrder (const EOperator operatorType) |
Returns order of an operator. More... | |
int | Intrepid::getDkEnumeration (const int xMult, const int yMult=-1, const int zMult=-1) |
Returns the ordinal of a partial derivative of order k based on the multiplicities of the partials dx, dy, and dz. More... | |
void | Intrepid::getDkMultiplicities (Teuchos::Array< int > &partialMult, const int derivativeEnum, const EOperator operatorType, const int 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... | |
int | Intrepid::getDkCardinality (const EOperator operatorType, const int spaceDim) |
Returns cardinality of Dk, i.e., the number of all derivatives of order k. More... | |
void | Intrepid::setOrdinalTagData (std::vector< std::vector< std::vector< int > > > &tagToOrdinal, std::vector< std::vector< int > > &ordinalToTag, const int *tags, const int basisCard, const int tagSize, const int posScDim, const int posScOrd, const int posDfOrd) |
Fills ordinalToTag_ and tagToOrdinal_ by basis-specific tag data. More... | |
template<class Scalar > | |
int | Intrepid::compareToAnalytic (const Teuchos::Array< Teuchos::Array< Scalar > > testMat, std::ifstream &inputFile, Scalar reltol, int iprint, TypeOfExactData analyticDataType=INTREPID_UTILS_FRACTION) |
Compares the values in the test matrix testMat to precomputed analytic values stored in a file, where the input matrix is an array of arrays. More... | |
template<class Scalar > | |
int | Intrepid::compareToAnalytic (const Scalar *testMat, std::ifstream &inputFile, Scalar reltol, int iprint, TypeOfExactData analyticDataType=INTREPID_UTILS_FRACTION) |
Compares the values in the test matrix testMat to precomputed analytic values stored in a file, where the input matrix is a single contiguous array. More... | |
template<class Scalar > | |
void | Intrepid::getAnalytic (Teuchos::Array< Teuchos::Array< Scalar > > &testMat, std::ifstream &inputFile, TypeOfExactData analyticDataType=INTREPID_UTILS_FRACTION) |
Loads analytic values stored in a file into the matrix testMat, where the output matrix is an array of arrays. More... | |
template<class Scalar > | |
void | Intrepid::getAnalytic (Scalar *testMat, std::ifstream &inputFile, TypeOfExactData analyticDataType=INTREPID_UTILS_FRACTION) |
Loads analytic values stored in a file into the matrix testMat, where the output matrix is a single contiguous array. More... | |
template<class Array > | |
bool | Intrepid::requireRankRange (std::string &errmsg, const Array &array, const int lowerBound, const int upperBound) |
Checks if the rank of the array argument is in the required range. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireRankMatch (std::string &errmsg, const Array1 &array1, const Array2 &array2) |
Checks if two arrays have matching ranks. More... | |
template<class Array > | |
bool | Intrepid::requireDimensionRange (std::string &errmsg, const Array &array, const int dim, const int lowerBound, const int upperBound) |
Checks if the specified array dimension is in the required range. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireDimensionMatch (std::string &errmsg, const Array1 &array1, const int a1_dim0, const Array2 &array2, const int a2_dim0) |
Checks arrays for a single matching dimension. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireDimensionMatch (std::string &errmsg, const Array1 &array1, const int a1_dim0, const int a1_dim1, const Array2 &array2, const int a2_dim0, const int a2_dim1) |
Checks arrays for two matching dimensions. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireDimensionMatch (std::string &errmsg, const Array1 &array1, const int a1_dim0, const int a1_dim1, const int a1_dim2, const Array2 &array2, const int a2_dim0, const int a2_dim1, const int a2_dim2) |
Checks arrays for three matching dimensions. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireDimensionMatch (std::string &errmsg, const Array1 &array1, const int a1_dim0, const int a1_dim1, const int a1_dim2, const int a1_dim3, const Array2 &array2, const int a2_dim0, const int a2_dim1, const int a2_dim2, const int a2_dim3) |
Checks arrays for four matching dimensions. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireDimensionMatch (std::string &errmsg, const Array1 &array1, const int a1_dim0, const int a1_dim1, const int a1_dim2, const int a1_dim3, const int a1_dim4, const Array2 &array2, const int a2_dim0, const int a2_dim1, const int a2_dim2, const int a2_dim3, const int a2_dim4) |
Checks arrays for five matching dimensions. More... | |
template<class Array1 , class Array2 > | |
bool | Intrepid::requireDimensionMatch (std::string &errmsg, const Array1 &array1, const Array2 &array2) |
Checks arrays for all their dimensions match. Arrays with equal ranks required. More... | |
Intrepid utilities.
Definition in file Intrepid_Utils.hpp.
int Intrepid::compareToAnalytic | ( | const Teuchos::Array< Teuchos::Array< Scalar > > | testMat, |
std::ifstream & | inputFile, | ||
Scalar | reltol, | ||
int | iprint, | ||
TypeOfExactData | analyticDataType = INTREPID_UTILS_FRACTION |
||
) |
Compares the values in the test matrix testMat to precomputed analytic values stored in a file, where the input matrix is an array of arrays.
testMat | [in] - test matrix |
inputFile | [in] - input file |
reltol | [in] - relative tolerance for equality comparisons |
iprint | [in] - if 0, no output; if 1, details are printed |
analyticDataType | [in] - type of analytic data for comparison:
|
Definition at line 528 of file Intrepid_Utils.hpp.
References Intrepid::compareToAnalytic().
Referenced by Intrepid::compareToAnalytic().
int Intrepid::compareToAnalytic | ( | const Scalar * | testMat, |
std::ifstream & | inputFile, | ||
Scalar | reltol, | ||
int | iprint, | ||
TypeOfExactData | analyticDataType = INTREPID_UTILS_FRACTION |
||
) |
Compares the values in the test matrix testMat to precomputed analytic values stored in a file, where the input matrix is a single contiguous array.
testMat | [in] - test matrix |
inputFile | [in] - input file |
reltol | [in] - relative tolerance for equality comparisons |
iprint | [in] - if 0, no output; if 1, details are printed |
analyticDataType | [in] - type of analytic data for comparison:
|
Definition at line 612 of file Intrepid_Utils.hpp.
References Intrepid::compareToAnalytic().
void Intrepid::getAnalytic | ( | Teuchos::Array< Teuchos::Array< Scalar > > & | testMat, |
std::ifstream & | inputFile, | ||
TypeOfExactData | analyticDataType = INTREPID_UTILS_FRACTION |
||
) |
Loads analytic values stored in a file into the matrix testMat, where the output matrix is an array of arrays.
testMat | [in] - test matrix |
inputFile | [in] - input file |
analyticDataType | [in] - type of analytic data for comparison:
|
Definition at line 697 of file Intrepid_Utils.hpp.
References Intrepid::getAnalytic().
Referenced by Intrepid::getAnalytic().
void Intrepid::getAnalytic | ( | Scalar * | testMat, |
std::ifstream & | inputFile, | ||
TypeOfExactData | analyticDataType = INTREPID_UTILS_FRACTION |
||
) |
Loads analytic values stored in a file into the matrix testMat, where the output matrix is a single contiguous array.
testMat | [in] - test matrix |
inputFile | [in] - input file |
analyticDataType | [in] - type of analytic data for comparison:
|
Definition at line 749 of file Intrepid_Utils.hpp.
References Intrepid::getAnalytic().
int Intrepid::getDkCardinality | ( | const EOperator | operatorType, |
const int | 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 maps to the multiset
with multiplicities
. The number of all such multisets is given by the binomial coefficient
Therefore:
operatorType | [in] - k-th derivative operator Dk |
spaceDim | [in] - space dimension |
Definition at line 400 of file Intrepid_Utils.cpp.
References Intrepid::getDkCardinality().
Referenced by Intrepid::getDkCardinality(), and Intrepid::getDkMultiplicities().
int Intrepid::getDkEnumeration | ( | const int | xMult, |
const int | yMult = -1 , |
||
const int | 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 Intrepid::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
![]() | in 1D (only 1 derivative) |
![]() | in 2D |
![]() | in 3D |
where the order k of Dk is implicitly defined by xMult + yMult + zMult. Space dimension is implicitly defined by the default values of the multiplicities of y and z derivatives.
xMult | [in] - multiplicity of dx |
yMult | [in] - multiplicity of dy (default = -1) |
zMult | [in] - multiplicity of dz (default = -1) |
Definition at line 234 of file Intrepid_Utils.cpp.
References Intrepid::getDkEnumeration(), and INTREPID_MAX_DERIVATIVE.
Referenced by Intrepid::getDkEnumeration().
void Intrepid::getDkMultiplicities | ( | Teuchos::Array< int > & | partialMult, |
const int | derivativeEnum, | ||
const EOperator | operatorType, | ||
const int | 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.
partialMult | [out] - array with the multiplicities f dx, dy and dz |
derivativeEnum | [in] - enumeration of the partial derivative |
operatorType | [in] - k-th partial derivative Dk |
spaceDim | [in] - space dimension |
Definition at line 284 of file Intrepid_Utils.cpp.
References Intrepid::getDkCardinality(), and Intrepid::getDkMultiplicities().
Referenced by Intrepid::getDkMultiplicities().
int Intrepid::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.
spaceType | [in] - function space type |
Definition at line 62 of file Intrepid_Utils.cpp.
References Intrepid::getFieldRank().
Referenced by Intrepid::getFieldRank(), Intrepid::getOperatorRank(), and Intrepid::FieldContainer< double >::resize().
int Intrepid::getOperatorOrder | ( | const EOperator | operatorType | ) |
Returns order of an operator.
operatorType | [in] - type of the operator whose order we want to know |
Definition at line 196 of file Intrepid_Utils.cpp.
References Intrepid::getOperatorOrder().
Referenced by Intrepid::getOperatorOrder().
int Intrepid::getOperatorRank | ( | const EFunctionSpace | spaceType, |
const EOperator | operatorType, | ||
const int | 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 | |=======================================================================================|
spaceType | [in] - function space type |
operatorType | [in] - the operator acting on the specified function space |
spaceDim | [in] - spatial dimension |
Definition at line 91 of file Intrepid_Utils.cpp.
References Intrepid::getFieldRank(), and Intrepid::getOperatorRank().
Referenced by Intrepid::getOperatorRank(), and Intrepid::FieldContainer< double >::resize().
bool Intrepid::requireDimensionMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const int | a1_dim0, | ||
const Array2 & | array2, | ||
const int | a2_dim0 | ||
) |
Checks arrays for a single matching dimension.
errmsg | [out] - error message |
array1 | [in] - first array argument |
a1_dim0 | [in] - dimension ordinal for first array |
array2 | [in] - second array argument |
a2_dim0 | [in] - dimension ordinal for second array |
Definition at line 903 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionMatch().
Referenced by Intrepid::CellTools< Scalar >::checkPointwiseInclusion(), Intrepid::ArrayTools::crossProductDataData(), Intrepid::ArrayTools::crossProductDataField(), Intrepid::CellTools< Scalar >::getPhysicalEdgeTangents(), Intrepid::CellTools< Scalar >::getPhysicalFaceNormals(), Intrepid::CellTools< Scalar >::getPhysicalFaceTangents(), Intrepid::CellTools< Scalar >::mapToReferenceSubcell(), Intrepid::ArrayTools::matmatProductDataData(), Intrepid::ArrayTools::matmatProductDataField(), Intrepid::ArrayTools::matvecProductDataData(), Intrepid::ArrayTools::matvecProductDataField(), Intrepid::ArrayTools::outerProductDataData(), Intrepid::ArrayTools::outerProductDataField(), Intrepid::requireDimensionMatch(), Intrepid::CellTools< Scalar >::validateArguments_mapToPhysicalFrame(), Intrepid::CellTools< Scalar >::validateArguments_mapToReferenceFrame(), Intrepid::CellTools< Scalar >::validateArguments_setJacobianInv(), and Intrepid::RealSpaceTools< Scalar >::vecprod().
bool Intrepid::requireDimensionMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const int | a1_dim0, | ||
const int | a1_dim1, | ||
const Array2 & | array2, | ||
const int | a2_dim0, | ||
const int | a2_dim1 | ||
) |
Checks arrays for two matching dimensions.
errmsg | [out] - error message |
array1 | [in] - first array argument |
a1_dim0 | [in] - 1st dimension ordinal for first array |
a1_dim1 | [in] - 2nd dimension ordinal for first array |
array2 | [in] - second array argument |
a2_dim0 | [in] - 1st dimension ordinal for second array |
a2_dim1 | [in] - 2nd dimension ordinal for second array |
Definition at line 931 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionMatch().
bool Intrepid::requireDimensionMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const int | a1_dim0, | ||
const int | a1_dim1, | ||
const int | a1_dim2, | ||
const Array2 & | array2, | ||
const int | a2_dim0, | ||
const int | a2_dim1, | ||
const int | a2_dim2 | ||
) |
Checks arrays for three matching dimensions.
errmsg | [out] - error message |
array1 | [in] - first array argument |
a1_dim0 | [in] - 1st dimension ordinal for first array |
a1_dim1 | [in] - 2nd dimension ordinal for first array |
a1_dim2 | [in] - 3rd dimension ordinal for first array |
array2 | [in] - second array argument |
a2_dim0 | [in] - 1st dimension ordinal for second array |
a2_dim1 | [in] - 2nd dimension ordinal for second array |
a2_dim2 | [in] - 3rd dimension ordinal for second array |
Definition at line 963 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionMatch().
bool Intrepid::requireDimensionMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const int | a1_dim0, | ||
const int | a1_dim1, | ||
const int | a1_dim2, | ||
const int | a1_dim3, | ||
const Array2 & | array2, | ||
const int | a2_dim0, | ||
const int | a2_dim1, | ||
const int | a2_dim2, | ||
const int | a2_dim3 | ||
) |
Checks arrays for four matching dimensions.
errmsg | [out] - error message |
array1 | [in] - first array argument |
a1_dim0 | [in] - 1st dimension ordinal for first array |
a1_dim1 | [in] - 2nd dimension ordinal for first array |
a1_dim2 | [in] - 3rd dimension ordinal for first array |
a1_dim3 | [in] - 4th dimension ordinal for first array |
array2 | [in] - second array argument |
a2_dim0 | [in] - 1st dimension ordinal for second array |
a2_dim1 | [in] - 2nd dimension ordinal for second array |
a2_dim2 | [in] - 3rd dimension ordinal for second array |
a2_dim3 | [in] - 4th dimension ordinal for second array |
Definition at line 1005 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionMatch().
bool Intrepid::requireDimensionMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const int | a1_dim0, | ||
const int | a1_dim1, | ||
const int | a1_dim2, | ||
const int | a1_dim3, | ||
const int | a1_dim4, | ||
const Array2 & | array2, | ||
const int | a2_dim0, | ||
const int | a2_dim1, | ||
const int | a2_dim2, | ||
const int | a2_dim3, | ||
const int | a2_dim4 | ||
) |
Checks arrays for five matching dimensions.
errmsg | [out] - error message |
array1 | [in] - first array argument |
a1_dim0 | [in] - 1st dimension ordinal for first array |
a1_dim1 | [in] - 2nd dimension ordinal for first array |
a1_dim2 | [in] - 3rd dimension ordinal for first array |
a1_dim3 | [in] - 4th dimension ordinal for first array |
a1_dim4 | [in] - 5th dimension ordinal for first array |
array2 | [in] - second array argument |
a2_dim0 | [in] - 1st dimension ordinal for second array |
a2_dim1 | [in] - 2nd dimension ordinal for second array |
a2_dim2 | [in] - 3rd dimension ordinal for second array |
a2_dim3 | [in] - 4th dimension ordinal for second array |
a2_dim4 | [in] - 5th dimension ordinal for second array |
Definition at line 1054 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionMatch().
bool Intrepid::requireDimensionMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const Array2 & | array2 | ||
) |
Checks arrays for all their dimensions match. Arrays with equal ranks required.
errmsg | [out] - error message |
array1 | [in] - first array argument |
array2 | [in] - second array argument |
Definition at line 1115 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionMatch(), and Intrepid::requireRankMatch().
bool Intrepid::requireDimensionRange | ( | std::string & | errmsg, |
const Array & | array, | ||
const int | dim, | ||
const int | lowerBound, | ||
const int | upperBound | ||
) |
Checks if the specified array dimension is in the required range.
errmsg | [out] - error message |
array | [in] - array argument |
dim | [in] - dimension ordinal, 0 <= dim < array |
lowerBound | [in] - lower bound for dimension dim |
upperBound | [in] - upper bound for dimension dim |
Definition at line 853 of file Intrepid_Utils.hpp.
References Intrepid::requireDimensionRange().
Referenced by Intrepid::ArrayTools::crossProductDataData(), Intrepid::ArrayTools::crossProductDataField(), Intrepid::CellTools< Scalar >::getPhysicalEdgeTangents(), Intrepid::CellTools< Scalar >::getPhysicalFaceNormals(), Intrepid::CellTools< Scalar >::getPhysicalFaceTangents(), Intrepid::CellTools< Scalar >::getReferenceSubcellNodes(), Intrepid::CellTools< Scalar >::getReferenceSubcellVertices(), Intrepid::CellTools< Scalar >::mapToReferenceSubcell(), Intrepid::ArrayTools::matmatProductDataData(), Intrepid::ArrayTools::matmatProductDataField(), Intrepid::ArrayTools::matvecProductDataData(), Intrepid::ArrayTools::matvecProductDataField(), Intrepid::ArrayTools::outerProductDataData(), Intrepid::ArrayTools::outerProductDataField(), Intrepid::requireDimensionRange(), and Intrepid::RealSpaceTools< Scalar >::vecprod().
bool Intrepid::requireRankMatch | ( | std::string & | errmsg, |
const Array1 & | array1, | ||
const Array2 & | array2 | ||
) |
Checks if two arrays have matching ranks.
errmsg | [out] - error message |
array1 | [in] - first array argument |
array2 | [in] - second array argument |
Definition at line 840 of file Intrepid_Utils.hpp.
References Intrepid::requireRankMatch().
Referenced by Intrepid::requireDimensionMatch(), Intrepid::requireRankMatch(), Intrepid::CellTools< Scalar >::validateArguments_mapToPhysicalFrame(), Intrepid::CellTools< Scalar >::validateArguments_mapToReferenceFrame(), and Intrepid::CellTools< Scalar >::validateArguments_setJacobianInv().
bool Intrepid::requireRankRange | ( | std::string & | errmsg, |
const Array & | array, | ||
const int | lowerBound, | ||
const int | upperBound | ||
) |
Checks if the rank of the array argument is in the required range.
errmsg | [out] - error message |
array | [in] - array argument |
lowerBound | [in] - lower bound for the rank of the array |
upperBound | [in] - upper bound for the rank of the array |
Definition at line 808 of file Intrepid_Utils.hpp.
References Intrepid::requireRankRange().
Referenced by Intrepid::ArrayTools::crossProductDataData(), Intrepid::ArrayTools::crossProductDataField(), Intrepid::CellTools< Scalar >::getPhysicalEdgeTangents(), Intrepid::CellTools< Scalar >::getPhysicalFaceNormals(), Intrepid::CellTools< Scalar >::getPhysicalFaceTangents(), Intrepid::CellTools< Scalar >::getReferenceSubcellNodes(), Intrepid::CellTools< Scalar >::getReferenceSubcellVertices(), Intrepid::CellTools< Scalar >::mapToReferenceSubcell(), Intrepid::ArrayTools::matmatProductDataData(), Intrepid::ArrayTools::matmatProductDataField(), Intrepid::ArrayTools::matvecProductDataData(), Intrepid::ArrayTools::matvecProductDataField(), Intrepid::ArrayTools::outerProductDataData(), Intrepid::ArrayTools::outerProductDataField(), Intrepid::requireRankRange(), Intrepid::CellTools< Scalar >::validateArguments_mapToReferenceFrame(), Intrepid::CellTools< Scalar >::validateArguments_setJacobian(), and Intrepid::RealSpaceTools< Scalar >::vecprod().
void Intrepid::setOrdinalTagData | ( | std::vector< std::vector< std::vector< int > > > & | tagToOrdinal, |
std::vector< std::vector< int > > & | ordinalToTag, | ||
const int * | tags, | ||
const int | basisCard, | ||
const int | tagSize, | ||
const int | posScDim, | ||
const int | posScOrd, | ||
const int | posDfOrd | ||
) |
Fills ordinalToTag_ and tagToOrdinal_ by basis-specific tag data.
tagToOrdinal | [out] - Lookup table for the DoF's ordinal by its tag |
ordinalToTag | [out] - Lookup table for the DoF's tag by its ordinal |
tags | [in] - a set of basis-dependent tags in flat (rank-1) array format. |
basisCard | [in] - cardinality of the basis |
tagSize | [in] - number of fields in a DoF tag |
posScDim | [in] - position in the tag, counting from 0, of the subcell dim |
posScOrd | [in] - position in the tag, counting from 0, of the subcell ordinal |
posDfOrd | [in] - position in the tag, counting from 0, of DoF ordinal relative to the subcell |
Definition at line 455 of file Intrepid_Utils.cpp.
References Intrepid::setOrdinalTagData().
Referenced by Intrepid::Basis_HGRAD_TRI_Cn_FEM_ORTH< Scalar, Intrepid::FieldContainer< Scalar > >::initializeTags(), Intrepid::Basis_HGRAD_TET_Cn_FEM_ORTH< Scalar, Intrepid::FieldContainer< Scalar > >::initializeTags(), Intrepid::Basis_HCURL_HEX_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_QUAD_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_QUAD_Cn_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_QUAD_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_HEX_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_POLY_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_HEX_Cn_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_LINE_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_TET_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_TRI_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_QUAD_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_TRI_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_PYR_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_WEDGE_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_TRI_C2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_TET_Cn_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_HEX_C1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_TET_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_QUAD_C2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_LINE_Cn_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_TRI_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_TET_In_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_TRI_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_TET_COMP12_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_TET_C2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_QUAD_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_TRI_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_TET_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_TET_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_QUAD_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_WEDGE_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_PYR_I2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HDIV_HEX_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_WEDGE_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_WEDGE_I2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_LINE_Hermite_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HCURL_HEX_I1_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_WEDGE_C2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_HEX_I2_FEM< Scalar, ArrayScalar >::initializeTags(), Intrepid::Basis_HGRAD_LINE_Cn_FEM_JACOBI< Scalar, Intrepid::FieldContainer< Scalar > >::initializeTags(), Intrepid::Basis_HGRAD_HEX_C2_FEM< Scalar, ArrayScalar >::initializeTags(), and Intrepid::setOrdinalTagData().