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
 For use with Data object into which a value will be stored. More...
 
struct  Intrepid2::Data< DataScalar, DeviceType >::InPlaceCombinationFunctor< BinaryOperator, ThisUnderlyingViewType, AUnderlyingViewType, BUnderlyingViewType, ArgExtractorThis, ArgExtractorA, ArgExtractorB, includeInnerLoop >
 
struct  Intrepid2::Data< DataScalar, DeviceType >::bool_pack<... >
 

Enumerations

enum  Intrepid2::DataVariationType { Intrepid2::CONSTANT, Intrepid2::MODULAR, Intrepid2::BLOCK_PLUS_DIAGONAL, Intrepid2::GENERAL }
 Enumeration to indicate how data varies in a particular dimension of an Intrepid2::Data object. CONSTANT indicates that the data does not vary; MODULAR indicates that it varies according to some (separately specified) modulus; BLOCK_PLUS_DIAGONAL allows specification of a matrix that has a non-diagonal block followed by a diagonal block; GENERAL indicates arbitrary variation. More...
 

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

Enumeration to indicate how data varies in a particular dimension of an Intrepid2::Data object. CONSTANT indicates that the data does not vary; MODULAR indicates that it varies according to some (separately specified) modulus; BLOCK_PLUS_DIAGONAL allows specification of a matrix that has a non-diagonal block followed by a diagonal block; GENERAL indicates arbitrary variation.

To give some examples for a Data object containing the Jacobian for reference-to-physical space mappings:

  • CONSTANT could be used in the point dimension for an affine transformation
  • MODULAR could be used for the cell dimension for a uniform grid that has been subdivided into simplices
  • BLOCK_PLUS_DIAGONAL could be used for the coordinate dimensions for an arbitrary 2D mesh that has been orthogonally extruded in the z dimension (resulting in diagonal entries in the final row and column of the Jacobian matrix)
  • GENERAL should be used in any dimension in which the data varies in a way not captured by the other options
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.