$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

plb::BlockDataTransfer3D Struct Reference

#include <atomicBlock3D.h>

Inheritance diagram for plb::BlockDataTransfer3D:

List of all members.

Public Member Functions

virtual ~BlockDataTransfer3D ()
virtual plint staticCellSize () const =0
virtual void send (Box3D domain, std::vector< char > &buffer, modif::ModifT kind) const =0
 Send data from the block into a byte-stream.
virtual void receive (Box3D domain, std::vector< char > const &buffer, modif::ModifT kind)=0
 Receive data from a byte-stream into the block.
virtual void receive (Box3D domain, std::vector< char > const &buffer, modif::ModifT kind, std::map< int, std::string > const &foreignIds)=0
 Receive data from a byte-stream into the block, and re-map IDs for dynamics if exist.
virtual void attribute (Box3D toDomain, plint deltaX, plint deltaY, plint deltaZ, AtomicBlock3D const &from, modif::ModifT kind)=0
 Attribute data between two blocks.

Constructor & Destructor Documentation

virtual plb::BlockDataTransfer3D::~BlockDataTransfer3D (  )  [inline, virtual]

Member Function Documentation

virtual void plb::BlockDataTransfer3D::receive ( Box3D  domain,
std::vector< char > const &  buffer,
modif::ModifT  kind,
std::map< int, std::string > const &  foreignIds 
) [pure virtual]
virtual void plb::BlockDataTransfer3D::send ( Box3D  domain,
std::vector< char > &  buffer,
modif::ModifT  kind 
) const [pure virtual]

Send data from the block into a byte-stream.

This method automatically resizes the buffer so it holds the proper amount of data. This is particularly important if the transmitted data is dynamic, in which case the size of the buffer cannot be predicted exactly. You can always preallocate data for the buffer though (through resize or reserve), to avoid reallocation and improve performance.

Implemented in plb::AtomicContainerDataTransfer3D, plb::BlockLatticeDataTransfer3D< T, Descriptor >, plb::ScalarFieldDataTransfer3D< T >, plb::TensorFieldDataTransfer3D< T, nDim >, plb::NTensorFieldDataTransfer3D< T >, plb::BlockLatticeDataTransfer3D< T, FluidDescriptor >, plb::ScalarFieldDataTransfer3D< int >, plb::ScalarFieldDataTransfer3D< EdgeData >, and plb::ScalarFieldDataTransfer3D< std::vector< plint > >.

Referenced by plb::AtomicBlockSerializer3D::getNextDataBuffer().


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