25#include "communication/UniformPackInfo.h"
26#include "core/DataTypes.h"
27#include "core/cell/CellInterval.h"
28#include "domain_decomposition/IBlock.h"
29#include "field/GhostLayerField.h"
30#include "stencil/Directions.h"
37#define RESTRICT __restrict__
39#define RESTRICT __restrict
48 :
public ::walberla::communication::UniformPackInfo {
57 mpi::RecvBuffer &buffer)
override {
66 stencil::Direction dir)
override {
74 mpi::SendBuffer &
outBuffer)
const override {
80 const_cast<IBlock *
>(
sender));
83 void pack(stencil::Direction dir,
unsigned char *buffer, IBlock *
block)
const;
84 void unpack(stencil::Direction dir,
unsigned char *buffer,
~PackInfoVecSinglePrecision() override=default
PackInfoVecSinglePrecision(BlockDataID fieldID_)
void communicateLocal(const IBlock *sender, IBlock *receiver, stencil::Direction dir) override
bool threadsafeReceiving() const override
bool constantDataExchange() const override
uint_t size(stencil::Direction dir, const IBlock *block) const
void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block) const
void unpackData(IBlock *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer) override
void packDataImpl(const IBlock *sender, stencil::Direction dir, mpi::SendBuffer &outBuffer) const override
void unpack(stencil::Direction dir, unsigned char *buffer, IBlock *block) const
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
static double * block(double *p, std::size_t index, std::size_t size)
\file PackInfoPdfDoublePrecision.cpp \author pystencils