61 #ifndef vtkRedistributeDataSetFilter_h
62 #define vtkRedistributeDataSetFilter_h
65 #include "vtkFiltersParallelDIY2Module.h"
73 #include VTK_DIY2(diy/assigner.hpp)
76 VTK_ABI_NAMESPACE_BEGIN
102 ASSIGN_TO_ONE_REGION = 0,
103 ASSIGN_TO_ALL_INTERSECTING_REGIONS = 1,
104 SPLIT_BOUNDARY_CELLS = 2
120 vtkSetClampMacro(BoundaryMode,
int, ASSIGN_TO_ONE_REGION, SPLIT_BOUNDARY_CELLS);
121 vtkGetMacro(BoundaryMode,
int);
125 this->SetBoundaryMode(ASSIGN_TO_ALL_INTERSECTING_REGIONS);
136 vtkSetMacro(UseExplicitCuts,
bool);
137 vtkGetMacro(UseExplicitCuts,
bool);
138 vtkBooleanMacro(UseExplicitCuts,
bool);
145 void SetExplicitCuts(
const std::vector<vtkBoundingBox>& boxes);
146 const std::vector<vtkBoundingBox>&
GetExplicitCuts()
const {
return this->ExplicitCuts; }
147 void RemoveAllExplicitCuts();
149 void AddExplicitCut(
const double bbox[6]);
150 int GetNumberOfExplicitCuts()
const;
160 void SetAssigner(std::shared_ptr<diy::Assigner> assigner);
161 std::shared_ptr<diy::Assigner> GetAssigner();
162 std::shared_ptr<const diy::Assigner> GetAssigner()
const;
175 vtkSetMacro(ExpandExplicitCuts,
bool);
176 vtkGetMacro(ExpandExplicitCuts,
bool);
177 vtkBooleanMacro(ExpandExplicitCuts,
bool);
185 const std::vector<vtkBoundingBox>&
GetCuts()
const {
return this->Cuts; }
206 vtkSetClampMacro(NumberOfPartitions,
int, 0,
VTK_INT_MAX);
207 vtkGetMacro(NumberOfPartitions,
int);
224 vtkSetMacro(PreservePartitionsInOutput,
bool);
225 vtkGetMacro(PreservePartitionsInOutput,
bool);
226 vtkBooleanMacro(PreservePartitionsInOutput,
bool);
234 vtkSetMacro(GenerateGlobalCellIds,
bool);
235 vtkGetMacro(GenerateGlobalCellIds,
bool);
236 vtkBooleanMacro(GenerateGlobalCellIds,
bool);
245 std::vector<vtkBoundingBox> ExpandCuts(
246 const std::vector<vtkBoundingBox>& cuts,
const vtkBoundingBox& bounds);
256 vtkSetMacro(EnableDebugging,
bool);
257 vtkGetMacro(EnableDebugging,
bool);
258 vtkBooleanMacro(EnableDebugging,
bool);
270 vtkSetMacro(LoadBalanceAcrossAllBlocks,
bool);
271 vtkGetMacro(LoadBalanceAcrossAllBlocks,
bool);
272 vtkBooleanMacro(LoadBalanceAcrossAllBlocks,
bool);
305 vtkDataSet* dataset,
const std::vector<vtkBoundingBox>& cuts);
313 const std::vector<vtkBoundingBox>& cuts,
vtkIdType* mb_offset =
nullptr);
314 bool RedistributeDataSet(
327 std::vector<vtkBoundingBox> ExplicitCuts;
328 std::vector<vtkBoundingBox> Cuts;
329 std::shared_ptr<diy::Assigner> Assigner;
333 int NumberOfPartitions;
334 bool PreservePartitionsInOutput;
335 bool GenerateGlobalCellIds;
336 bool UseExplicitCuts;
337 bool ExpandExplicitCuts;
338 bool EnableDebugging;
340 bool LoadBalanceAcrossAllBlocks;
343 VTK_ABI_NAMESPACE_END
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
composite dataset to encapsulates a dataset consisting of partitions.
provides implementation for most abstract methods in the superclass vtkCompositeDataSet ...
abstract class to specify dataset behavior
static vtkDataObjectAlgorithm * New()
void SetBoundaryModeToSplitBoundaryCells()
Specify how cells on the boundaries are handled.
Hold a reference to a vtkObjectBase instance.
const std::vector< vtkBoundingBox > & GetCuts() const
Returns the cuts used by the most recent RequestData call.
a simple class to control print indentation
void SetBoundaryModeToAssignToOneRegion()
Specify how cells on the boundaries are handled.
composite dataset to encapsulates pieces of dataset.
const std::vector< vtkBoundingBox > & GetExplicitCuts() const
Specify the cuts to use when UseExplicitCuts is true.
Superclass for algorithms that produce only data object as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Composite dataset that organizes datasets into blocks.
void SetBoundaryModeToAssignToAllIntersectingRegions()
Specify how cells on the boundaries are handled.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
redistributes input dataset into requested number of partitions
general representation of visualization data
Fast, simple class for representing and operating on 3D bounds.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Multiprocessing communication superclass.