73#ifndef vtkRedistributeDataSetFilter_h
74#define vtkRedistributeDataSetFilter_h
77#include "vtkFiltersParallelDIY2Module.h"
85#include VTK_DIY2(diy/assigner.hpp)
132 vtkGetMacro(BoundaryMode,
int);
147 vtkSetMacro(UseExplicitCuts,
bool);
148 vtkGetMacro(UseExplicitCuts,
bool);
149 vtkBooleanMacro(UseExplicitCuts,
bool);
157 const std::vector<vtkBoundingBox>&
GetExplicitCuts()
const {
return this->ExplicitCuts; }
186 vtkSetMacro(ExpandExplicitCuts,
bool);
187 vtkGetMacro(ExpandExplicitCuts,
bool);
188 vtkBooleanMacro(ExpandExplicitCuts,
bool);
196 const std::vector<vtkBoundingBox>&
GetCuts()
const {
return this->Cuts; }
218 vtkGetMacro(NumberOfPartitions,
int);
235 vtkSetMacro(PreservePartitionsInOutput,
bool);
236 vtkGetMacro(PreservePartitionsInOutput,
bool);
237 vtkBooleanMacro(PreservePartitionsInOutput,
bool);
245 vtkSetMacro(GenerateGlobalCellIds,
bool);
246 vtkGetMacro(GenerateGlobalCellIds,
bool);
247 vtkBooleanMacro(GenerateGlobalCellIds,
bool);
257 const std::vector<vtkBoundingBox>& cuts,
const vtkBoundingBox& bounds);
267 vtkSetMacro(EnableDebugging,
bool);
268 vtkGetMacro(EnableDebugging,
bool);
269 vtkBooleanMacro(EnableDebugging,
bool);
281 vtkSetMacro(LoadBalanceAcrossAllBlocks,
bool);
282 vtkGetMacro(LoadBalanceAcrossAllBlocks,
bool);
283 vtkBooleanMacro(LoadBalanceAcrossAllBlocks,
bool);
316 vtkDataSet* dataset,
const std::vector<vtkBoundingBox>& cuts);
324 const std::vector<vtkBoundingBox>& cuts,
vtkIdType* mb_offset =
nullptr);
325 bool RedistributeDataSet(
338 std::vector<vtkBoundingBox> ExplicitCuts;
339 std::vector<vtkBoundingBox> Cuts;
340 std::shared_ptr<diy::Assigner> Assigner;
344 int NumberOfPartitions;
345 bool PreservePartitionsInOutput;
346 bool GenerateGlobalCellIds;
347 bool UseExplicitCuts;
348 bool ExpandExplicitCuts;
349 bool EnableDebugging;
351 bool LoadBalanceAcrossAllBlocks;
Fast, simple class for representing and operating on 3D bounds.
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
general representation of visualization data
abstract class to specify dataset behavior
a simple class to control print indentation
Composite dataset that organizes datasets into blocks.
composite dataset to encapsulates pieces of dataset.
Multiprocessing communication superclass.
composite dataset to encapsulates a dataset consisting of partitions.
static vtkRedistributeDataSetFilter * New()
void SetBoundaryModeToAssignToAllIntersectingRegions()
Specify how cells on the boundaries are handled.
const vtkBoundingBox & GetExplicitCut(int index) const
Specify the cuts to use when UseExplicitCuts is true.
int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void AddExplicitCut(const double bbox[6])
Specify the cuts to use when UseExplicitCuts is true.
virtual vtkSmartPointer< vtkPartitionedDataSet > SplitDataSet(vtkDataSet *dataset, const std::vector< vtkBoundingBox > &cuts)
This method is called to split a vtkDataSet into multiple datasets by the vector of vtkBoundingBox pa...
const std::vector< vtkBoundingBox > & GetExplicitCuts() const
Specify the cuts to use when UseExplicitCuts is true.
int GetNumberOfExplicitCuts() const
Specify the cuts to use when UseExplicitCuts is true.
void SetController(vtkMultiProcessController *)
Get/Set the controller to use.
void SetExplicitCuts(const std::vector< vtkBoundingBox > &boxes)
Specify the cuts to use when UseExplicitCuts is true.
~vtkRedistributeDataSetFilter() override
std::vector< vtkBoundingBox > ExpandCuts(const std::vector< vtkBoundingBox > &cuts, const vtkBoundingBox &bounds)
Helper function to expand a collection of bounding boxes to include the bounds specified.
void RemoveAllExplicitCuts()
Specify the cuts to use when UseExplicitCuts is true.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
const std::vector< vtkBoundingBox > & GetCuts() const
Returns the cuts used by the most recent RequestData call.
@ ASSIGN_TO_ALL_INTERSECTING_REGIONS
void SetBoundaryModeToAssignToOneRegion()
Specify how cells on the boundaries are handled.
std::shared_ptr< const diy::Assigner > GetAssigner() const
Specify the DIY assigner used for distributing cuts.
virtual std::vector< vtkBoundingBox > GenerateCuts(vtkDataObject *data)
This method is called to generate the partitions for the input dataset.
void AddExplicitCut(const vtkBoundingBox &bbox)
Specify the cuts to use when UseExplicitCuts is true.
virtual void SetBoundaryMode(int)
Specify how cells on the boundaries are handled.
void SetAssigner(std::shared_ptr< diy::Assigner > assigner)
Specify the DIY assigner used for distributing cuts.
vtkRedistributeDataSetFilter()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetBoundaryModeToSplitBoundaryCells()
Specify how cells on the boundaries are handled.
std::shared_ptr< diy::Assigner > GetAssigner()
Specify the DIY assigner used for distributing cuts.
Hold a reference to a vtkObjectBase instance.