waLBerla 7.3
Loading...
Searching...
No Matches
walberla::v8::memory::BufferView< TElement, TRank, TMemTag > Class Template Reference

#include <BufferSystem.hpp>

Public Types

using element_type = TElement
using value_type = std::remove_cv_t< element_type >
using pointer_type = element_type*
using reference_type = element_type&
using memory_tag = TMemTag
using IndexingType = BufferIndexing< TRank >
using index_type = IndexingType::index_type

Public Member Functions

WALBERLA_HOST_DEVICE BufferView (element_type *data, element_type *allocData, const IndexingType &indexing)
template<typename = void>
WALBERLA_HOST_DEVICE BufferView (const BufferView< value_type, RANK, memory_tag > &other)
 Convert non-const to const buffer view.
WALBERLA_HOST_DEVICE reference_type operator() (std::convertible_to< index_type > auto... indices) const
WALBERLA_HOST_DEVICE pointer_type data () const
WALBERLA_HOST_DEVICE pointer_type allocData () const
WALBERLA_HOST_DEVICE pointer_type dataAt (std::convertible_to< index_type > auto... indices) const
WALBERLA_HOST_DEVICE const IndexingTypeindexing () const
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANKshape () const
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANKallocShape () const
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANKallocOffsets () const
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANKstrides () const
WALBERLA_HOST_DEVICE stdlib::span< element_typelinearView () const
WALBERLA_HOST_DEVICE stdlib::span< element_typelinearAllocView () const

Static Public Attributes

static constexpr bool IS_CONST = std::is_const_v< element_type >
static constexpr size_t RANK = TRank

Private Attributes

pointer_type data_
pointer_type allocData_
IndexingType indexing_

Member Typedef Documentation

◆ element_type

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::element_type = TElement

◆ index_type

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::index_type = IndexingType::index_type

◆ IndexingType

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::IndexingType = BufferIndexing< TRank >

◆ memory_tag

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::memory_tag = TMemTag

◆ pointer_type

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::pointer_type = element_type*

◆ reference_type

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::reference_type = element_type&

◆ value_type

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::value_type = std::remove_cv_t< element_type >

Constructor & Destructor Documentation

◆ BufferView() [1/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::BufferView ( element_type * data,
element_type * allocData,
const IndexingType & indexing )
inline

◆ BufferView() [2/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
template<typename = void>
WALBERLA_HOST_DEVICE walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::BufferView ( const BufferView< value_type, RANK, memory_tag > & other)
inline

Convert non-const to const buffer view.

Member Function Documentation

◆ allocData()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE pointer_type walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::allocData ( ) const
inline

◆ allocOffsets()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANK > walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::allocOffsets ( ) const
inline

◆ allocShape()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANK > walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::allocShape ( ) const
inline

◆ data()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE pointer_type walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::data ( ) const
inline

◆ dataAt()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE pointer_type walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::dataAt ( std::convertible_to< index_type > auto... indices) const
inline

◆ indexing()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE const IndexingType & walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::indexing ( ) const
inline

◆ linearAllocView()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE stdlib::span< element_type > walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::linearAllocView ( ) const
inlinenodiscard

◆ linearView()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE stdlib::span< element_type > walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::linearView ( ) const
inlinenodiscard

◆ operator()()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE reference_type walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::operator() ( std::convertible_to< index_type > auto... indices) const
inlinenodiscard

◆ shape()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANK > walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::shape ( ) const
inline

◆ strides()

template<typename TElement, size_t TRank, MemTag TMemTag>
WALBERLA_HOST_DEVICE stdlib::span< const size_t, RANK > walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::strides ( ) const
inline

Member Data Documentation

◆ allocData_

template<typename TElement, size_t TRank, MemTag TMemTag>
pointer_type walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::allocData_
private

◆ data_

template<typename TElement, size_t TRank, MemTag TMemTag>
pointer_type walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::data_
private

◆ indexing_

template<typename TElement, size_t TRank, MemTag TMemTag>
IndexingType walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::indexing_
private

◆ IS_CONST

template<typename TElement, size_t TRank, MemTag TMemTag>
bool walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::IS_CONST = std::is_const_v< element_type >
staticconstexpr

◆ RANK

template<typename TElement, size_t TRank, MemTag TMemTag>
size_t walberla::v8::memory::buffer_system::BufferView< TElement, TRank, TMemTag >::RANK = TRank
staticconstexpr

The documentation for this class was generated from the following file:
  • /builds/administration/walberla-website/walberla/include/walberla/v8/memory/BufferSystem.hpp