waLBerla 7.3
Loading...
Searching...
No Matches
walberla::v8::memory::FieldView< 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::memory::FieldView< TElement, fSize, TMemTag >

View into a field's block-local portion.

#include <Field.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 BufferViewType = BufferView< element_type, 4, memory_tag >
using NonConstFieldType = Field< value_type, F_SIZE, memory_tag >
using ConstFieldType = Field< const value_type, F_SIZE, memory_tag >

Public Member Functions

 FieldView (const NonConstFieldType &field, IBlock &block)
template<typename = void>
 FieldView (const NonConstFieldType &field, const IBlock &block)
template<typename = void>
 FieldView (const ConstFieldType &field, const IBlock &block)
template<typename = void>
 FieldView (const FieldView< value_type, F_SIZE, memory_tag > &other)
 Convert non-const to const field view.
size_t numGhostLayers () const
field::Layout layout () const
const BufferViewTypebufferView () const
stdlib::span< const size_t, BufferViewType::RANKshape () const
stdlib::span< const size_t, BufferViewType::RANKallocShape () const
stdlib::span< const size_t, BufferViewType::RANKallocOffsets () const
stdlib::span< const size_t, BufferViewType::RANKstrides () const
FieldSlices slices () const
reference_type operator() (Cell c, cell_idx_t f) const
reference_type operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const
template<typename = void>
reference_type operator() (Cell c) const
template<typename = void>
reference_type operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z) const

Static Public Attributes

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

Private Member Functions

 FieldView (BufferViewType bufferView, size_t numGhostLayers, field::Layout layout)

Private Attributes

BufferViewType bufferView_
size_t numGhostLayers_
field::Layout layout_

Member Typedef Documentation

◆ BufferViewType

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::BufferViewType = BufferView< element_type, 4, memory_tag >

◆ ConstFieldType

template<typename TElement, size_t fSize, MemTag TMemTag>
using walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::ConstFieldType = Field< const value_type, F_SIZE, memory_tag >

◆ element_type

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

◆ memory_tag

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

◆ NonConstFieldType

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

◆ pointer_type

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

◆ reference_type

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

◆ value_type

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

Constructor & Destructor Documentation

◆ FieldView() [1/5]

template<typename TElement, size_t fSize, MemTag TMemTag>
walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::FieldView ( const NonConstFieldType & field,
IBlock & block )
inline

◆ FieldView() [2/5]

template<typename TElement, size_t fSize, MemTag TMemTag>
template<typename = void>
walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::FieldView ( const NonConstFieldType & field,
const IBlock & block )
inline

◆ FieldView() [3/5]

template<typename TElement, size_t fSize, MemTag TMemTag>
template<typename = void>
walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::FieldView ( const ConstFieldType & field,
const IBlock & block )
inline

◆ FieldView() [4/5]

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

Convert non-const to const field view.

◆ FieldView() [5/5]

template<typename TElement, size_t fSize, MemTag TMemTag>
walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::FieldView ( BufferViewType bufferView,
size_t numGhostLayers,
field::Layout layout )
inlineprivate

Member Function Documentation

◆ allocOffsets()

template<typename TElement, size_t fSize, MemTag TMemTag>
stdlib::span< const size_t, BufferViewType::RANK > walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::allocOffsets ( ) const
inline

◆ allocShape()

template<typename TElement, size_t fSize, MemTag TMemTag>
stdlib::span< const size_t, BufferViewType::RANK > walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::allocShape ( ) const
inline

◆ bufferView()

template<typename TElement, size_t fSize, MemTag TMemTag>
const BufferViewType & walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::bufferView ( ) const
inline

◆ layout()

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

◆ numGhostLayers()

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

◆ operator()() [1/4]

template<typename TElement, size_t fSize, MemTag TMemTag>
template<typename = void>
reference_type walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::operator() ( Cell c) const
inline

◆ operator()() [2/4]

template<typename TElement, size_t fSize, MemTag TMemTag>
reference_type walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::operator() ( Cell c,
cell_idx_t f ) const
inline

◆ operator()() [3/4]

template<typename TElement, size_t fSize, MemTag TMemTag>
template<typename = void>
reference_type walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::operator() ( cell_idx_t x,
cell_idx_t y,
cell_idx_t z ) const
inline

◆ operator()() [4/4]

template<typename TElement, size_t fSize, MemTag TMemTag>
reference_type walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::operator() ( cell_idx_t x,
cell_idx_t y,
cell_idx_t z,
cell_idx_t f ) const
inline

◆ shape()

template<typename TElement, size_t fSize, MemTag TMemTag>
stdlib::span< const size_t, BufferViewType::RANK > walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::shape ( ) const
inline

◆ slices()

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

◆ strides()

template<typename TElement, size_t fSize, MemTag TMemTag>
stdlib::span< const size_t, BufferViewType::RANK > walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::strides ( ) const
inline

Member Data Documentation

◆ bufferView_

template<typename TElement, size_t fSize, MemTag TMemTag>
BufferViewType walberla::v8::memory::FieldView< TElement, fSize, TMemTag >::bufferView_
private

◆ F_SIZE

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

◆ IS_CONST

template<typename TElement, size_t fSize, MemTag TMemTag>
bool walberla::v8::memory::FieldView< 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::FieldView< TElement, fSize, TMemTag >::layout_
private

◆ numGhostLayers_

template<typename TElement, size_t fSize, MemTag TMemTag>
size_t walberla::v8::memory::FieldView< 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