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

#include <BufferSystem.hpp>

Public Types

using Self = BufferSystem< TElement, TRank, TMemTag >
using element_type = TElement
using value_type = std::remove_cv_t< element_type >
using MT = MemoryTraits< TMemTag, value_type >
using AllocatorType = MT::AllocatorType
using BufferType
using ConstBufferType = const LinearBuffer< value_type, AllocatorType >
using IndexingType = BufferIndexing< RANK >
using BlockDataIDType = std::conditional_t< IS_CONST, ConstBlockDataID, BlockDataID >
using memory_tag = TMemTag
using ViewType = BufferView< element_type, RANK, memory_tag >
using ConstViewType = BufferView< const element_type, RANK, memory_tag >

Public Member Functions

template<typename = void>
 BufferSystem (StructuredBlockForest &blocks, IndexingType indexing, AllocatorType allocator)
template<typename = void>
 BufferSystem (const BufferSystem< value_type, RANK, memory_tag > &other)
const IndexingTypeindexing () const
BlockDataIDType buffersId () const
ViewType view (IBlock &block) const
ConstViewType view (const IBlock &block) const
BufferTypebuffer (IBlock &block) const
ConstBufferTypebuffer (const IBlock &block) const
std::unique_ptr< BufferTypecreateEmptyBuffer () const
 Create a new empty buffer associated with this buffer system.

Static Public Member Functions

static BufferSystemBuilder< value_type, RANK, memory_tagcreate (StructuredBlockForest &blocks, const stdlib::array< size_t, RANK > &shape)

Static Public Attributes

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

Private Attributes

IndexingType indexing_
BlockDataIDType buffersId_

Member Typedef Documentation

◆ AllocatorType

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::AllocatorType = MT::AllocatorType

◆ BlockDataIDType

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::BlockDataIDType = std::conditional_t< IS_CONST, ConstBlockDataID, BlockDataID >

◆ BufferType

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::BufferType
Initial value:
std::conditional_t< IS_CONST, const LinearBuffer< value_type, AllocatorType >,
LinearBuffer< value_type, AllocatorType > >

◆ ConstBufferType

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::ConstBufferType = const LinearBuffer< value_type, AllocatorType >

◆ ConstViewType

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::ConstViewType = BufferView< const element_type, RANK, memory_tag >

◆ element_type

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

◆ IndexingType

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

◆ memory_tag

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

◆ MT

template<typename TElement, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::MT = MemoryTraits< TMemTag, value_type >

◆ Self

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

◆ value_type

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

◆ ViewType

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

Constructor & Destructor Documentation

◆ BufferSystem() [1/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
template<typename = void>
walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::BufferSystem ( StructuredBlockForest & blocks,
IndexingType indexing,
AllocatorType allocator )
inline

◆ BufferSystem() [2/2]

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

Member Function Documentation

◆ buffer() [1/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
ConstBufferType & walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::buffer ( const IBlock & block) const
inline

◆ buffer() [2/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
BufferType & walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::buffer ( IBlock & block) const
inline

◆ buffersId()

template<typename TElement, size_t TRank, MemTag TMemTag>
BlockDataIDType walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::buffersId ( ) const
inline

◆ create()

template<typename TElement, size_t TRank, MemTag TMemTag>
auto walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::create ( StructuredBlockForest & blocks,
const stdlib::array< size_t, RANK > & shape )
inlinestatic

◆ createEmptyBuffer()

template<typename TElement, size_t TRank, MemTag TMemTag>
std::unique_ptr< BufferType > walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::createEmptyBuffer ( ) const
inline

Create a new empty buffer associated with this buffer system.

◆ indexing()

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

◆ view() [1/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
ConstViewType walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::view ( const IBlock & block) const
inline

◆ view() [2/2]

template<typename TElement, size_t TRank, MemTag TMemTag>
ViewType walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::view ( IBlock & block) const
inline

Member Data Documentation

◆ buffersId_

template<typename TElement, size_t TRank, MemTag TMemTag>
BlockDataIDType walberla::v8::memory::buffer_system::BufferSystem< TElement, TRank, TMemTag >::buffersId_
private

◆ indexing_

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

◆ IS_CONST

template<typename TElement, size_t TRank, MemTag TMemTag>
bool walberla::v8::memory::buffer_system::BufferSystem< 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::BufferSystem< 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