11#ifndef vtkHyperTreeGridRedistribute_h
12#define vtkHyperTreeGridRedistribute_h
16#include "vtkFiltersParallelMPIModule.h"
20VTK_ABI_NAMESPACE_BEGIN
82 bool ExchangeHTGMetadata();
83 void CollectLocalTreeIds();
84 void BuildTargetPartMap();
85 void ExchangeHyperTreeMetaData(
vtkBitArray* descriptorSendBuffer,
86 std::vector<int>& descriptorSizesReceivedBuffer, std::vector<int>& treeSizesSendBuffer,
87 std::vector<int>& maskSizesSendBuffer, std::vector<int>& treeSizesReceivedBuffer,
88 std::vector<int>& maskSizesReceivedBuffer, std::vector<int>& descriptorsByteOffsets);
89 void BuildOutputTrees(
vtkBitArray* descriptorSendBuffer,
90 std::vector<int>& descriptorSizesReceivedBuffer, std::vector<int>& descriptorsByteOffsets);
92 std::vector<int>& maskSizesSendBuffer, std::vector<int>& maskSizesReceivedBuffer);
93 void CollectCellArraySizes(std::vector<int>& treeSizesSendBuffer,
94 std::vector<int>& treeSizesReceivedBuffer, std::vector<int>& cellsSentPerPartOffset,
95 std::vector<int>& cellsReceivedPerPartOffset, std::vector<int>& nbCellDataSentPerPart,
96 std::vector<int>& nbCellDataReceivedPerPart);
97 void ExchangeCellArray(
int arrayId, std::vector<int>& cellsSentPerPartOffset,
98 std::vector<int>& cellsReceivedPerPartOffset, std::vector<int>& nbCellDataSentPerPart,
99 std::vector<int>& nbCellDataReceivedPerPart);
104 bool HasMask =
false;
105 int NumPartitions = 0;
106 int CurrentPiece = 0;
108 std::vector<int> TreeTargetPartId;
109 std::vector<int> TreeIdsReceivedBuffer;
110 std::vector<int> NbTreesReceivedPerPart;
111 std::vector<int> NbTreesSentPerPart;
112 std::vector<int> NbDescriptorsBytesPerPart;
114 std::vector<vtkIdType> LocalTreeIds;
115 std::vector<std::vector<vtkIdType>> TreesToSend;
dynamic, self-adjusting array of bits
general representation of visualization data
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
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.