Go to the documentation of this file.
33 #ifndef VTKPSTRUCTUREDGRIDCONNECTIVITY_H_
34 #define VTKPSTRUCTUREDGRIDCONNECTIVITY_H_
81 {
return static_cast<int>(this->GridIds.size()); };
88 int GetGridRank(
const int gridID );
91 bool IsGridRemote(
const int gridID );
94 bool IsGridLocal(
const int gridID );
146 bool GridExtentsAreEqual(
int rhs[6],
int lhs[6] );
150 bool HasPointData(
const int gridIdx);
154 bool HasCellData(
const int gridIdx);
157 bool HasPoints(
const int gridIdx);
160 void InitializeMessageCounters();
164 void ClearRemoteData();
167 void ClearRawBuffers();
196 int *buffersizes,
vtkIdType N,
const int processId );
250 int sourceExtent[6],
int targetExtent[6],
vtkFieldData *fieldData,
272 const int gridIdx,
const int nei,
280 const int numberOfTuples,
const int numberOfComponents,
296 const int gridIdx,
const int nei,
304 const int gridIdx,
const int nei,
314 const int sndGridID,
const int rcvGrid,
int sndext[6],
323 const int gridID,
const int neiListID,
324 const int neiGridIdx,
int rcvext[6],
341 int *rcvbuffer,
vtkIdType &N,
const int processId );
355 int rhs[6],
int lhs[6] )
357 for(
int i=0; i < 6; ++i )
359 if( rhs[i] != lhs[i] )
371 assert(
"pre: grid index is out-of-bounds!" &&
372 (gridIdx >= 0) && (gridIdx <
static_cast<int>(this->
NumberOfGrids)));
386 assert(
"pre: grid index is out-of-bounds!" &&
387 (gridIdx >= 0) && (gridIdx <
static_cast<int>(this->
NumberOfGrids)));
390 (this->
GridCellData[gridIdx]->GetNumberOfArrays( ) > 0) )
401 assert(
"pre: grid index is out-of-bounds!" &&
402 (gridIdx >= 0) && (gridIdx <
static_cast<int>(this->
NumberOfGrids)));
424 for(
unsigned int i=0; i < this->
SendBuffers.size(); ++i )
426 for(
unsigned int j=0; j < this->
SendBuffers[i].size(); ++j )
435 for(
unsigned int i=0; i < this->
RcvBuffers.size(); ++i )
437 for(
unsigned int j=0; j < this->
RcvBuffers[i].size(); ++j )
450 for(
unsigned int i=0; i < this->
RemotePoints.size(); ++i )
452 for(
unsigned int j=0; j < this->
RemotePoints[i].size(); ++j )
501 assert(
"pre: Instance has not been intialized!" && this->
Initialized );
502 assert(
"pre: gridID is out-of-bounds" &&
503 (gridID >= 0) && (gridID <
static_cast<int>(this->
NumberOfGrids) ) );
504 assert(
"pre: GridRanks is not properly allocated" &&
512 assert(
"pre: Instance has not been intialized!" && this->
Initialized );
513 assert(
"pre: gridID out-of-bounds!" &&
514 (gridID >= 0 && gridID <
static_cast<int>(this->
NumberOfGrids)));
represent and manipulate 3D points
void SerializeGhostPointData(const int gridIdx, int ext[6], vtkMultiProcessStream &bytestream)
bool HasPoints(const int gridIdx)
void DeserializeBufferSizesForProcess(int *buffersizes, vtkIdType N, const int processId)
std::vector< vtkCellData * > GridCellData
void PrintSelf(ostream &os, vtkIndent indent)
bool IsGridLocal(const int gridID)
void RegisterRemoteGrid(const int gridID, int extents[6], int process)
virtual void CreateGhostLayers(const int N=1)
void ExchangeGridExtents()
void SerializeGhostCellData(const int gridIdx, int ext[6], vtkMultiProcessStream &bytestream)
void DeserializeGhostPoints(const int gridIdx, const int nei, int ext[6], vtkMultiProcessStream &bytestream)
void CommunicateGhostData()
represent and manipulate point attribute data
virtual void TransferGhostDataFromNeighbors(const int gridID)
void DeserializeGhostCellData(const int gridIdx, const int nei, int ext[6], vtkMultiProcessStream &bytestream)
void SerializeGridExtents(int *&sndbuffer, vtkIdType &N)
std::vector< std::vector< unsigned char * > > SendBuffers
stream used to pass data across processes using vtkMultiProcessController.
int GetGridRank(const int gridID)
void ExchangeBufferSizes()
dynamic, self-adjusting array of unsigned char
#define vtkTypeMacro(thisClass, superclass)
std::vector< std::vector< vtkCellData * > > RemoteCellData
void ExchangeGhostDataInit()
bool GridExtentsAreEqual(int rhs[6], int lhs[6])
void SerializeBufferSizes(int *&sizesbuf, vtkIdType &N)
abstract superclass for arrays of numeric data
std::vector< std::vector< vtkPointData * > > RemotePointData
bool HasPointData(const int gridIdx)
std::vector< std::vector< vtkPoints * > > RemotePoints
represent and manipulate fields of data
void DeserializeFieldData(int ext[6], vtkFieldData *fieldData, vtkMultiProcessStream &bytestream)
std::vector< vtkPoints * > GridPoints
std::vector< std::vector< unsigned int > > RcvBufferSizes
vtkMPICommunicator::Request * MPIRequests
~vtkPStructuredGridConnectivity()
Multiprocessing communication superclass.
int GetNumberOfLocalGrids()
unsigned int NumberOfGrids
bool IsGridRemote(const int gridID)
represent and manipulate cell attribute data
void InitializeMessageCounters()
a simple class to control print indentation
bool HasCellData(const int gridIdx)
void SerializeFieldData(int sourceExtent[6], int targetExtent[6], vtkFieldData *fieldData, vtkMultiProcessStream &bytestream)
vtkPStructuredGridConnectivity()
void SerializeGhostData(const int sndGridID, const int rcvGrid, int sndext[6], unsigned char *&buffer, unsigned int &size)
#define vtkGetMacro(name, type)
void DeserializeGhostPointData(const int gridIdx, const int nei, int ext[6], vtkMultiProcessStream &bytestream)
void SetNumberOfGrids(const unsigned int N)
vtkSetMacro(IgnoreDriverBugs, bool)
void RegisterGrid(const int gridID, int extents[6], vtkUnsignedCharArray *nodesGhostArray, vtkUnsignedCharArray *cellGhostArray, vtkPointData *pointData, vtkCellData *cellData, vtkPoints *gridNodes)
void ExchangeGhostDataPost()
void DeserializeGhostData(const int gridID, const int neiListID, const int neiGridIdx, int rcvext[6], unsigned char *buffer, unsigned int size)
vtkMultiProcessController * Controller
std::vector< vtkPointData * > GridPointData
std::vector< std::vector< unsigned int > > SendBufferSizes
void TransferRemoteNeighborData(const int gridIdx, const int nei, const vtkStructuredNeighbor &Neighbor)
Process communication using MPI.
static vtkPStructuredGridConnectivity * New()
std::vector< std::vector< unsigned char * > > RcvBuffers
std::vector< int > GridIds
void DeserializeGridExtentForProcess(int *rcvbuffer, vtkIdType &N, const int processId)
#define VTKFILTERSPARALLELGEOMETRY_EXPORT
void DeserializeDataArray(vtkDataArray *&dataArray, const int dataType, const int numberOfTuples, const int numberOfComponents, vtkMultiProcessStream &bytestream)
void SerializeDataArray(vtkDataArray *dataArray, vtkMultiProcessStream &bytestream)
void SerializeGhostPoints(const int gridIdx, int ext[6], vtkMultiProcessStream &bytestream)
std::vector< int > GridRanks