11#ifndef vtkHyperTreeGridRedistribute_h
12#define vtkHyperTreeGridRedistribute_h
16#include "vtkFiltersParallelMPIModule.h"
20VTK_ABI_NAMESPACE_BEGIN
66 void CollectLocalTreeIds();
67 void BuildTargetPartMap();
68 void ExchangeHTGMetaData(
vtkBitArray* descriptorSendBuffer,
69 std::vector<int>& descriptorSizesReceivedBuffer, std::vector<int>& treeSizesSendBuffer,
70 std::vector<int>& maskSizesSendBuffer, std::vector<int>& treeSizesReceivedBuffer,
71 std::vector<int>& maskSizesReceivedBuffer, std::vector<int>& descriptorsByteOffsets);
72 void BuildOutputTrees(
vtkBitArray* descriptorSendBuffer,
73 std::vector<int>& descriptorSizesReceivedBuffer, std::vector<int>& descriptorsByteOffsets);
75 std::vector<int>& maskSizesSendBuffer, std::vector<int>& maskSizesReceivedBuffer);
76 void CollectCellArraySizes(std::vector<int>& treeSizesSendBuffer,
77 std::vector<int>& treeSizesReceivedBuffer, std::vector<int>& cellsSentPerPartOffset,
78 std::vector<int>& cellsReceivedPerPartOffset, std::vector<int>& nbCellDataSentPerPart,
79 std::vector<int>& nbCellDataReceivedPerPart);
80 void ExchangeCellArray(
int arrayId, std::vector<int>& cellsSentPerPartOffset,
81 std::vector<int>& cellsReceivedPerPartOffset, std::vector<int>& nbCellDataSentPerPart,
82 std::vector<int>& nbCellDataReceivedPerPart);
89 std::vector<int> TreeTargetPartId;
90 std::vector<int> TreeIdsReceivedBuffer;
91 std::vector<int> NbTreesReceivedPerPart;
92 std::vector<int> NbTreesSentPerPart;
93 std::vector<int> NbDescriptorsBytesPerPart;
95 std::vector<vtkIdType> LocalTreeIds;
96 std::vector<std::vector<vtkIdType>> TreesToSend;
dynamic, self-adjusting array of bits
general representation of visualization data
Superclass for algorithms that produce a hyper tree grid as output.
Redistribute input HyperTreeGrid into requested number of partitions.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Override RequestData, to make sure every HTG piece can be processed, hence avoiding that one rank wai...
static vtkHyperTreeGridRedistribute * New()
virtual void SetController(vtkMultiProcessController *)
Get/Set the controller to use.
~vtkHyperTreeGridRedistribute() override
int ProcessTrees(vtkHyperTreeGrid *, vtkDataObject *) override
Main routine to redistribute trees and exchange cell data.
vtkMultiProcessController * GetController()
Get/Set the controller to use.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int FillInputPortInformation(int, vtkInformation *) override
Input must be either HTG or vtkPartitionedDataSet composed of HTG partitions.
vtkHyperTreeGridRedistribute()
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
a simple class to control print indentation
Class for creating user defined MPI communicators.
Multiprocessing communication superclass.
Hold a reference to a vtkObjectBase instance.
a weak reference to a vtkObject.