Intrepid2
|
Defines expert-level interfaces for the evaluation of functions and operators in physical space (supported for FE, FV, and FD methods) and FE reference space; in addition, provides several function transformation utilities. More...
#include <Intrepid2_FunctionSpaceTools.hpp>
Public Member Functions | |
template<typename outputValValueType , class ... outputValProperties, typename inputDetValueType , class ... inputDetProperties, typename inputWeightValueType , class ... inputWeightProperties> | |
bool | computeCellMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputDetValueType, inputDetProperties... > inputDet, const Kokkos::DynRankView< inputWeightValueType, inputWeightProperties... > inputWeights) |
template<typename outputValValueType , class ... outputValProperties, typename inputJacValueType , class ... inputJacProperties, typename inputWeightValueType , class ... inputWeightProperties, typename scratchValueType , class ... scratchProperties> | |
void | computeFaceMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputJacValueType, inputJacProperties... > inputJac, const Kokkos::DynRankView< inputWeightValueType, inputWeightProperties... > inputWeights, const ordinal_type whichFace, const shards::CellTopology parentCell, const Kokkos::DynRankView< scratchValueType, scratchProperties... > scratch) |
template<typename outputValValueType , class ... outputValProperties, typename inputMeasureValueType , class ... inputMeasureProperties, typename inputValValueType , class ... inputValProperties> | |
void | multiplyMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputMeasureValueType, inputMeasureProperties... > inputMeasure, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
void | scalarMultiplyDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const bool reciprocal) |
Static Public Member Functions | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHGRADtransformGRAD (const Data< Scalar, DeviceType > &jacobianInverse, const BasisValues< Scalar, DeviceType > &refBasisGradValues) |
Transformation of a gradient field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D). The returned object contains the transformed gradient field, defined on cells in physical space and indexed by (C,F,P,D). The transformations are computed on entry access; algorithms such as sum factorization rely on having access to the reference-space basis values as well as the transformation operator; both are stored in the returned TransformedBasisValues object. | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHGRADtransformVALUE (const ordinal_type &numCells, const BasisValues< Scalar, DeviceType > &refBasisValues) |
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell, stored in the user-provided container input and indexed by (F,P), into the output container output, defined on cells in physical space and indexed by (C,F,P). This transformation is trivial, and the returned container is logically indexed by (C,F,P), but only contains (F,P) distinct data entries. | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHCURLtransformVALUE (const Data< Scalar, DeviceType > &jacobianInverse, const BasisValues< Scalar, DeviceType > &refBasisValues) |
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHCURLtransformCURL (const Data< Scalar, DeviceType > &jacobianDividedByJacobianDet, const BasisValues< Scalar, DeviceType > &refBasisValues) |
Transformation of a 3D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHCURLtransformCURL2D (const Data< Scalar, DeviceType > &jacobianDetInverse, const BasisValues< Scalar, DeviceType > &refBasisValues) |
Transformation of a 2D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P). | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHDIVtransformVALUE (const Data< Scalar, DeviceType > &jacobianDividedByJacobianDet, const BasisValues< Scalar, DeviceType > &refBasisValues) |
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHDIVtransformDIV (const Data< Scalar, DeviceType > &jacobianDetInverse, const BasisValues< Scalar, DeviceType > &refBasisDivValues) |
Transformation of a divergence field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P). | |
template<class Scalar > | |
static TransformedBasisValues< Scalar, DeviceType > | getHVOLtransformVALUE (const Data< Scalar, DeviceType > &jacobianDetInverse, const BasisValues< Scalar, DeviceType > &refBasisValues) |
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P). | |
template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> | |
static void | HGRADtransformVALUE (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell, stored in the user-provided container input and indexed by (F,P), into the output container output, defined on cells in physical space and indexed by (C,F,P). | |
template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> | |
static void | mapHGradDataFromPhysToRef (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
Transformation of a (scalar) data in the H-grad space, defined in physical space, stored in the user-provided container input and indexed by (C,P), into the output container output, defined on reference cells and indexed by (C,P). It computes ![]() ![]() ![]() ![]() ![]() | |
template<typename outputValueType , class ... outputProperties, typename inputValueType , class ... inputProperties> | |
static void | mapHGradDataFromPhysSideToRefSide (Kokkos::DynRankView< outputValueType, outputProperties... > output, const Kokkos::DynRankView< inputValueType, inputProperties... > input) |
Transformation of a (scalar) data in the H-grad space, defined in physical space, stored in the user-provided container input and indexed by (C,P), into the output container output, defined on reference sides and indexed by (C,P). It computes ![]() ![]() ![]() ![]() ![]() | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianInverseValueType , class ... jacobianInverseProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HGRADtransformGRAD (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianInverseValueType, jacobianInverseProperties... > jacobianInverse, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a gradient field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianInverseValueType , class ... jacobianInverseProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HCURLtransformVALUE (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianInverseValueType, jacobianInverseProperties... > jacobianInverse, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianValueType , class ... jacobianProperties, typename inputValValueType , class ... inputValProperties> | |
static void | mapHCurlDataFromPhysToRef (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties... > jacobian, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a (vector) data in the H-curl space, defined in the physical space, stored in the user-provided container inputVals and indexed by (C,P,D), into the output container outputVals, defined on the reference cell and indexed by (C,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename tangentsValueType , class ... tangentsProperties, typename metricTensorInvValueType , class ... metricTensorInvProperties, typename metricTensorDetValueType , class ... metricTensorDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | mapHCurlDataCrossNormalFromPhysSideToRefSide (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< tangentsValueType, tangentsProperties... > tangents, const Kokkos::DynRankView< metricTensorInvValueType, metricTensorInvProperties... > metricTensorInv, const Kokkos::DynRankView< metricTensorDetValueType, metricTensorDetProperties... > metricTensorDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of 3D HCURL data from physical side to reference side. It takes the input vector ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | mapHCurlDataCrossNormalFromPhysSideToRefSide (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > metricTensorDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of 2D HCURL data from physical side to reference side. It takes the input scalar ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianValueType , class ... jacobianProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HCURLtransformCURL (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties... > jacobian, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a 3D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HCURLtransformCURL (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a 2D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianValueType , class ... jacobianProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HGRADtransformCURL (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties... > jacobian, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a 2D curl field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianValueType , class ... jacobianProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HDIVtransformVALUE (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianValueType, jacobianProperties... > jacobian, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianInverseValueType , class ... jacobianInverseProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | mapHDivDataFromPhysToRef (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianInverseValueType, jacobianInverseProperties... > jacobianInv, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a (vector) data in the H-div space, defined in the physical space, stored in the user-provided container inputVals and indexed by (C,P,D), into the output container outputVals, defined on the reference cell and indexed by (C,P,D). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | mapHDivDataDotNormalFromPhysSideToRefSide (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > metricTensorDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of HDIV data from physical side to reference side. It takes the input ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HDIVtransformDIV (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a divergence field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | HVOLtransformVALUE (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P). | |
template<typename outputValValueType , class ... outputValProperties, typename jacobianDetValueType , class ... jacobianDetProperties, typename inputValValueType , class ... inputValProperties> | |
static void | mapHVolDataFromPhysToRef (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< jacobianDetValueType, jacobianDetProperties... > jacobianDet, const Kokkos::DynRankView< inputValValueType, inputValProperties... > inputVals) |
Transformation of a (scalar) data in the H-vol space, defined in the physical space, stored in the user-provided container inputVals and indexed by (C,P), into the output container outputVals, defined on the reference cell and indexed by (C,P). | |
template<typename outputValueValueType , class ... outputValueProperties, typename leftValueValueType , class ... leftValueProperties, typename rightValueValueType , class ... rightValueProperties> | |
static void | integrate (Kokkos::DynRankView< outputValueValueType, outputValueProperties... > outputValues, const Kokkos::DynRankView< leftValueValueType, leftValueProperties... > leftValues, const Kokkos::DynRankView< rightValueValueType, rightValueProperties... > rightValues, const bool sumInto=false) |
Contracts leftValues and rightValues arrays on the point and possibly space dimensions and stores the result in outputValues; this is a generic, high-level integration routine that calls either FunctionSpaceTools::operatorIntegral, or FunctionSpaceTools::functionalIntegral, or FunctionSpaceTools::dataIntegral methods, depending on the rank of the outputValues array. | |
template<typename outputValValueType , class ... outputValProperties, typename inputDetValueType , class ... inputDetPropertes, typename inputWeightValueType , class ... inputWeightPropertes> | |
static bool | computeCellMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputDetValueType, inputDetPropertes... > inputDet, const Kokkos::DynRankView< inputWeightValueType, inputWeightPropertes... > inputWeights) |
Returns the weighted integration measures outputVals with dimensions (C,P) used for the computation of cell integrals, by multiplying absolute values of the user-provided cell Jacobian determinants inputDet with dimensions (C,P) with the user-provided integration weights inputWeights with dimensions (P). | |
template<typename outputValValueType , class ... outputValProperties, typename inputJacValueType , class ... inputJacProperties, typename inputWeightValueType , class ... inputWeightPropertes, typename scratchValueType , class ... scratchProperties> | |
static void | computeFaceMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputJacValueType, inputJacProperties... > inputJac, const Kokkos::DynRankView< inputWeightValueType, inputWeightPropertes... > inputWeights, const int whichFace, const shards::CellTopology parentCell, const Kokkos::DynRankView< scratchValueType, scratchProperties... > scratch) |
Returns the weighted integration measures outputVals with dimensions (C,P) used for the computation of face integrals, based on the provided cell Jacobian array inputJac with dimensions (C,P,D,D) and the provided integration weights inputWeights with dimensions (P). | |
template<typename outputValValueType , class ... outputValProperties, typename inputJacValueType , class ... inputJacProperties, typename inputWeightValueType , class ... inputWeightProperties, typename scratchValueType , class ... scratchProperties> | |
static void | computeEdgeMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputJacValueType, inputJacProperties... > inputJac, const Kokkos::DynRankView< inputWeightValueType, inputWeightProperties... > inputWeights, const int whichEdge, const shards::CellTopology parentCell, const Kokkos::DynRankView< scratchValueType, scratchProperties... > scratch) |
Returns the weighted integration measures outVals with dimensions (C,P) used for the computation of edge integrals, based on the provided cell Jacobian array inputJac with dimensions (C,P,D,D) and the provided integration weights inWeights with dimensions (P). | |
template<typename outputValValueType , class ... outputValProperties, typename inputMeasureValueType , class ... inputMeasureProperties, typename inputValValueType , class ... inputValProperteis> | |
static void | multiplyMeasure (Kokkos::DynRankView< outputValValueType, outputValProperties... > outputVals, const Kokkos::DynRankView< inputMeasureValueType, inputMeasureProperties... > inputMeasure, const Kokkos::DynRankView< inputValValueType, inputValProperteis... > inputVals) |
Multiplies fields inputVals by weighted measures inputMeasure and returns the field array outputVals; this is a simple redirection to the call FunctionSpaceTools::scalarMultiplyDataField. | |
template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataPropertes, typename inputFieldValueType , class ... inputFieldProperties> | |
static void | scalarMultiplyDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataPropertes... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const bool reciprocal=false) |
Scalar multiplication of data and fields; please read the description below. | |
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) |
Scalar multiplication of data and data; please read the description below. | |
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) |
Dot product of data and fields; please read the description below. | |
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) |
Dot product of data and data; please read the description below. | |
template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
static void | vectorMultiplyDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields) |
Cross or outer product of data and fields; please read the description below. | |
template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
static void | vectorMultiplyDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight) |
Cross or outer product of data and data; please read the description below. | |
template<typename outputFieldValueType , class ... outputFieldProperties, typename inputDataValueType , class ... inputDataProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
static void | tensorMultiplyDataField (Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > outputFields, const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > inputData, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields, const char transpose='N') |
Matrix-vector or matrix-matrix product of data and fields; please read the description below. | |
template<typename outputDataValueType , class ... outputDataProperties, typename inputDataLeftValueType , class ... inputDataLeftProperties, typename inputDataRightValueType , class ... inputDataRightProperties> | |
static void | tensorMultiplyDataData (Kokkos::DynRankView< outputDataValueType, outputDataProperties... > outputData, const Kokkos::DynRankView< inputDataLeftValueType, inputDataLeftProperties... > inputDataLeft, const Kokkos::DynRankView< inputDataRightValueType, inputDataRightProperties... > inputDataRight, const char transpose='N') |
Matrix-vector or matrix-matrix product of data and data; please read the description below. | |
template<typename inoutOperatorValueType , class ... inoutOperatorProperties, typename fieldSignValueType , class ... fieldSignProperties> | |
static void | applyLeftFieldSigns (Kokkos::DynRankView< inoutOperatorValueType, inoutOperatorProperties... > inoutOperator, const Kokkos::DynRankView< fieldSignValueType, fieldSignProperties... > fieldSigns) |
Applies left (row) signs, stored in the user-provided container fieldSigns and indexed by (C,L), to the operator inoutOperator indexed by (C,L,R). | |
template<typename inoutOperatorValueType , class ... inoutOperatorProperties, typename fieldSignValueType , class ... fieldSignProperties> | |
static void | applyRightFieldSigns (Kokkos::DynRankView< inoutOperatorValueType, inoutOperatorProperties... > inoutOperator, const Kokkos::DynRankView< fieldSignValueType, fieldSignProperties... > fieldSigns) |
Applies right (column) signs, stored in the user-provided container fieldSigns and indexed by (C,R), to the operator inoutOperator indexed by (C,L,R). | |
template<typename inoutFunctionValueType , class ... inoutFunctionProperties, typename fieldSignValueType , class ... fieldSignProperties> | |
static void | applyFieldSigns (Kokkos::DynRankView< inoutFunctionValueType, inoutFunctionProperties... > inoutFunction, const Kokkos::DynRankView< fieldSignValueType, fieldSignProperties... > fieldSigns) |
Applies field signs, stored in the user-provided container fieldSigns and indexed by (C,F), to the function inoutFunction indexed by (C,F), (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2). | |
template<typename outputPointValueType , class ... outputPointProperties, typename inputCoeffValueType , class ... inputCoeffProperties, typename inputFieldValueType , class ... inputFieldProperties> | |
static void | evaluate (Kokkos::DynRankView< outputPointValueType, outputPointProperties... > outputPointVals, const Kokkos::DynRankView< inputCoeffValueType, inputCoeffProperties... > inputCoeffs, const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > inputFields) |
Computes point values outPointVals of a discrete function specified by the basis inFields and coefficients inCoeffs. | |
Private Types | |
using | ExecSpaceType = typename DeviceType::execution_space |
using | MemSpaceType = typename DeviceType::memory_space |
Defines expert-level interfaces for the evaluation of functions and operators in physical space (supported for FE, FV, and FD methods) and FE reference space; in addition, provides several function transformation utilities.
Definition at line 82 of file Intrepid2_FunctionSpaceTools.hpp.
|
private |
Definition at line 83 of file Intrepid2_FunctionSpaceTools.hpp.
|
private |
Definition at line 84 of file Intrepid2_FunctionSpaceTools.hpp.
|
static |
Applies field signs, stored in the user-provided container fieldSigns and indexed by (C,F), to the function inoutFunction indexed by (C,F), (C,F,P), (C,F,P,D1) or (C,F,P,D1,D2).
Returns
See Section Pullbacks for discussion of field signs.
inoutFunction | [in/out] - Input / output function array. |
fieldSigns | [in] - Right field signs. |
Definition at line 1078 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Applies left (row) signs, stored in the user-provided container fieldSigns and indexed by (C,L), to the operator inoutOperator indexed by (C,L,R).
Mathematically, this method computes the matrix-matrix product
where
see Section Pullbacks for discussion of field signs. This operation is required for operators generated by HCURL and HDIV-conforming vector-valued finite element basis functions; see Sections Pullbacks and Section Evaluation of finite element operators and functionals for applications of this method.
inoutOperator | [in/out] - Input / output operator array. |
fieldSigns | [in] - Left field signs. |
Definition at line 948 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Applies right (column) signs, stored in the user-provided container fieldSigns and indexed by (C,R), to the operator inoutOperator indexed by (C,L,R).
Mathematically, this method computes the matrix-matrix product
where
see Section Pullbacks for discussion of field signs. This operation is required for operators generated by HCURL and HDIV-conforming vector-valued finite element basis functions; see Sections Pullbacks and Section Evaluation of finite element operators and functionals for applications of this method.
inoutOperator | [in/out] - Input / output operator array. |
fieldSigns | [in] - Right field signs. |
Definition at line 1011 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Returns the weighted integration measures outputVals with dimensions (C,P) used for the computation of cell integrals, by multiplying absolute values of the user-provided cell Jacobian determinants inputDet with dimensions (C,P) with the user-provided integration weights inputWeights with dimensions (P).
Returns a rank-2 array (C, P) array such that
where
outputVals | [out] - Output array with weighted cell measures. |
inputDet | [in] - Input array containing determinants of cell Jacobians. |
inputWeights | [in] - Input integration weights. |
bool Intrepid2::FunctionSpaceTools< DeviceType >::computeCellMeasure | ( | Kokkos::DynRankView< outputValValueType, outputValProperties... > | outputVals, |
const Kokkos::DynRankView< inputDetValueType, inputDetProperties... > | inputDet, | ||
const Kokkos::DynRankView< inputWeightValueType, inputWeightProperties... > | inputWeights | ||
) |
Definition at line 569 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Returns the weighted integration measures outVals with dimensions (C,P) used for the computation of edge integrals, based on the provided cell Jacobian array inputJac with dimensions (C,P,D,D) and the provided integration weights inWeights with dimensions (P).
Returns a rank-2 array (C, P) array such that
where:
outputVals | [out] - Output array with weighted edge measures. |
inputJac | [in] - Input array containing cell Jacobians. |
inputWeights | [in] - Input integration weights. |
whichEdge | [in] - Index of the edge subcell relative to the parent cell; defines the domain of integration. |
parentCell | [in] - Parent cell topology. |
scratch | [in] - Scratch space, sized like inputJac |
Definition at line 662 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::CellTools< DeviceType >::getPhysicalEdgeTangents(), Intrepid2::ArrayTools< DeviceType >::scalarMultiplyDataData(), and Intrepid2::RealSpaceTools< DeviceType >::vectorNorm().
Referenced by Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::getCubature().
|
static |
Returns the weighted integration measures outputVals with dimensions (C,P) used for the computation of face integrals, based on the provided cell Jacobian array inputJac with dimensions (C,P,D,D) and the provided integration weights inputWeights with dimensions (P).
Returns a rank-2 array (C, P) array such that
where:
outputVals | [out] - Output array with weighted face measures. |
inputJac | [in] - Input array containing cell Jacobians. |
inputWeights | [in] - Input integration weights. |
whichFace | [in] - Index of the face subcell relative to the parent cell; defines the domain of integration. |
parentCell | [in] - Parent cell topology. |
scratch | [in] - Scratch space, sized like inputJac |
Referenced by Intrepid2::CubatureControlVolumeBoundary< DeviceType, pointValueType, weightValueType >::getCubature().
void Intrepid2::FunctionSpaceTools< DeviceType >::computeFaceMeasure | ( | Kokkos::DynRankView< outputValValueType, outputValProperties... > | outputVals, |
const Kokkos::DynRankView< inputJacValueType, inputJacProperties... > | inputJac, | ||
const Kokkos::DynRankView< inputWeightValueType, inputWeightProperties... > | inputWeights, | ||
const ordinal_type | whichFace, | ||
const shards::CellTopology | parentCell, | ||
const Kokkos::DynRankView< scratchValueType, scratchProperties... > | scratch | ||
) |
Definition at line 615 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Dot product of data and data; please read the description below.
There are two use cases:
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 776 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::dotMultiplyDataData().
|
static |
Dot product of data and fields; please read the description below.
There are two use cases:
For input fields containers without a dimension index, this operation reduces to scalar multiplication.
outputFields | [out] - Output (dot product) fields array. |
inputData | [in] - Data array. |
inputFields | [in] - Input fields array. |
Definition at line 760 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::dotMultiplyDataField().
|
static |
Computes point values outPointVals of a discrete function specified by the basis inFields and coefficients inCoeffs.
The array inFields with dimensions (C,F,P), (C,F,P,D1), or (C,F,P,D1,D2) represents the signed, transformed field (basis) values at points in REFERENCE frame; the outPointVals array with dimensions (C,P), (C,P,D1), or (C,P,D1,D2), respectively, represents values of a discrete function at points in PHYSICAL frame. The array inCoeffs dimensioned (C,F) supplies the coefficients for the field (basis) array.
Returns rank-2,3 or 4 array such that
where
outputPointVals | [out] - Output point values of a discrete function. |
inputCoeffs | [in] - Coefficients associated with the fields (basis) array. |
inputFields | [in] - Field (basis) values. |
Definition at line 1152 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
inlinestatic |
Transformation of a 3D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of curls of HCURL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
jacobianDividedByJacobianDet | [in] - Input cell Jacobians, divided by their determinant. |
inputVals | [in] - Input container of reference HDIV values. |
Definition at line 271 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a 2D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of curls of HCURL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobianDetInverse | [in] - Reciprocals of input cell Jacobian determinants. |
inputVals | [in] - Input array of reference HCURL curls. |
Definition at line 321 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of HCURL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
jacobianInverse | [in] - Input array containing cell Jacobian inverses. |
inputVals | [in] - Input array of reference HCURL values. |
Definition at line 222 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a divergence field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of the divergence of HDIV functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
jacobianDetInverse | [in] - Reciprocals of input cell Jacobian determinants. |
refBasisDivValues | [in] - Input container of reference HDIV divergences. |
Definition at line 419 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of HDIV functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
jacobianDividedByJacobianDet | [in] - Input cell Jacobians, divided by their determinant. |
inputVals | [in] - Input container of reference HDIV values. |
Definition at line 371 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a gradient field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D). The returned object contains the transformed gradient field, defined on cells in physical space and indexed by (C,F,P,D). The transformations are computed on entry access; algorithms such as sum factorization rely on having access to the reference-space basis values as well as the transformation operator; both are stored in the returned TransformedBasisValues object.
Computes pullback of gradients of HGRAD functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
jacobianInverse | [in] - Input array containing cell Jacobian inverses. |
refBasisGradValues | [in] - Input array of reference HGRAD gradients. |
Definition at line 130 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell, stored in the user-provided container input and indexed by (F,P), into the output container output, defined on cells in physical space and indexed by (C,F,P). This transformation is trivial, and the returned container is logically indexed by (C,F,P), but only contains (F,P) distinct data entries.
Computes pullback of HGRAD functions
In this case
The method returns
i.e., it simply replicates the values in the user-provided container to every cell. See Section Pullbacks for more details about pullbacks.
input | [in] - Input container of reference HGRAD values. |
Definition at line 176 of file Intrepid2_FunctionSpaceTools.hpp.
|
inlinestatic |
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of HVOL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
jacobianDetInverse | [in] - Reciprocals of input cell Jacobian determinants. |
refBasisValues | [in] - Input container of reference HVOL values. |
Definition at line 467 of file Intrepid2_FunctionSpaceTools.hpp.
|
static |
Transformation of a 2D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of curls of HCURL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobianDet | [in] - Input array containing cell Jacobian determinants. |
inputVals | [in] - Input array of reference HCURL curls. |
Definition at line 292 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of a 3D curl field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of curls of HCURL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobian | [in] - Input array containing cell Jacobians. |
jacobianDet | [in] - Input array containing cell Jacobian determinants. |
inputVals | [in] - Input array of reference HCURL curls. |
Definition at line 274 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of a (vector) value field in the H-curl space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of HCURL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobianInverse | [in] - Input array containing cell Jacobian inverses. |
inputVals | [in] - Input array of reference HCURL values. |
Definition at line 152 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matvecProductDataField().
|
static |
Transformation of a divergence field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of the divergence of HDIV functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobianDet | [in] - Input array containing cell Jacobian determinants. |
inputVals | [in] - Input array of reference HDIV divergences. |
Definition at line 383 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of a (vector) value field in the H-div space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of HDIV functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobian | [in] - Input array containing cell Jacobians. |
jacobianDet | [in] - Input array containing cell Jacobian determinants. |
inputVals | [in] - Input array of reference HDIV values. |
Definition at line 335 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matvecProductDataField(), and Intrepid2::ArrayTools< DeviceType >::scalarMultiplyDataField().
|
static |
Transformation of a 2D curl field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of curls of 2D HGRAD functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobian | [in] - Input array containing cell Jacobians. |
jacobianDet | [in] - Input array containing cell Jacobian determinants. |
inputVals | [in] - Input array of reference HDIV values. |
Definition at line 313 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of a gradient field in the H-grad space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P,D), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P,D).
Computes pullback of gradients of HGRAD functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobianInverse | [in] - Input array containing cell Jacobian inverses. |
inputVals | [in] - Input array of reference HGRAD gradients. |
Definition at line 138 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of a (scalar) value field in the H-grad space, defined at points on a reference cell, stored in the user-provided container input and indexed by (F,P), into the output container output, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of HGRAD functions
In this case
The method returns
i.e., it simply replicates the values in the user-provided container to every cell. See Section Pullbacks for more details about pullbacks.
output | [out] - Output array with transformed values |
input | [in] - Input array of reference HGRAD values. |
Definition at line 63 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and Intrepid2::ArrayTools< DeviceType >::cloneFields().
|
static |
Transformation of a (scalar) value field in the H-vol space, defined at points on a reference cell, stored in the user-provided container inputVals and indexed by (F,P), into the output container outputVals, defined on cells in physical space and indexed by (C,F,P).
Computes pullback of HVOL functions
In this case
The method returns
See Section Pullbacks for more details about pullbacks.
outputVals | [out] - Output array with transformed values |
jacobianDet | [in] - Input array containing cell Jacobian determinants. |
inputVals | [in] - Input array of reference HVOL values. |
Definition at line 397 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::scalarMultiplyDataField().
|
static |
Contracts leftValues and rightValues arrays on the point and possibly space dimensions and stores the result in outputValues; this is a generic, high-level integration routine that calls either FunctionSpaceTools::operatorIntegral, or FunctionSpaceTools::functionalIntegral, or FunctionSpaceTools::dataIntegral methods, depending on the rank of the outputValues array.
outputValues | [out] - Output array. |
leftValues | [in] - Left input array. |
rightValues | [in] - Right input array. |
sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 425 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::contractDataDataScalar(), Intrepid2::ArrayTools< DeviceType >::contractDataDataTensor(), Intrepid2::ArrayTools< DeviceType >::contractDataDataVector(), Intrepid2::ArrayTools< DeviceType >::contractDataFieldScalar(), Intrepid2::ArrayTools< DeviceType >::contractDataFieldTensor(), Intrepid2::ArrayTools< DeviceType >::contractDataFieldVector(), Intrepid2::ArrayTools< DeviceType >::contractFieldFieldScalar(), Intrepid2::ArrayTools< DeviceType >::contractFieldFieldTensor(), and Intrepid2::ArrayTools< DeviceType >::contractFieldFieldVector().
Referenced by Intrepid2::Experimental::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getHGradBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getHVolBasisCoeffs(), Intrepid2::Experimental::ProjectionTools< DeviceType >::getL2BasisCoeffs(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::getL2DGBasisCoeffs().
|
static |
Transformation of 2D HCURL data from physical side to reference side. It takes the input scalar
here
outputVals | [out] - HVOL function in reference space, indexed by (C,P). |
metricTensorDet | [in] - determinant of the metric tensor ![]() |
inputVals | [in] - scalar cross product of a (2D) HCURL function with the unit outer normals to the edges, indexed by (C,P) |
Definition at line 257 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of 3D HCURL data from physical side to reference side. It takes the input vector
here
outputVals | [out] - 2D HCURL function in reference space, indexed by (C,P,2). |
tangents | [in] - physical tangents (T) computed differentiating the parameterization of the physical sides, indexed by (C,P,3,2) |
metricTensorInv | [in] - Inverse of the metric tensor ![]() |
metricTensorDet | [in] - determinant of the metric tensor ![]() |
inputVals | [in] - cross product of a HCURL function with the unit outer normals to the sides, indexed by (C,P,3) |
Definition at line 207 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matvecProductDataData().
|
static |
Transformation of a (vector) data in the H-curl space, defined in the physical space, stored in the user-provided container inputVals and indexed by (C,P,D), into the output container outputVals, defined on the reference cell and indexed by (C,P,D).
Computes the map
where
outputVals | [out] - Output array with reference HCURL data, indexed by (C,P,D) |
jacobianInverse | [in] - Input array containing the Jacobian, indexed by (C,P,D,D) |
inputVals | [in] - Input array of HCURL data in physical space, indexed by (C,P,D). |
Definition at line 164 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matvecProductDataData().
|
static |
Transformation of HDIV data from physical side to reference side. It takes the input
It computes
here
outputVals | [out] - HVOL data in reference space, indexed by (C,P). |
metricTensorDet | [in] - determinant of the metric tensor ![]() |
inputVals | [in] - HDIV function dotted with the unit outer normals to the sides, indexed by (C,P) |
Definition at line 367 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Transformation of a (vector) data in the H-div space, defined in the physical space, stored in the user-provided container inputVals and indexed by (C,P,D), into the output container outputVals, defined on the reference cell and indexed by (C,P,D).
Computes the map
where
outputVals | [out] - Output array with reference HDIV data, indexed by (C,P,D) |
jacobianInverse | [in] - Input array containing the Jacobian inverse, indexed by (C,P,D,D) |
jacobianDet | [in] - Input array containing the Jacobian determinant, indexed by (C,P) |
inputVals | [in] - Input array of HDIV data in physical space, indexed by (C,P,D). |
Definition at line 350 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matvecProductDataData(), and Intrepid2::ArrayTools< DeviceType >::scalarMultiplyDataData().
|
static |
Transformation of a (scalar) data in the H-grad space, defined in physical space, stored in the user-provided container input and indexed by (C,P), into the output container output, defined on reference sides and indexed by (C,P). It computes
output | [out] - Output array of HGRAD data on reference side, indexed by (C,P) |
input | [in] - Input array of HGRAD data on physical side (C,P) |
Definition at line 107 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and Intrepid2::ArrayTools< DeviceType >::cloneFields().
|
static |
Transformation of a (scalar) data in the H-grad space, defined in physical space, stored in the user-provided container input and indexed by (C,P), into the output container output, defined on reference cells and indexed by (C,P). It computes
output | [out] - Output array of HGRAD data in the reference cell, indexed by (C,P) |
input | [in] - Input array of HGRAD data in physical space (C,P) |
Definition at line 85 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and Intrepid2::ArrayTools< DeviceType >::cloneFields().
|
static |
Transformation of a (scalar) data in the H-vol space, defined in the physical space, stored in the user-provided container inputVals and indexed by (C,P), into the output container outputVals, defined on the reference cell and indexed by (C,P).
Computes the map
where
outputVals | [out] - Output array with reference HVOL data, indexed by (C,P) |
jacobianDet | [in] - Input array containing the Jacobian determinant, indexed by (C,P) |
inputVals | [in] - Input array of HVOL data in physical space, indexed by (C,P). |
Definition at line 409 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::scalarMultiplyDataData().
|
static |
Multiplies fields inputVals by weighted measures inputMeasure and returns the field array outputVals; this is a simple redirection to the call FunctionSpaceTools::scalarMultiplyDataField.
outputVals | [out] - Output array with scaled field values. |
inputMeasure | [in] - Input array containing weighted measures. |
inputVals | [in] - Input fields. |
void Intrepid2::FunctionSpaceTools< DeviceType >::multiplyMeasure | ( | Kokkos::DynRankView< outputValValueType, outputValProperties... > | outputVals, |
const Kokkos::DynRankView< inputMeasureValueType, inputMeasureProperties... > | inputMeasure, | ||
const Kokkos::DynRankView< inputValValueType, inputValProperties... > | inputVals | ||
) |
Definition at line 708 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Scalar multiplication of data and data; please read the description below.
There are two use cases:
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 742 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::scalarMultiplyDataData().
|
static |
Scalar multiplication of data and fields; please read the description below.
There are two use cases:
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. |
void Intrepid2::FunctionSpaceTools< DeviceType >::scalarMultiplyDataField | ( | Kokkos::DynRankView< outputFieldValueType, outputFieldProperties... > | outputFields, |
const Kokkos::DynRankView< inputDataValueType, inputDataProperties... > | inputData, | ||
const Kokkos::DynRankView< inputFieldValueType, inputFieldProperties... > | inputFields, | ||
const bool | reciprocal | ||
) |
Definition at line 724 of file Intrepid2_FunctionSpaceToolsDef.hpp.
|
static |
Matrix-vector or matrix-matrix product of data and data; please read the description below.
There are four use cases:
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 888 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matmatProductDataData(), and Intrepid2::ArrayTools< DeviceType >::matvecProductDataData().
|
static |
Matrix-vector or matrix-matrix product of data and fields; please read the description below.
There are four use cases:
outputFields | [out] - Output (matrix-vector or matrix-matrix product) fields array. |
inputData | [in] - Data array. |
inputFields | [in] - Input fields array. |
transpose | [in] - If 'T', use transposed left data tensor; if 'N', no transpose. Default: 'N'. |
Definition at line 854 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::matmatProductDataField(), and Intrepid2::ArrayTools< DeviceType >::matvecProductDataField().
|
static |
Cross or outer product of data and data; please read the description below.
There are four use cases:
outputData | [out] - Output (cross or outer product) data array. |
inputDataLeft | [in] - Left input data array. |
inputDataRight | [in] - Right input data array. |
Definition at line 823 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::crossProductDataData(), and Intrepid2::ArrayTools< DeviceType >::outerProductDataData().
|
static |
Cross or outer product of data and fields; please read the description below.
There are four use cases:
outputFields | [out] - Output (cross or outer product) fields array. |
inputData | [in] - Data array. |
inputFields | [in] - Input fields array. |
Definition at line 792 of file Intrepid2_FunctionSpaceToolsDef.hpp.
References Intrepid2::ArrayTools< DeviceType >::crossProductDataField(), and Intrepid2::ArrayTools< DeviceType >::outerProductDataField().