70#ifndef vtkRedistributeDataSetFilter_h
71#define vtkRedistributeDataSetFilter_h
74#include "vtkFiltersParallelDIY2Module.h"
82#include VTK_DIY2(diy/assigner.hpp)
129 vtkGetMacro(BoundaryMode,
int);
144 vtkSetMacro(UseExplicitCuts,
bool);
145 vtkGetMacro(UseExplicitCuts,
bool);
146 vtkBooleanMacro(UseExplicitCuts,
bool);
154 const std::vector<vtkBoundingBox>&
GetExplicitCuts()
const {
return this->ExplicitCuts; }
183 vtkSetMacro(ExpandExplicitCuts,
bool);
184 vtkGetMacro(ExpandExplicitCuts,
bool);
185 vtkBooleanMacro(ExpandExplicitCuts,
bool);
193 const std::vector<vtkBoundingBox>&
GetCuts()
const {
return this->Cuts; }
215 vtkGetMacro(NumberOfPartitions,
int);
232 vtkSetMacro(PreservePartitionsInOutput,
bool);
233 vtkGetMacro(PreservePartitionsInOutput,
bool);
234 vtkBooleanMacro(PreservePartitionsInOutput,
bool);
242 vtkSetMacro(GenerateGlobalCellIds,
bool);
243 vtkGetMacro(GenerateGlobalCellIds,
bool);
244 vtkBooleanMacro(GenerateGlobalCellIds,
bool);
254 const std::vector<vtkBoundingBox>& cuts,
const vtkBoundingBox& bounds);
264 vtkSetMacro(EnableDebugging,
bool);
265 vtkGetMacro(EnableDebugging,
bool);
266 vtkBooleanMacro(EnableDebugging,
bool);
278 vtkSetMacro(LoadBalanceAcrossAllBlocks,
bool);
279 vtkGetMacro(LoadBalanceAcrossAllBlocks,
bool);
280 vtkBooleanMacro(LoadBalanceAcrossAllBlocks,
bool);
313 vtkDataSet* dataset,
const std::vector<vtkBoundingBox>& cuts);
321 const std::vector<vtkBoundingBox>& cuts,
vtkIdType* mb_offset =
nullptr);
322 bool RedistributeDataSet(
335 std::vector<vtkBoundingBox> ExplicitCuts;
336 std::vector<vtkBoundingBox> Cuts;
337 std::shared_ptr<diy::Assigner> Assigner;
341 int NumberOfPartitions;
342 bool PreservePartitionsInOutput;
343 bool GenerateGlobalCellIds;
344 bool UseExplicitCuts;
345 bool ExpandExplicitCuts;
346 bool EnableDebugging;
348 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.