Intrepid2
Intrepid2::TransformedBasisValues< Scalar, DeviceType > Class Template Reference

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.
 
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 &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_
 

Detailed Description

template<class Scalar, typename DeviceType>
class Intrepid2::TransformedBasisValues< Scalar, DeviceType >

Structure-preserving representation of transformed vector data; reference space values and transformations are stored separately.

TransformedBasisValues 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.

Constructor & Destructor Documentation

◆ TransformedBasisValues() [1/4]

template<class Scalar , typename DeviceType >
Intrepid2::TransformedBasisValues< Scalar, DeviceType >::TransformedBasisValues ( const Data< Scalar, DeviceType > & transform,
const BasisValues< Scalar, DeviceType > & basisValues )
inline

Standard constructor.

Parameters
[in]transform- the transformation (matrix), with logical shape (C,P) 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 79 of file Intrepid2_TransformedBasisValues.hpp.

References Intrepid2::CONSTANT, and INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE.

◆ TransformedBasisValues() [2/4]

template<class Scalar , typename DeviceType >
Intrepid2::TransformedBasisValues< Scalar, DeviceType >::TransformedBasisValues ( const ordinal_type & numCells,
const BasisValues< Scalar, DeviceType > & basisValues )
inline

Constructor for the case of an identity transform.

Parameters
[in]vectorData- the reference-space data, with logical shape (F,P,D)

Definition at line 93 of file Intrepid2_TransformedBasisValues.hpp.

◆ TransformedBasisValues() [3/4]

template<class Scalar , typename DeviceType >
template<typename OtherDeviceType , class = typename std::enable_if<!std::is_same<DeviceType, OtherDeviceType>::value>::type>
Intrepid2::TransformedBasisValues< Scalar, DeviceType >::TransformedBasisValues ( const TransformedBasisValues< Scalar, OtherDeviceType > & transformedVectorData)
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 101 of file Intrepid2_TransformedBasisValues.hpp.

◆ TransformedBasisValues() [4/4]

template<class Scalar , typename DeviceType >
Intrepid2::TransformedBasisValues< Scalar, DeviceType >::TransformedBasisValues ( )
inline

Default constructor; an invalid container. Will return -1 for numCells().

Definition at line 111 of file Intrepid2_TransformedBasisValues.hpp.

Member Function Documentation

◆ axisAligned()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION bool Intrepid2::TransformedBasisValues< Scalar, DeviceType >::axisAligned ( ) const
inline

Returns true if the transformation matrix is diagonal.

Definition at line 117 of file Intrepid2_TransformedBasisValues.hpp.

Referenced by Intrepid2::IntegrationTools< DeviceType >::integrate().

◆ basisValues()

template<class Scalar , typename DeviceType >
BasisValues< Scalar, DeviceType > Intrepid2::TransformedBasisValues< Scalar, DeviceType >::basisValues ( ) const
inline

Definition at line 130 of file Intrepid2_TransformedBasisValues.hpp.

◆ cellDataExtent()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION int Intrepid2::TransformedBasisValues< Scalar, DeviceType >::cellDataExtent ( ) const
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 136 of file Intrepid2_TransformedBasisValues.hpp.

◆ cellVariationType()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION DataVariationType Intrepid2::TransformedBasisValues< Scalar, DeviceType >::cellVariationType ( ) const
inline

Returns the variation type corresponding to the cell dimension.

Definition at line 142 of file Intrepid2_TransformedBasisValues.hpp.

◆ extent_int()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION int Intrepid2::TransformedBasisValues< Scalar, DeviceType >::extent_int ( const int & r) const
inline

◆ numCells()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION int Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numCells ( ) const
inline

◆ numFields()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION int Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numFields ( ) const
inline

◆ numPoints()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION int Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numPoints ( ) const
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 Intrepid2::TransformedBasisValues< Scalar, DeviceType >::extent_int(), and Intrepid2::IntegrationTools< DeviceType >::integrate().

◆ operator()() [1/2]

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION Scalar Intrepid2::TransformedBasisValues< Scalar, DeviceType >::operator() ( const int & cellOrdinal,
const int & fieldOrdinal,
const int & pointOrdinal ) const
inline

Scalar accessor, with arguments (C,F,P).

Definition at line 172 of file Intrepid2_TransformedBasisValues.hpp.

◆ operator()() [2/2]

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION Scalar Intrepid2::TransformedBasisValues< Scalar, DeviceType >::operator() ( const int & cellOrdinal,
const int & fieldOrdinal,
const int & pointOrdinal,
const int & dim ) const
inline

Vector accessor, with arguments (C,F,P,D).

Definition at line 186 of file Intrepid2_TransformedBasisValues.hpp.

◆ rank()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION unsigned Intrepid2::TransformedBasisValues< Scalar, DeviceType >::rank ( ) const
inline

Returns the rank of the container, which is 3 for scalar values, and 4 for vector values.

Definition at line 250 of file Intrepid2_TransformedBasisValues.hpp.

◆ spaceDim()

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION int Intrepid2::TransformedBasisValues< Scalar, DeviceType >::spaceDim ( ) const
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 Intrepid2::TransformedBasisValues< Scalar, DeviceType >::extent_int(), and Intrepid2::IntegrationTools< DeviceType >::integrate().

◆ transform()

template<class Scalar , typename DeviceType >
const Data< Scalar, DeviceType > & Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transform ( ) const
inline

Returns the transform matrix. An invalid/empty container indicates the identity transform.

Definition at line 237 of file Intrepid2_TransformedBasisValues.hpp.

Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), and Intrepid2::IntegrationTools< DeviceType >::integrate().

◆ transformWeight() [1/2]

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION Scalar Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transformWeight ( const int & cellOrdinal,
const int & pointOrdinal ) const
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 209 of file Intrepid2_TransformedBasisValues.hpp.

Referenced by Intrepid2::IntegrationTools< DeviceType >::integrate().

◆ transformWeight() [2/2]

template<class Scalar , typename DeviceType >
KOKKOS_INLINE_FUNCTION Scalar Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transformWeight ( const int & cellOrdinal,
const int & pointOrdinal,
const int & dim1,
const int & dim2 ) const
inline

Returns the specified entry in the transform matrix.

Definition at line 223 of file Intrepid2_TransformedBasisValues.hpp.

◆ vectorData()

template<class Scalar , typename DeviceType >
const VectorData< Scalar, DeviceType > & Intrepid2::TransformedBasisValues< Scalar, DeviceType >::vectorData ( ) const
inline

Returns the reference-space vector data.

Definition at line 243 of file Intrepid2_TransformedBasisValues.hpp.

Referenced by Intrepid2::IntegrationTools< DeviceType >::integrate().

Member Data Documentation

◆ basisValues_

template<class Scalar , typename DeviceType >
BasisValues<Scalar, DeviceType> Intrepid2::TransformedBasisValues< Scalar, DeviceType >::basisValues_

Definition at line 72 of file Intrepid2_TransformedBasisValues.hpp.

◆ numCells_

template<class Scalar , typename DeviceType >
ordinal_type Intrepid2::TransformedBasisValues< Scalar, DeviceType >::numCells_

Definition at line 68 of file Intrepid2_TransformedBasisValues.hpp.

◆ transform_

template<class Scalar , typename DeviceType >
Data<Scalar,DeviceType> Intrepid2::TransformedBasisValues< Scalar, DeviceType >::transform_

Definition at line 70 of file Intrepid2_TransformedBasisValues.hpp.


The documentation for this class was generated from the following file: