|
Intrepid2
|
Structure-preserving representation of transformed vector data; reference space values and transformations are stored separately. More...
#include <Intrepid2_TransformedVectorData.hpp>
Public Types | |
| using | Transform = Data< Scalar, DeviceType > |
Public Member Functions | |
| TransformedVectorData (const Data< Scalar, DeviceType > &transform, const VectorData< Scalar, DeviceType > &vectorData) | |
| Standard constructor. More... | |
| TransformedVectorData (const VectorData< Scalar, DeviceType > &vectorData) | |
| Constructor for the case of an identity transform. More... | |
| template<typename OtherDeviceType , class = typename std::enable_if<!std::is_same<DeviceType, OtherDeviceType>::value>::type> | |
| TransformedVectorData (const TransformedVectorData< 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. More... | |
| KOKKOS_INLINE_FUNCTION bool | axisAligned () const |
| Returns true if the transformation matrix is diagonal. More... | |
| 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). More... | |
| KOKKOS_INLINE_FUNCTION DataVariationType | cellVariationType () const |
| Returns the variation type corresponding to the cell dimension. More... | |
| KOKKOS_INLINE_FUNCTION int | numCells () const |
| Returns the logical extent in the cell dimension, which is the 0 dimension in this container. More... | |
| KOKKOS_INLINE_FUNCTION int | numFields () const |
| Returns the logical extent in the fields dimension, which is the 1 dimension in this container. More... | |
| KOKKOS_INLINE_FUNCTION int | numPoints () const |
| Returns the logical extent in the points dimension, which is the 2 dimension in this container. More... | |
| KOKKOS_INLINE_FUNCTION int | spaceDim () const |
| Returns the logical extent in the space dimension, which is the 3 dimension in this container. More... | |
| KOKKOS_INLINE_FUNCTION Scalar | operator() (const int &cellOrdinal, const int &fieldOrdinal, const int &pointOrdinal, const int &dim) const |
| Accessor, with arguments (C,F,P,D). More... | |
| 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. More... | |
| const Data< Scalar, DeviceType > & | transform () const |
| Returns the transform matrix. An invalid/empty container indicates the identity transform. More... | |
| const VectorData< Scalar, DeviceType > & | vectorData () const |
| Returns the reference-space vector data. More... | |
| KOKKOS_INLINE_FUNCTION constexpr unsigned | rank () const |
| Returns the rank of the container, which is 4. More... | |
| KOKKOS_INLINE_FUNCTION int | extent_int (const int &r) const |
| Returns the extent in the specified dimension as an int. More... | |
Public Attributes | |
| Data< Scalar, DeviceType > | transform_ |
| VectorData< Scalar, DeviceType > | vectorData_ |
Structure-preserving representation of transformed vector data; reference space values and transformations are stored separately.
TransformedVectorData provides a View-like interface of rank 4, with shape (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 64 of file Intrepid2_TransformedVectorData.hpp.
| using Intrepid2::TransformedVectorData< Scalar, DeviceType >::Transform = Data<Scalar,DeviceType> |
Definition at line 67 of file Intrepid2_TransformedVectorData.hpp.
|
inline |
Standard constructor.
| [in] | transform | - the transformation matrix, with logical shape (C,P,D,D) |
| [in] | vectorData | - the reference-space data to be transformed, with logical shape (F,P,D) |
Definition at line 78 of file Intrepid2_TransformedVectorData.hpp.
|
inline |
Constructor for the case of an identity transform.
| [in] | vectorData | - the reference-space data, with logical shape (F,P,D) |
Definition at line 90 of file Intrepid2_TransformedVectorData.hpp.
|
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 97 of file Intrepid2_TransformedVectorData.hpp.
|
inline |
Returns true if the transformation matrix is diagonal.
Definition at line 104 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::isDiagonal(), and Intrepid2::Data< DataScalar, DeviceType >::isValid().
|
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 118 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::getDataExtent().
|
inline |
Returns the variation type corresponding to the cell dimension.
Definition at line 124 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::getVariationTypes().
|
inline |
Returns the extent in the specified dimension as an int.
Definition at line 211 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::TransformedVectorData< Scalar, DeviceType >::numCells(), Intrepid2::TransformedVectorData< Scalar, DeviceType >::numFields(), Intrepid2::TransformedVectorData< Scalar, DeviceType >::numPoints(), and Intrepid2::TransformedVectorData< Scalar, DeviceType >::spaceDim().
|
inline |
Returns the logical extent in the cell dimension, which is the 0 dimension in this container.
Definition at line 130 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::extent_int().
Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), and Intrepid2::TransformedVectorData< Scalar, DeviceType >::extent_int().
|
inline |
Returns the logical extent in the fields dimension, which is the 1 dimension in this container.
Definition at line 136 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::VectorData< Scalar, DeviceType >::numFields().
Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), Intrepid2::TransformedVectorData< Scalar, DeviceType >::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 142 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::VectorData< Scalar, DeviceType >::numPoints().
Referenced by Intrepid2::TransformedVectorData< Scalar, DeviceType >::extent_int().
|
inline |
Accessor, with arguments (C,F,P,D).
Definition at line 154 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::extent_int(), Intrepid2::Data< DataScalar, DeviceType >::isDiagonal(), and Intrepid2::Data< DataScalar, DeviceType >::isValid().
|
inlineconstexpr |
Returns the rank of the container, which is 4.
Definition at line 204 of file Intrepid2_TransformedVectorData.hpp.
|
inline |
Returns the logical extent in the space dimension, which is the 3 dimension in this container.
Definition at line 148 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::VectorData< Scalar, DeviceType >::spaceDim().
Referenced by Intrepid2::TransformedVectorData< Scalar, DeviceType >::extent_int(), and Intrepid2::IntegrationTools< DeviceType >::integrate().
|
inline |
Returns the transform matrix. An invalid/empty container indicates the identity transform.
Definition at line 191 of file Intrepid2_TransformedVectorData.hpp.
Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData().
|
inline |
Returns the specified entry in the transform matrix.
Definition at line 177 of file Intrepid2_TransformedVectorData.hpp.
References Intrepid2::Data< DataScalar, DeviceType >::isValid().
|
inline |
Returns the reference-space vector data.
Definition at line 197 of file Intrepid2_TransformedVectorData.hpp.
| Data<Scalar,DeviceType> Intrepid2::TransformedVectorData< Scalar, DeviceType >::transform_ |
Definition at line 69 of file Intrepid2_TransformedVectorData.hpp.
| VectorData<Scalar, DeviceType> Intrepid2::TransformedVectorData< Scalar, DeviceType >::vectorData_ |
Definition at line 71 of file Intrepid2_TransformedVectorData.hpp.