Intrepid2
Classes | Enumerations | Functions
Intrepid2_Data.hpp File Reference

Defines the Data class, a wrapper around a Kokkos::View that allows data that is constant or repeating in various logical dimensions to be stored just once, while providing a similar interface to that of View. More...

#include "Intrepid2_ArgExtractor.hpp"
#include "Intrepid2_ScalarView.hpp"
#include "Intrepid2_Utils.hpp"

Go to the source code of this file.

Classes

struct  Intrepid2::DimensionInfo
 Struct expressing all variation information about a Data object in a single dimension, including its logical extent and storage extent. More...
 
class  Intrepid2::ZeroView< DataScalar, DeviceType >
 A singleton class for a DynRankView containing exactly one zero entry. (Technically, the entry is DataScalar(), the default value for the scalar type.) This allows View-wrapping classes to return a reference to zero, even when that zero is not explicitly stored in the wrapped views. More...
 
class  Intrepid2::Data< DataScalar, DeviceType >
 Wrapper around a Kokkos::View that allows data that is constant or repeating in various logical dimensions to be stored just once, while providing a similar interface to that of View. More...
 
struct  Intrepid2::Data< DataScalar, DeviceType >::FullArgExtractorWritableData< passThroughBlockDiagonalArgs >
 For use with Data object into which a value will be stored. We use passThroughBlockDiagonalArgs = true for storeInPlaceCombination(). More...
 
struct  Intrepid2::Data< DataScalar, DeviceType >::FullArgExtractorData< passThroughBlockDiagonalArgs >
 For use with Data object into which a value will be stored. We use passThroughBlockDiagonalArgs = true for storeInPlaceCombination(). More...
 
struct  Intrepid2::Data< DataScalar, DeviceType >::InPlaceCombinationFunctor< BinaryOperator, ThisUnderlyingViewType, AUnderlyingViewType, BUnderlyingViewType, ArgExtractorThis, ArgExtractorA, ArgExtractorB, includeInnerLoop >
 

Enumerations

enum  Intrepid2::DataVariationType { Intrepid2::CONSTANT , Intrepid2::MODULAR , Intrepid2::BLOCK_PLUS_DIAGONAL , Intrepid2::GENERAL }
 

Functions

KOKKOS_INLINE_FUNCTION DimensionInfo Intrepid2::combinedDimensionInfo (const DimensionInfo &myData, const DimensionInfo &otherData)
 Returns DimensionInfo for a Data container that combines (through multiplication, say, or addition) the two specified DimensionInfo specifications in one of its dimensions.
 

Detailed Description

Defines the Data class, a wrapper around a Kokkos::View that allows data that is constant or repeating in various logical dimensions to be stored just once, while providing a similar interface to that of View.

Author
Created by N.V. Roberts.

Definition in file Intrepid2_Data.hpp.

Enumeration Type Documentation

◆ DataVariationType

Enumerator
CONSTANT 

does not vary

MODULAR 

varies according to modulus of the index

BLOCK_PLUS_DIAGONAL 

one of two dimensions in a matrix; bottom-right part of matrix is diagonal

GENERAL 

arbitrary variation

Definition at line 31 of file Intrepid2_Data.hpp.

Function Documentation

◆ combinedDimensionInfo()

KOKKOS_INLINE_FUNCTION DimensionInfo Intrepid2::combinedDimensionInfo ( const DimensionInfo & myData,
const DimensionInfo & otherData )

Returns DimensionInfo for a Data container that combines (through multiplication, say, or addition) the two specified DimensionInfo specifications in one of its dimensions.

Definition at line 53 of file Intrepid2_Data.hpp.

References Intrepid2::BLOCK_PLUS_DIAGONAL, Intrepid2::combinedDimensionInfo(), Intrepid2::CONSTANT, Intrepid2::GENERAL, INTREPID2_TEST_FOR_EXCEPTION_DEVICE_SAFE, and Intrepid2::MODULAR.

Referenced by Intrepid2::IntegrationTools< DeviceType >::allocateIntegralData(), Intrepid2::Data< DataScalar, DeviceType >::combinedDataDimensionInfo(), and Intrepid2::combinedDimensionInfo().