|
Intrepid2
|
Utility class that provides methods for higher-order algebraic manipulation of user-defined arrays, such as tensor contractions. For low-order operations, see Intrepid2::RealSpaceTools. More...
#include <Intrepid2_ArrayTools.hpp>
Classes | |
| class | Internal |
Public Member Functions | |
| template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> | |
| void | cloneFields (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
| template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> | |
| void | cloneData (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
Static Public Member Functions | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename leftFieldValueType , class ... leftFieldProperties, typename rightFieldValueType , class ... rightFieldProperties> | |
| static void | contractFieldFieldScalar (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< leftFieldValueType, leftFieldProperties... > leftFields, const Kokkos::DynRankView< rightFieldValueType, rightFieldProperties... > rightFields, const bool sumInto=false) |
| Contracts the "point" dimension P of two rank-3 containers with dimensions (C,L,P) and (C,R,P), and returns the result in a rank-3 container with dimensions (C,L,R). | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename leftFieldValueType , class ... leftFieldProperties, typename rightFieldValueType , class ... rightFieldProperties> | |
| static void | contractFieldFieldVector (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< leftFieldValueType, leftFieldProperties... > leftFields, const Kokkos::DynRankView< rightFieldValueType, rightFieldProperties... > rightFields, const bool sumInto=false) |
| Contracts the "point" and "space" dimensions P and D1 of two rank-4 containers with dimensions (C,L,P,D1) and (C,R,P,D1), and returns the result in a rank-3 container with dimensions (C,L,R). | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename leftFieldValueType , class ... leftFieldProperties, typename rightFieldValueType , class ... rightFieldProperties> | |
| static void | contractFieldFieldTensor (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< leftFieldValueType, leftFieldProperties... > leftFields, const Kokkos::DynRankView< rightFieldValueType, rightFieldProperties... > rightFields, const bool sumInto=false) |
| Contracts the "point" and "space" dimensions P, D1, and D2 of two rank-5 containers with dimensions (C,L,P,D1,D2) and (C,R,P,D1,D2), and returns the result in a rank-3 container with dimensions (C,L,R). | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | contractDataFieldScalar (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const bool sumInto=false) |
| Contracts the "point" dimensions P of a rank-3 containers and a rank-2 container with dimensions (C,F,P) and (C,P), respectively, and returns the result in a rank-2 container with dimensions (C,F). | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | contractDataFieldVector (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const bool sumInto=false) |
| Contracts the "point" and "space" dimensions P and D of a rank-4 container and a rank-3 container with dimensions (C,F,P,D) and (C,P,D), respectively, and returns the result in a rank-2 container with dimensions (C,F). | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | contractDataFieldTensor (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const bool sumInto=false) |
| Contracts the "point" and "space" dimensions P, D1 and D2 of a rank-5 container and a rank-4 container with dimensions (C,F,P,D1,D2) and (C,P,D1,D2), respectively, and returns the result in a rank-2 container with dimensions (C,F). | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | contractDataDataScalar (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const bool sumInto=false) |
| Contracts the "point" dimensions P of rank-2 containers with dimensions (C,P), and returns the result in a rank-1 container with dimensions (C). | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | contractDataDataVector (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const bool sumInto=false) |
| Contracts the "point" and "space" dimensions P and D of rank-3 containers with dimensions (C,P,D) and returns the result in a rank-1 container with dimensions (C). | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | contractDataDataTensor (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const bool sumInto=false) |
| Contracts the "point" and "space" dimensions P, D1 and D2 of rank-4 containers with dimensions (C,P,D1,D2) and returns the result in a rank-1 container with dimensions (C). | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | scalarMultiplyDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const bool reciprocal=false) |
| There are two use cases: (1) multiplies a rank-3, 4, or 5 container inputFields with dimensions (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2), representing the values of a set of scalar, vector or tensor fields, by the values in a rank-2 container inputData indexed by (C,P), representing the values of scalar data, OR (2) multiplies a rank-2, 3, or 4 container inputFields with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or a tensor field, by the values in a rank-2 container inputData indexed by (C,P), representing the values of scalar data; the output value container outputFields is indexed by (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2), regardless of which of the two use cases is considered. | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | scalarMultiplyDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const bool reciprocal=false) |
| There are two use cases: (1) multiplies a rank-2, 3, or 4 container inputDataRight with dimensions (C,P), (C,P,D1) or (C,P,D1,D2), representing the values of a set of scalar, vector or tensor data, by the values in a rank-2 container inputDataLeft indexed by (C,P), representing the values of scalar data, OR (2) multiplies a rank-1, 2, or 3 container inputDataRight with dimensions (P), (P,D1) or (P,D1,D2), representing the values of scalar, vector or tensor data, by the values in a rank-2 container inputDataLeft indexed by (C,P), representing the values of scalar data; the output value container outputData is indexed by (C,P), (C,P,D1) or (C,P,D1,D2), regardless of which of the two use cases is considered. | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | dotMultiplyDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields) |
| There are two use cases: (1) dot product of a rank-3, 4 or 5 container inputFields with dimensions (C,F,P) (C,F,P,D1) or (C,F,P,D1,D2), representing the values of a set of scalar, vector or tensor fields, by the values in a rank-2, 3 or 4 container inputData indexed by (C,P), (C,P,D1), or (C,P,D1,D2) representing the values of scalar, vector or tensor data, OR (2) dot product of a rank-2, 3 or 4 container inputFields with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or tensor field, by the values in a rank-2 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), representing the values of scalar, vector or tensor data; the output value container outputFields is indexed by (C,F,P), regardless of which of the two use cases is considered. | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | dotMultiplyDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight) |
| There are two use cases: (1) dot product of a rank-2, 3 or 4 container inputDataRight with dimensions (C,P) (C,P,D1) or (C,P,D1,D2), representing the values of a scalar, vector or a tensor set of data, by the values in a rank-2, 3 or 4 container inputDataLeft indexed by (C,P), (C,P,D1), or (C,P,D1,D2) representing the values of scalar, vector or tensor data, OR (2) dot product of a rank-2, 3 or 4 container inputDataRight with dimensions (P), (P,D1) or (P,D1,D2), representing the values of scalar, vector or tensor data, by the values in a rank-2 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), representing the values of scalar, vector, or tensor data; the output value container outputData is indexed by (C,P), regardless of which of the two use cases is considered. | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | crossProductDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields) |
| There are two use cases: (1) cross product of a rank-4 container inputFields with dimensions (C,F,P,D), representing the values of a set of vector fields, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data, OR (2) cross product of a rank-3 container inputFields with dimensions (F,P,D), representing the values of a vector field, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data; the output value container outputFields is indexed by (C,F,P,D) in 3D (vector output) and by (C,F,P) in 2D (scalar output), regardless of which of the two use cases is considered. | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | crossProductDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight) |
| There are two use cases: (1) cross product of a rank-3 container inputDataRight with dimensions (C,P,D), representing the values of a set of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D) representing the values of vector data, OR (2) cross product of a rank-2 container inputDataRight with dimensions (P,D), representing the values of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D), representing the values of vector data; the output value container outputData is indexed by (C,P,D) in 3D (vector output) and by (C,P) in 2D (scalar output), regardless of which of the two use cases is considered. | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | outerProductDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields) |
| There are two use cases: (1) outer product of a rank-4 container inputFields with dimensions (C,F,P,D), representing the values of a set of vector fields, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data, OR (2) outer product of a rank-3 container inputFields with dimensions (F,P,D), representing the values of a vector field, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data; the output value container outputFields is indexed by (C,F,P,D,D), regardless of which of the two use cases is considered. | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValuetype , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | outerProductDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValuetype, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight) |
| There are two use cases: (1) outer product of a rank-3 container inputDataRight with dimensions (C,P,D), representing the values of a set of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D) representing the values of vector data, OR (2) outer product of a rank-2 container inputDataRight with dimensions (P,D), representing the values of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D), representing the values of vector data; the output value container outputData is indexed by (C,P,D,D), regardless of which of the two use cases is considered. | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | matvecProductDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const char transpose='N') |
| There are two use cases: (1) matrix-vector product of a rank-4 container inputFields with dimensions (C,F,P,D), representing the values of a set of vector fields, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-vector product of a rank-3 container inputFields with dimensions (F,P,D), representing the values of a vector field, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputFields is indexed by (C,F,P,D), regardless of which of the two use cases is considered. | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | matvecProductDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const char transpose='N') |
| There are two use cases: (1) matrix-vector product of a rank-3 container inputDataRight with dimensions (C,P,D), representing the values of a set of vector data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-vector product of a rank-2 container inputDataRight with dimensions (P,D), representing the values of vector data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputData is indexed by (C,P,D), regardless of which of the two use cases is considered. | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | matmatProductDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const char transpose='N') |
| There are two use cases: (1) matrix-matrix product of a rank-5 container inputFields with dimensions (C,F,P,D1,D2), representing the values of a set of tensor fields, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-matrix product of a rank-4 container inputFields with dimensions (F,P,D1,D2), representing the values of a tensor field, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputFields is indexed by (C,F,P,D1,D2), regardless of which of the two use cases is considered. | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
| static void | matmatProductDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const char transpose='N') |
| There are two use cases: (1) matrix-matrix product of a rank-4 container inputDataRight with dimensions (C,P,D1,D2), representing the values of a set of tensor data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-matrix product of a rank-3 container inputDataRight with dimensions (P,D1,D2), representing the values of tensor data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputData is indexed by (C,P,D1,D2), regardless of which of the two use cases is considered. | |
| template<typename outputFieldValueType , class ... outputFieldProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
| static void | cloneFields (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields) |
| Replicates a rank-2, 3, or 4 container with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or a tensor field, into an output value container of size (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2). | |
| template<typename outputDataValueType , class ... outputDataProperties, typename inputDataValueType , class ... inputDataProperties> | |
| static void | cloneData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData) |
| Replicates a rank-2, 3, or 4 container with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or a tensor field, into an output value container of size (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2). | |
Private Types | |
| using | ExecSpaceType = typename DeviceType::execution_space |
Utility class that provides methods for higher-order algebraic manipulation of user-defined arrays, such as tensor contractions. For low-order operations, see Intrepid2::RealSpaceTools.
Note:
Definition at line 44 of file Intrepid2_ArrayTools.hpp.
|
private |
Definition at line 45 of file Intrepid2_ArrayTools.hpp.
|
static |
Replicates a rank-2, 3, or 4 container with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or a tensor field, into an output value container of size (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2).
| outputData | [out] - Output data array. |
| inputData | [in] - Input data array. |
| void Intrepid2::ArrayTools< DeviceType >::cloneData | ( | Kokkos::DynRankView< outputValueType, outputProperties... > | output, |
| const Kokkos::DynRankView< inputValueType, inputProperties... > | input | ||
| ) |
Definition at line 148 of file Intrepid2_ArrayToolsDefCloneScale.hpp.
|
static |
Replicates a rank-2, 3, or 4 container with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or a tensor field, into an output value container of size (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2).
| outputFields | [out] - Output fields array. |
| inputFields | [in] - Input fields array. |
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::HGRADtransformVALUE(), Intrepid2::FunctionSpaceTools< DeviceType >::mapHGradDataFromPhysSideToRefSide(), and Intrepid2::FunctionSpaceTools< DeviceType >::mapHGradDataFromPhysToRef().
| void Intrepid2::ArrayTools< DeviceType >::cloneFields | ( | Kokkos::DynRankView< outputValueType, outputProperties... > | output, |
| const Kokkos::DynRankView< inputValueType, inputProperties... > | input | ||
| ) |
Definition at line 101 of file Intrepid2_ArrayToolsDefCloneScale.hpp.
|
static |
Contracts the "point" dimensions P of rank-2 containers with dimensions (C,P), and returns the result in a rank-1 container with dimensions (C).
| outputData | [out] - Output data array. |
| inputDataLeft | [in] - Left data input array. |
| inputDataRight | [in] - Right data input array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 658 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" and "space" dimensions P, D1 and D2 of rank-4 containers with dimensions (C,P,D1,D2) and returns the result in a rank-1 container with dimensions (C).
| outputData | [out] - Output data array. |
| inputDataLeft | [in] - Left data input array. |
| inputDataRight | [in] - Right data input array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 730 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" and "space" dimensions P and D of rank-3 containers with dimensions (C,P,D) and returns the result in a rank-1 container with dimensions (C).
| outputData | [out] - Output data array. |
| inputDataLeft | [in] - Left data input array. |
| inputDataRight | [in] - Right data input array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 693 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" dimensions P of a rank-3 containers and a rank-2 container with dimensions (C,F,P) and (C,P), respectively, and returns the result in a rank-2 container with dimensions (C,F).
For a fixed index "C", (C,F) represents a (column) vector of length F.
| outputFields | [out] - Output fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 536 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" and "space" dimensions P, D1 and D2 of a rank-5 container and a rank-4 container with dimensions (C,F,P,D1,D2) and (C,P,D1,D2), respectively, and returns the result in a rank-2 container with dimensions (C,F).
For a fixed index "C", (C,F) represents a (column) vector of length F.
| outputFields | [out] - Output fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 616 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" and "space" dimensions P and D of a rank-4 container and a rank-3 container with dimensions (C,F,P,D) and (C,P,D), respectively, and returns the result in a rank-2 container with dimensions (C,F).
For a fixed index "C", (C,F) represents a (column) vector of length F.
| outputFields | [out] - Output fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 575 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" dimension P of two rank-3 containers with dimensions (C,L,P) and (C,R,P), and returns the result in a rank-3 container with dimensions (C,L,R).
| outputFields | [out] - Output (product) fields array. |
| leftFields | [in] - Left input array. |
| rightFields | [in] - Right input array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 412 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" and "space" dimensions P, D1, and D2 of two rank-5 containers with dimensions (C,L,P,D1,D2) and (C,R,P,D1,D2), and returns the result in a rank-3 container with dimensions (C,L,R).
For a fixed index "C", (C,L,R) represents a rectangular L X R matrix where L and R may be different.
| outputFields | [out] - Output array. |
| leftFields | [in] - Left input array. |
| rightFields | [in] - Right input array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 493 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
Contracts the "point" and "space" dimensions P and D1 of two rank-4 containers with dimensions (C,L,P,D1) and (C,R,P,D1), and returns the result in a rank-3 container with dimensions (C,L,R).
For a fixed index "C", (C,L,R) represents a rectangular L X R matrix where L and R may be different.
| outputFields | [out] - Output array. |
| leftFields | [in] - Left input array. |
| rightFields | [in] - Right input array. |
| sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 452 of file Intrepid2_ArrayToolsDefContractions.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::integrate().
|
static |
There are two use cases: (1) cross product of a rank-3 container inputDataRight with dimensions (C,P,D), representing the values of a set of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D) representing the values of vector data, OR (2) cross product of a rank-2 container inputDataRight with dimensions (P,D), representing the values of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D), representing the values of vector data; the output value container outputData is indexed by (C,P,D) in 3D (vector output) and by (C,P) in 2D (scalar output), regardless of which of the two use cases is considered.
| outputData | [out] - Output (cross product) data array. |
| inputDataLeft | [in] - Left input data array. |
| inputDataRight | [in] - Right input data array. |
Definition at line 235 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::vectorMultiplyDataData().
|
static |
There are two use cases: (1) cross product of a rank-4 container inputFields with dimensions (C,F,P,D), representing the values of a set of vector fields, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data, OR (2) cross product of a rank-3 container inputFields with dimensions (F,P,D), representing the values of a vector field, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data; the output value container outputFields is indexed by (C,F,P,D) in 3D (vector output) and by (C,F,P) in 2D (scalar output), regardless of which of the two use cases is considered.
| outputFields | [out] - Output (cross product) fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
Definition at line 112 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::vectorMultiplyDataField().
|
static |
There are two use cases: (1) dot product of a rank-2, 3 or 4 container inputDataRight with dimensions (C,P) (C,P,D1) or (C,P,D1,D2), representing the values of a scalar, vector or a tensor set of data, by the values in a rank-2, 3 or 4 container inputDataLeft indexed by (C,P), (C,P,D1), or (C,P,D1,D2) representing the values of scalar, vector or tensor data, OR (2) dot product of a rank-2, 3 or 4 container inputDataRight with dimensions (P), (P,D1) or (P,D1,D2), representing the values of scalar, vector or tensor data, by the values in a rank-2 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), representing the values of scalar, vector, or tensor data; the output value container outputData is indexed by (C,P), regardless of which of the two use cases is considered.
For input fields containers without a dimension index, this operation reduces to scalar multiplication.
| outputData | [out] - Output (dot product) data array. |
| inputDataLeft | [in] - Left input data array. |
| inputDataRight | [in] - Right input data array. |
Definition at line 176 of file Intrepid2_ArrayToolsDefDot.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::dotMultiplyDataData(), and Intrepid2::LagrangianInterpolation< DeviceType >::getBasisCoeffs().
|
static |
There are two use cases: (1) dot product of a rank-3, 4 or 5 container inputFields with dimensions (C,F,P) (C,F,P,D1) or (C,F,P,D1,D2), representing the values of a set of scalar, vector or tensor fields, by the values in a rank-2, 3 or 4 container inputData indexed by (C,P), (C,P,D1), or (C,P,D1,D2) representing the values of scalar, vector or tensor data, OR (2) dot product of a rank-2, 3 or 4 container inputFields with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or tensor field, by the values in a rank-2 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), representing the values of scalar, vector or tensor data; the output value container outputFields is indexed by (C,F,P), regardless of which of the two use cases is considered.
For input fields containers without a dimension index, this operation reduces to scalar multiplication.
>
| outputFields | [out] - Output (dot product) field array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Field array. |
Definition at line 112 of file Intrepid2_ArrayToolsDefDot.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::dotMultiplyDataField().
|
static |
There are two use cases: (1) matrix-matrix product of a rank-4 container inputDataRight with dimensions (C,P,D1,D2), representing the values of a set of tensor data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-matrix product of a rank-3 container inputDataRight with dimensions (P,D1,D2), representing the values of tensor data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputData is indexed by (C,P,D1,D2), regardless of which of the two use cases is considered.



| outputData | [out] - Output (matrix-vector product) data array. |
| inputDataLeft | [in] - Left input data array. |
| inputDataRight | [in] - Right input data array. |
| transpose | [in] - If 'T', use transposed tensor; if 'N', no transpose. Default: 'N'. |
Definition at line 1598 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::tensorMultiplyDataData().
|
static |
There are two use cases: (1) matrix-matrix product of a rank-5 container inputFields with dimensions (C,F,P,D1,D2), representing the values of a set of tensor fields, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-matrix product of a rank-4 container inputFields with dimensions (F,P,D1,D2), representing the values of a tensor field, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputFields is indexed by (C,F,P,D1,D2), regardless of which of the two use cases is considered.



| outputFields | [out] - Output (matrix-matrix product) fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
| transpose | [in] - If 'T', use transposed tensor; if 'N', no transpose. Default: 'N'. |
Definition at line 1433 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::tensorMultiplyDataField().
|
static |
There are two use cases: (1) matrix-vector product of a rank-3 container inputDataRight with dimensions (C,P,D), representing the values of a set of vector data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-vector product of a rank-2 container inputDataRight with dimensions (P,D), representing the values of vector data, on the left by the values in a rank-2, 3, or 4 container inputDataLeft indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputData is indexed by (C,P,D), regardless of which of the two use cases is considered.



| outputData | [out] - Output (matrix-vector product) data array. |
| inputDataLeft | [in] - Left input data array. |
| inputDataRight | [in] - Right input data array. |
| transpose | [in] - If 'T', use transposed tensor; if 'N', no transpose. Default: 'N'. |
Definition at line 1155 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::mapHCurlDataCrossNormalFromPhysSideToRefSide(), Intrepid2::FunctionSpaceTools< DeviceType >::mapHCurlDataFromPhysToRef(), Intrepid2::FunctionSpaceTools< DeviceType >::mapHDivDataFromPhysToRef(), and Intrepid2::FunctionSpaceTools< DeviceType >::tensorMultiplyDataData().
|
static |
There are two use cases: (1) matrix-vector product of a rank-4 container inputFields with dimensions (C,F,P,D), representing the values of a set of vector fields, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data, OR (2) matrix-vector product of a rank-3 container inputFields with dimensions (F,P,D), representing the values of a vector field, on the left by the values in a rank-2, 3, or 4 container inputData indexed by (C,P), (C,P,D1) or (C,P,D1,D2), respectively, representing the values of tensor data; the output value container outputFields is indexed by (C,F,P,D), regardless of which of the two use cases is considered.



| outputFields | [out] - Output (matrix-vector product) fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
| transpose | [in] - If 'T', use transposed tensor; if 'N', no transpose. Default: 'N'. |
Definition at line 1002 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::HCURLtransformVALUE(), Intrepid2::FunctionSpaceTools< DeviceType >::HDIVtransformVALUE(), and Intrepid2::FunctionSpaceTools< DeviceType >::tensorMultiplyDataField().
|
static |
There are two use cases: (1) outer product of a rank-3 container inputDataRight with dimensions (C,P,D), representing the values of a set of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D) representing the values of vector data, OR (2) outer product of a rank-2 container inputDataRight with dimensions (P,D), representing the values of vector data, on the left by the values in a rank-3 container inputDataLeft indexed by (C,P,D), representing the values of vector data; the output value container outputData is indexed by (C,P,D,D), regardless of which of the two use cases is considered.
| outputData | [out] - Output (outer product) data array. |
| inputDataLeft | [in] - Left input data array. |
| inputDataRight | [in] - Right input data array. |
Definition at line 539 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::vectorMultiplyDataData().
|
static |
There are two use cases: (1) outer product of a rank-4 container inputFields with dimensions (C,F,P,D), representing the values of a set of vector fields, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data, OR (2) outer product of a rank-3 container inputFields with dimensions (F,P,D), representing the values of a vector field, on the left by the values in a rank-3 container inputData indexed by (C,P,D), representing the values of vector data; the output value container outputFields is indexed by (C,F,P,D,D), regardless of which of the two use cases is considered.
| outputFields | [out] - Output (outer product) fields array. |
| inputData | [in] - Data array. |
| inputFields | [in] - Input fields array. |
Definition at line 432 of file Intrepid2_ArrayToolsDefTensor.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::vectorMultiplyDataField().
|
static |
There are two use cases: (1) multiplies a rank-2, 3, or 4 container inputDataRight with dimensions (C,P), (C,P,D1) or (C,P,D1,D2), representing the values of a set of scalar, vector or tensor data, by the values in a rank-2 container inputDataLeft indexed by (C,P), representing the values of scalar data, OR (2) multiplies a rank-1, 2, or 3 container inputDataRight with dimensions (P), (P,D1) or (P,D1,D2), representing the values of scalar, vector or tensor data, by the values in a rank-2 container inputDataLeft indexed by (C,P), representing the values of scalar data; the output value container outputData is indexed by (C,P), (C,P,D1) or (C,P,D1,D2), regardless of which of the two use cases is considered.
| outputData | [out] - Output data array. |
| inputDataLeft | [in] - Left (multiplying) data array. |
| inputDataRight | [in] - Right (being multiplied) data array. |
| reciprocal | [in] - If TRUE, divides input fields by the data (instead of multiplying). Default: FALSE. |
Definition at line 375 of file Intrepid2_ArrayToolsDefScalar.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::computeEdgeMeasure(), Intrepid2::FunctionSpaceTools< DeviceType >::mapHDivDataFromPhysToRef(), Intrepid2::FunctionSpaceTools< DeviceType >::mapHVolDataFromPhysToRef(), and Intrepid2::FunctionSpaceTools< DeviceType >::scalarMultiplyDataData().
|
static |
There are two use cases: (1) multiplies a rank-3, 4, or 5 container inputFields with dimensions (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2), representing the values of a set of scalar, vector or tensor fields, by the values in a rank-2 container inputData indexed by (C,P), representing the values of scalar data, OR (2) multiplies a rank-2, 3, or 4 container inputFields with dimensions (F,P), (F,P,D1) or (F,P,D1,D2), representing the values of a scalar, vector or a tensor field, by the values in a rank-2 container inputData indexed by (C,P), representing the values of scalar data; the output value container outputFields is indexed by (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2), regardless of which of the two use cases is considered.
| outputFields | [out] - Output (product) fields array. |
| inputData | [in] - Data (multiplying) array. |
| inputFields | [in] - Input (being multiplied) fields array. |
| reciprocal | [in] - If TRUE, divides input fields by the data (instead of multiplying). Default: FALSE. |
Definition at line 251 of file Intrepid2_ArrayToolsDefScalar.hpp.
Referenced by Intrepid2::FunctionSpaceTools< DeviceType >::HDIVtransformVALUE(), and Intrepid2::FunctionSpaceTools< DeviceType >::HVOLtransformVALUE().