waLBerla 7.3
Loading...
Searching...
No Matches
walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag > Class Template Reference

#include <BufferSystem.hpp>

Public Types

using value_type = TValue
using memory_tag = TMemTag
using Self = BufferSystemBuilder< value_type, RANK, memory_tag >
using MT = MemoryTraits< memory_tag, value_type >
using IndexingType = BufferIndexing< RANK >
using AllocatorType = MT::AllocatorType
using BufferSystemType = BufferSystem< value_type, RANK, memory_tag >

Public Member Functions

 BufferSystemBuilder (StructuredBlockForest &blocks, const stdlib::array< size_t, RANK > &shape)
SelfallocShape (const stdlib::array< size_t, RANK > &allocShape)
SelfallocOffsets (const stdlib::array< size_t, RANK > &allocOffsets)
SelflinearizationOrder (const stdlib::array< size_t, RANK > &linearizationOrder)
SelfaddLinePaddingForAlignment (bool addPadding=true)
Selfalignment (size_t alignmentBytes)
BufferSystemType build ()

Static Public Attributes

static constexpr size_t RANK = TRank

Private Member Functions

void addPaddingToAllocShape ()
IndexingType createIndexing ()

Static Private Member Functions

static constexpr stdlib::array< size_t, RANKzeroOffsets ()
static constexpr stdlib::array< size_t, RANKrightmostFirst ()

Private Attributes

StructuredBlockForestblocks_
stdlib::array< size_t, RANKshape_
stdlib::array< size_t, RANKallocShape_
stdlib::array< size_t, RANKallocOffsets_ { zeroOffsets() }
stdlib::array< size_t, RANKlinearizationOrder_ { rightmostFirst() }
bool withPaddingForAlignment_ { false }
size_t alignmentBytes_ { MT::alignment() }

Member Typedef Documentation

◆ AllocatorType

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::AllocatorType = MT::AllocatorType

◆ BufferSystemType

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::BufferSystemType = BufferSystem< value_type, RANK, memory_tag >

◆ IndexingType

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::IndexingType = BufferIndexing< RANK >

◆ memory_tag

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::memory_tag = TMemTag

◆ MT

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::MT = MemoryTraits< memory_tag, value_type >

◆ Self

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::Self = BufferSystemBuilder< value_type, RANK, memory_tag >

◆ value_type

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
using walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::value_type = TValue

Constructor & Destructor Documentation

◆ BufferSystemBuilder()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::BufferSystemBuilder ( StructuredBlockForest & blocks,
const stdlib::array< size_t, RANK > & shape )
inline

Member Function Documentation

◆ addLinePaddingForAlignment()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
Self & walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::addLinePaddingForAlignment ( bool addPadding = true)
inline

◆ addPaddingToAllocShape()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
void walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::addPaddingToAllocShape ( )
inlineprivate

◆ alignment()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
Self & walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::alignment ( size_t alignmentBytes)
inline

◆ allocOffsets()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
Self & walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::allocOffsets ( const stdlib::array< size_t, RANK > & allocOffsets)
inline

◆ allocShape()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
Self & walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::allocShape ( const stdlib::array< size_t, RANK > & allocShape)
inline

◆ build()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
BufferSystemType walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::build ( )
inline

◆ createIndexing()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
IndexingType walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::createIndexing ( )
inlineprivate

◆ linearizationOrder()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
Self & walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::linearizationOrder ( const stdlib::array< size_t, RANK > & linearizationOrder)
inline

◆ rightmostFirst()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
constexpr stdlib::array< size_t, RANK > walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::rightmostFirst ( )
inlinestaticconstexprprivate

◆ zeroOffsets()

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
constexpr stdlib::array< size_t, RANK > walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::zeroOffsets ( )
inlinestaticconstexprprivate

Member Data Documentation

◆ alignmentBytes_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
size_t walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::alignmentBytes_ { MT::alignment() }
private

◆ allocOffsets_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
stdlib::array< size_t, RANK > walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::allocOffsets_ { zeroOffsets() }
private

◆ allocShape_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
stdlib::array< size_t, RANK > walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::allocShape_
private

◆ blocks_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
StructuredBlockForest* walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::blocks_
private

◆ linearizationOrder_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
stdlib::array< size_t, RANK > walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::linearizationOrder_ { rightmostFirst() }
private

◆ RANK

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
size_t walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::RANK = TRank
staticconstexpr

◆ shape_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
stdlib::array< size_t, RANK > walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::shape_
private

◆ withPaddingForAlignment_

template<std::semiregular TValue, size_t TRank, MemTag TMemTag>
bool walberla::v8::memory::buffer_system::BufferSystemBuilder< TValue, TRank, TMemTag >::withPaddingForAlignment_ { false }
private

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