|
Intrepid2
|
Structure-preserving representation of transformed vector data; reference space values and transformations are stored separately. More...
#include <Intrepid2_TransformedBasisValues.hpp>
Public Member Functions | |
| TransformedBasisValues (const Data< Scalar, DeviceType > &transform, const BasisValues< Scalar, DeviceType > &basisValues) | |
| Standard constructor. | |
| TransformedBasisValues (const ordinal_type &numCells, const BasisValues< Scalar, DeviceType > &basisValues) | |
| Constructor for the case of an identity transform. | |
| template<typename OtherDeviceType, class = typename std::enable_if<!std::is_same<DeviceType, OtherDeviceType>::value>::type> | |
| TransformedBasisValues (const TransformedBasisValues< Scalar, OtherDeviceType > &transformedVectorData) | |
| copy-like constructor for differing device types. This may do a deep_copy of underlying views, depending on the memory spaces involved. | |
| TransformedBasisValues () | |
| Default constructor; an invalid container. Will return -1 for numCells(). | |
| KOKKOS_INLINE_FUNCTION bool | axisAligned () const |
| Returns true if the transformation matrix is diagonal. | |
| BasisValues< Scalar, DeviceType > | basisValues () const |
| KOKKOS_INLINE_FUNCTION int | cellDataExtent () const |
| Returns the true data extent in the cell dimension (e.g., will be 1 for transform matrices that do not vary from one cell to the next). | |
| KOKKOS_INLINE_FUNCTION DataVariationType | cellVariationType () const |
| Returns the variation type corresponding to the cell dimension. | |
| template<class ViewType> | |
| void | multiplyByPointwiseWeights (const ViewType &weights) |
| Replaces the internal pullback (transformation operator) with the result of the pullback multiplied by the specified (C,P) weights. ViewType may be a rank-2 Kokkos::View, a rank-2 Kokkos::DynRankView, or a rank-2 Intrepid2::Data object. | |
| KOKKOS_INLINE_FUNCTION int | numCells () const |
| Returns the logical extent in the cell dimension, which is the 0 dimension in this container. | |
| KOKKOS_INLINE_FUNCTION int | numFields () const |
| Returns the logical extent in the fields dimension, which is the 1 dimension in this container. | |
| KOKKOS_INLINE_FUNCTION int | numPoints () const |
| Returns the logical extent in the points dimension, which is the 2 dimension in this container. | |
| KOKKOS_INLINE_FUNCTION int | spaceDim () const |
| Returns the logical extent in the space dimension, which is the 3 dimension in this container. | |
| KOKKOS_INLINE_FUNCTION Scalar | operator() (const int &cellOrdinal, const int &fieldOrdinal, const int &pointOrdinal) const |
| Scalar accessor, with arguments (C,F,P). | |
| KOKKOS_INLINE_FUNCTION Scalar | operator() (const int &cellOrdinal, const int &fieldOrdinal, const int &pointOrdinal, const int &dim) const |
| Vector accessor, with arguments (C,F,P,D). | |
| KOKKOS_INLINE_FUNCTION Scalar | transformWeight (const int &cellOrdinal, const int &pointOrdinal) const |
| Returns the specified entry in the (scalar) transform. (Only valid for scalar-valued BasisValues; see the four-argument transformWeight() for the vector-valued case.). | |
| KOKKOS_INLINE_FUNCTION Scalar | transformWeight (const int &cellOrdinal, const int &pointOrdinal, const int &d) const |
| Returns the specified entry in the transformation vector. | |
| KOKKOS_INLINE_FUNCTION Scalar | transformWeight (const int &cellOrdinal, const int &pointOrdinal, const int &dim1, const int &dim2) const |
| Returns the specified entry in the transform matrix. | |
| const Data< Scalar, DeviceType > & | transform () const |
| Returns the transform matrix. An invalid/empty container indicates the identity transform. | |
| const VectorData< Scalar, DeviceType > & | vectorData () const |
| Returns the reference-space vector data. | |
| KOKKOS_INLINE_FUNCTION unsigned | rank () const |
| Returns the rank of the container, which is 3 for scalar values, and 4 for vector values. | |
| KOKKOS_INLINE_FUNCTION int | extent_int (const int &r) const |
| Returns the extent in the specified dimension as an int. | |
Public Attributes | |
| ordinal_type | numCells_ |
| Data< Scalar, DeviceType > | transform_ |
| BasisValues< Scalar, DeviceType > | basisValues_ |
Structure-preserving representation of transformed vector data; reference space values and transformations are stored separately.
TransformedBasisValues provides a View-like interface of rank 3 or 4, with shape (C,F,P) or (C,F,P,D). When the corresponding accessor is used, the transformed value is determined from corresponding reference space values and the transformation.
Definition at line 33 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Standard constructor.
| [in] | transform | - the transformation (matrix), with logical shape (C,P), (C,P,D), or (C,P,D,D) |
| [in] | basisValues | - the reference-space data to be transformed, with logical shape (F,P) (for scalar values) or (F,P,D) (for vector values) |
Definition at line 47 of file Intrepid2_TransformedBasisValues.hpp.
References extent_int(), INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE, and transform().
Referenced by TransformedBasisValues().
|
inline |
Constructor for the case of an identity transform.
| [in] | vectorData | - the reference-space data, with logical shape (F,P,D) |
Definition at line 62 of file Intrepid2_TransformedBasisValues.hpp.
References numCells().
|
inline |
copy-like constructor for differing device types. This may do a deep_copy of underlying views, depending on the memory spaces involved.
Definition at line 70 of file Intrepid2_TransformedBasisValues.hpp.
References numCells(), transform(), and TransformedBasisValues().
|
inline |
Default constructor; an invalid container. Will return -1 for numCells().
Definition at line 80 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Returns true if the transformation matrix is diagonal.
Definition at line 86 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::integrate().
|
inline |
Definition at line 99 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Returns the true data extent in the cell dimension (e.g., will be 1 for transform matrices that do not vary from one cell to the next).
Definition at line 105 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Returns the variation type corresponding to the cell dimension.
Definition at line 111 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Returns the extent in the specified dimension as an int.
Definition at line 325 of file Intrepid2_TransformedBasisValues.hpp.
References numCells(), numFields(), numPoints(), and spaceDim().
Referenced by TransformedBasisValues().
|
inline |
Replaces the internal pullback (transformation operator) with the result of the pullback multiplied by the specified (C,P) weights. ViewType may be a rank-2 Kokkos::View, a rank-2 Kokkos::DynRankView, or a rank-2 Intrepid2::Data object.
Definition at line 118 of file Intrepid2_TransformedBasisValues.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::allocateInPlaceCombinationResult(), INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE, and Intrepid2::DataTools::multiplyByCPWeights().
|
inline |
Returns the logical extent in the cell dimension, which is the 0 dimension in this container.
Definition at line 148 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), extent_int(), Intrepid2::IntegrationTools< DeviceType >::integrate(), TransformedBasisValues(), and TransformedBasisValues().
|
inline |
Returns the logical extent in the fields dimension, which is the 1 dimension in this container.
Definition at line 154 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), extent_int(), and Intrepid2::IntegrationTools< DeviceType >::integrate().
|
inline |
Returns the logical extent in the points dimension, which is the 2 dimension in this container.
Definition at line 160 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by extent_int(), and Intrepid2::IntegrationTools< DeviceType >::integrate().
|
inline |
Scalar accessor, with arguments (C,F,P).
Definition at line 187 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Vector accessor, with arguments (C,F,P,D).
Definition at line 211 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Returns the rank of the container, which is 3 for scalar values, and 4 for vector values.
Definition at line 298 of file Intrepid2_TransformedBasisValues.hpp.
References INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE.
|
inline |
Returns the logical extent in the space dimension, which is the 3 dimension in this container.
Definition at line 166 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by extent_int(), and Intrepid2::IntegrationTools< DeviceType >::integrate().
|
inline |
Returns the transform matrix. An invalid/empty container indicates the identity transform.
Definition at line 285 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), Intrepid2::IntegrationTools< DeviceType >::integrate(), TransformedBasisValues(), and TransformedBasisValues().
|
inline |
Returns the specified entry in the (scalar) transform. (Only valid for scalar-valued BasisValues; see the four-argument transformWeight() for the vector-valued case.).
Definition at line 244 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::integrate().
|
inline |
Returns the specified entry in the transformation vector.
Definition at line 258 of file Intrepid2_TransformedBasisValues.hpp.
References INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE.
|
inline |
Returns the specified entry in the transform matrix.
Definition at line 271 of file Intrepid2_TransformedBasisValues.hpp.
|
inline |
Returns the reference-space vector data.
Definition at line 291 of file Intrepid2_TransformedBasisValues.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::integrate().
| BasisValues<Scalar, DeviceType> Intrepid2::TransformedBasisValues< Scalar, DeviceType >::basisValues_ |
Definition at line 40 of file Intrepid2_TransformedBasisValues.hpp.
| ordinal_type Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numCells_ |
Definition at line 36 of file Intrepid2_TransformedBasisValues.hpp.
| Data<Scalar,DeviceType> Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transform_ |
Definition at line 38 of file Intrepid2_TransformedBasisValues.hpp.