Intrepid2
|
Provides support for structure-aware integration. More...
#include <Intrepid2_IntegrationTools.hpp>
Static Public Member Functions | |
template<class Scalar > | |
static Data< Scalar, DeviceType > | allocateIntegralData (const TransformedBasisValues< Scalar, DeviceType > vectorDataLeft, const TensorData< Scalar, DeviceType > cellMeasures, const TransformedBasisValues< Scalar, DeviceType > vectorDataRight) |
Allocates storage for the contraction of vectorDataLeft and vectorDataRight containers on point and space dimensions, weighting each point according to cellMeasures. More... | |
template<class Scalar > | |
static void | integrate (Data< Scalar, DeviceType > integrals, const TransformedBasisValues< Scalar, DeviceType > &vectorDataLeft, const TensorData< Scalar, DeviceType > &cellMeasures, const TransformedBasisValues< Scalar, DeviceType > &vectorDataRight, const bool sumInto=false, double *approximateFlops=NULL) |
Contracts vectorDataLeft and vectorDataRight containers on point and space dimensions, weighting each point according to cellMeasures, and stores the result in outputValues. The integrals container can be constructed using allocateIntegralData(). More... | |
Provides support for structure-aware integration.
Definition at line 45 of file Intrepid2_IntegrationTools.hpp.
|
static |
Allocates storage for the contraction of vectorDataLeft and vectorDataRight containers on point and space dimensions, weighting each point according to cellMeasures.
vectorDataRight | [in] - Left input container, with logical shape (C,F,P,D) |
cellMeasures | [in] - Point weight container, with logical shape (C,P) |
vectorDataLeft | [in] - Right input container with logical shape (C,F,P,D) |
sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
Definition at line 1868 of file Intrepid2_IntegrationToolsDef.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::getDimensionInfo(), Intrepid2::TensorData< Scalar, DeviceType >::getTensorComponent(), Intrepid2::Data< DataScalar, DeviceType >::isValid(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numCells(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numFields(), and Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transform().
|
static |
Contracts vectorDataLeft and vectorDataRight containers on point and space dimensions, weighting each point according to cellMeasures, and stores the result in outputValues. The integrals container can be constructed using allocateIntegralData().
outputValues | [out] - Output array, with logical shape (C,F,F) |
vectorDataRight | [in] - Left input container, with logical shape (C,F,P,D) |
cellMeasures | [in] - Point weight container, with logical shape (C,P) |
vectorDataLeft | [in] - Right input container with logical shape (C,F,P,D) |
sumInto | [in] - If TRUE, sum into given output array, otherwise overwrite it. Default: FALSE. |
approxFlops | [in] - if not NULL, the double pointed to will be set with an estimated number of floating point operations. Intended for performance assessment purposes. |
Two use cases:
Definition at line 1926 of file Intrepid2_IntegrationToolsDef.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::allocateInPlaceCombinationResult(), Intrepid2::Data< DataScalar, DeviceType >::allocateMatMatResult(), Intrepid2::TensorArgumentIterator::argument(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::axisAligned(), Intrepid2::Data< DataScalar, DeviceType >::clear(), Intrepid2::TensorData< Scalar, DeviceType >::extent_int(), Intrepid2::Data< DataScalar, DeviceType >::extent_int(), Intrepid2::Data< DataScalar, DeviceType >::getDataExtent(), Intrepid2::Data< DataScalar, DeviceType >::getExtents(), Intrepid2::TensorData< Scalar, DeviceType >::getTensorComponent(), Intrepid2::Data< DataScalar, DeviceType >::getUnderlyingView(), Intrepid2::Data< DataScalar, DeviceType >::getUnderlyingView2(), Intrepid2::Data< DataScalar, DeviceType >::getUnderlyingView3(), Intrepid2::Data< DataScalar, DeviceType >::getUnderlyingViewRank(), Intrepid2::Data< DataScalar, DeviceType >::getUnderlyingViewSize(), Intrepid2::Data< DataScalar, DeviceType >::getVariationTypes(), INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE, Intrepid2::TensorData< Scalar, DeviceType >::isValid(), Intrepid2::Data< DataScalar, DeviceType >::isValid(), Intrepid2::Parameters::MaxTensorComponents, Intrepid2::DataTools::multiplyByCPWeights(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numCells(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numFields(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numPoints(), Intrepid2::TensorData< Scalar, DeviceType >::numTensorComponents(), Intrepid2::Data< DataScalar, DeviceType >::rank(), Intrepid2::TensorArgumentIterator::setEnumerationIndex(), Intrepid2::Data< DataScalar, DeviceType >::shallowCopy(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::spaceDim(), Intrepid2::Data< DataScalar, DeviceType >::storeInPlaceProduct(), Intrepid2::Data< DataScalar, DeviceType >::storeMatMat(), Intrepid2::Impl::F_Integrate< Scalar, DeviceType, integralViewRank >::teamSize(), Intrepid2::Impl::F_IntegratePointValueCache< Scalar, DeviceType, integralViewRank >::teamSize(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transform(), Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transformWeight(), Intrepid2::DataTools::transposeMatrix(), and Intrepid2::TransformedBasisValues< Scalar, DeviceType >::vectorData().