waLBerla 7.3
Loading...
Searching...
No Matches
walberla::v8::Field< TElement, fSize, TMemTag > Class Template Reference

Detailed Description

template<typename TElement, size_t fSize, MemTag TMemTag>
requires (std::semiregular< std::remove_cv_t< TElement > >)
class walberla::v8::Field< TElement, fSize, TMemTag >

Primary distributed 3D numerical field data structure.

#include <Field.hpp>

Public Types

using Self = Field< TElement, fSize, TMemTag >
using element_type = TElement
using value_type = std::remove_cv_t< element_type >
using memory_tag = TMemTag
using BufferSystemType = BufferSystem< element_type, 4, memory_tag >

Public Member Functions

template<typename = void>
 Field (StructuredBlockForest &blocks, uint_t numGhostLayers=1, value_type initValue=value_type{}, field::Layout layout=field::Layout::fzyx)
template<typename = void>
 Field (const Field< value_type, F_SIZE, memory_tag > &other)
size_t numGhostLayers () const
field::Layout layout () const
const BufferSystemTypebufferSystem () const
FieldSlices slices () const

Static Public Attributes

static constexpr size_t F_SIZE = fSize
static constexpr bool IS_CONST = std::is_const_v< element_type >

Private Member Functions

BufferSystemType createBufferSystem (StructuredBlockForest &blocks)

Private Attributes

size_t numGhostLayers_
field::Layout layout_
BufferSystemType bufferSystem_

Member Typedef Documentation

◆ BufferSystemType

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::Field< TElement, fSize, TMemTag >::BufferSystemType = BufferSystem< element_type, 4, memory_tag >

◆ element_type

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::Field< TElement, fSize, TMemTag >::element_type = TElement

◆ memory_tag

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::Field< TElement, fSize, TMemTag >::memory_tag = TMemTag

◆ Self

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::Field< TElement, fSize, TMemTag >::Self = Field< TElement, fSize, TMemTag >

◆ value_type

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::Field< TElement, fSize, TMemTag >::value_type = std::remove_cv_t< element_type >

Constructor & Destructor Documentation

◆ Field() [1/2]

template<typename TElement, size_t fSize, MemTag TMemTag>
template<typename = void>
walberla::v8::memory::Field< TElement, fSize, TMemTag >::Field ( StructuredBlockForest & blocks,
uint_t numGhostLayers = 1,
value_type initValue = value_type{},
field::Layout layout = field::Layout::fzyx )
inline

◆ Field() [2/2]

template<typename TElement, size_t fSize, MemTag TMemTag>
template<typename = void>
walberla::v8::memory::Field< TElement, fSize, TMemTag >::Field ( const Field< value_type, F_SIZE, memory_tag > & other)
inline

Member Function Documentation

◆ bufferSystem()

template<typename TElement, size_t fSize, MemTag TMemTag>
const BufferSystemType & walberla::v8::memory::Field< TElement, fSize, TMemTag >::bufferSystem ( ) const
inline

◆ createBufferSystem()

template<typename TElement, size_t fSize, MemTag TMemTag>
auto walberla::v8::memory::Field< TElement, fSize, TMemTag >::createBufferSystem ( StructuredBlockForest & blocks)
inlineprivate

◆ layout()

template<typename TElement, size_t fSize, MemTag TMemTag>
field::Layout walberla::v8::memory::Field< TElement, fSize, TMemTag >::layout ( ) const
inline

◆ numGhostLayers()

template<typename TElement, size_t fSize, MemTag TMemTag>
size_t walberla::v8::memory::Field< TElement, fSize, TMemTag >::numGhostLayers ( ) const
inline

◆ slices()

template<typename TElement, size_t fSize, MemTag TMemTag>
FieldSlices walberla::v8::memory::Field< TElement, fSize, TMemTag >::slices ( ) const
inline

Member Data Documentation

◆ bufferSystem_

template<typename TElement, size_t fSize, MemTag TMemTag>
BufferSystemType walberla::v8::memory::Field< TElement, fSize, TMemTag >::bufferSystem_
private

◆ F_SIZE

template<typename TElement, size_t fSize, MemTag TMemTag>
size_t walberla::v8::memory::Field< TElement, fSize, TMemTag >::F_SIZE = fSize
staticconstexpr

◆ IS_CONST

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

◆ layout_

template<typename TElement, size_t fSize, MemTag TMemTag>
field::Layout walberla::v8::memory::Field< TElement, fSize, TMemTag >::layout_
private

◆ numGhostLayers_

template<typename TElement, size_t fSize, MemTag TMemTag>
size_t walberla::v8::memory::Field< TElement, fSize, TMemTag >::numGhostLayers_
private

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