waLBerla 7.3
Loading...
Searching...
No Matches
walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo > Class Template Reference

#include <CombinedInPlaceGpuPackInfo.h>

Inheritance diagram for walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >:

Public Member Functions

template<typename... Args>
 CombinedInPlaceGpuPackInfo (std::shared_ptr< TimestepTracker > &tracker, Args &&... args)
virtual ~CombinedInPlaceGpuPackInfo ()=default
void pack (stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
 Pack data from a block into a send buffer.
void unpack (stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
 Unpack data from a receive buffer into a block.
uint_t size (stencil::Direction dir, IBlock *block) override
Public Member Functions inherited from walberla::gpu::GeneratedGPUPackInfo
 GeneratedGPUPackInfo ()=default
virtual ~GeneratedGPUPackInfo ()=default
virtual void communicateLocal (stencil::Direction dir, const IBlock *sender, IBlock *receiver, gpuStream_t stream)=0
 Copy data from one local block to another local block.

Private Attributes

const std::shared_ptr< TimestepTracker > & tracker_
EvenPackInfo evenPackInfo_
OddPackInfo oddPackInfo_

Constructor & Destructor Documentation

◆ CombinedInPlaceGpuPackInfo()

template<typename EvenPackInfo, typename OddPackInfo>
template<typename... Args>
walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::CombinedInPlaceGpuPackInfo ( std::shared_ptr< TimestepTracker > & tracker,
Args &&... args )
inline

◆ ~CombinedInPlaceGpuPackInfo()

template<typename EvenPackInfo, typename OddPackInfo>
virtual walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::~CombinedInPlaceGpuPackInfo ( )
virtualdefault

Member Function Documentation

◆ pack()

template<typename EvenPackInfo, typename OddPackInfo>
void walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::pack ( stencil::Direction dir,
unsigned char * buffer,
IBlock * block,
gpuStream_t stream )
inlineoverridevirtual

Pack data from a block into a send buffer.

Parameters
dirpack data for neighbor in this direction
bufferbuffer for writing the data into
blockthe block whose data should be packed into a buffer
streamGPU stream

Implements walberla::gpu::GeneratedGPUPackInfo.

◆ size()

template<typename EvenPackInfo, typename OddPackInfo>
uint_t walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::size ( stencil::Direction dir,
IBlock * block )
inlineoverridevirtual

◆ unpack()

template<typename EvenPackInfo, typename OddPackInfo>
void walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::unpack ( stencil::Direction dir,
unsigned char * buffer,
IBlock * block,
gpuStream_t stream )
inlineoverridevirtual

Unpack data from a receive buffer into a block.

Parameters
dirreceive data from neighbor in this direction
bufferbuffer for reading the data from
blockthe block where the unpacked data should be stored into
streamGPU stream

Implements walberla::gpu::GeneratedGPUPackInfo.

Member Data Documentation

◆ evenPackInfo_

template<typename EvenPackInfo, typename OddPackInfo>
EvenPackInfo walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::evenPackInfo_
private

◆ oddPackInfo_

template<typename EvenPackInfo, typename OddPackInfo>
OddPackInfo walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::oddPackInfo_
private

◆ tracker_

template<typename EvenPackInfo, typename OddPackInfo>
const std::shared_ptr< TimestepTracker >& walberla::lbm::CombinedInPlaceGpuPackInfo< EvenPackInfo, OddPackInfo >::tracker_
private

The documentation for this class was generated from the following file: