51#ifndef vtkRedistributeDataSetFilter_h
52#define vtkRedistributeDataSetFilter_h
55#include "vtkFiltersParallelDIY2Module.h"
64#include VTK_DIY2(diy/assigner.hpp)
67VTK_ABI_NAMESPACE_BEGIN
97 ASSIGN_TO_ONE_REGION = 0,
98 ASSIGN_TO_ALL_INTERSECTING_REGIONS = 1,
99 SPLIT_BOUNDARY_CELLS = 2
115 vtkSetClampMacro(BoundaryMode,
int, ASSIGN_TO_ONE_REGION, SPLIT_BOUNDARY_CELLS);
116 vtkGetMacro(BoundaryMode,
int);
120 this->SetBoundaryMode(ASSIGN_TO_ALL_INTERSECTING_REGIONS);
133 vtkBooleanMacro(UseExplicitCuts,
bool);
172 vtkBooleanMacro(ExpandExplicitCuts,
bool);
180 const std::vector<vtkBoundingBox>&
GetCuts()
const;
216 vtkSetMacro(PreservePartitionsInOutput,
bool);
217 vtkGetMacro(PreservePartitionsInOutput,
bool);
218 vtkBooleanMacro(PreservePartitionsInOutput,
bool);
226 vtkSetMacro(GenerateGlobalCellIds,
bool);
227 vtkGetMacro(GenerateGlobalCellIds,
bool);
228 vtkBooleanMacro(GenerateGlobalCellIds,
bool);
239 vtkSetMacro(EnableDebugging,
bool);
240 vtkGetMacro(EnableDebugging,
bool);
241 vtkBooleanMacro(EnableDebugging,
bool);
255 vtkBooleanMacro(LoadBalanceAcrossAllBlocks,
bool);
303 const std::vector<vtkPartitioningStrategy::PartitionInformation>& info,
304 bool preserve_input_hierarchy);
307 const std::vector<vtkPartitioningStrategy::PartitionInformation>&,
unsigned int*,
vtkIdType*);
322 std::shared_ptr<diy::Assigner> Assigner;
326 bool PreservePartitionsInOutput;
327 bool GenerateGlobalCellIds;
328 bool EnableDebugging;
Fast, simple class for representing and operating on 3D bounds.
Superclass for algorithms that produce only data object as output.
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
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 that groups datasets as a collection.
composite dataset to encapsulates a dataset consisting of partitions.
A strategy interface for partitioning meshes.
redistributes input dataset into requested number 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 SetUseExplicitCuts(bool)
Specify whether to compute the load balancing automatically or use explicitly provided cuts.
void AddExplicitCut(const double bbox[6])
Specify the cuts to use when UseExplicitCuts is true.
const std::vector< vtkBoundingBox > & GetExplicitCuts() const
Specify the cuts to use when UseExplicitCuts is true.
vtkIdType GetNumberOfPartitions() const
Specify the number of partitions to split the input dataset into.
bool GetExpandExplicitCuts() const
Specify the DIY assigner used for distributing cuts.
void SetNumberOfPartitions(vtkIdType)
Specify the number of partitions to split the input dataset into.
int GetNumberOfExplicitCuts() const
Specify the cuts to use when UseExplicitCuts is true.
void SetController(vtkMultiProcessController *)
Get/Set the controller to use.
bool GetLoadBalanceAcrossAllBlocks()
When UseExplicitCuts is false, and input is a vtkPartitionedDataSetCollection, set this to true to ge...
void SetExplicitCuts(const std::vector< vtkBoundingBox > &boxes)
Specify the cuts to use when UseExplicitCuts is true.
~vtkRedistributeDataSetFilter() override
void SetExpandExplicitCuts(bool)
When using explicit cuts, it possible that the bounding box defined by all the cuts is smaller than t...
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.
vtkPartitioningStrategy * GetStrategy()
Setter/Getter for Strategy.
vtkMTimeType GetMTime() override
Necessary to override this in order to take into account modifications to strategy.
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.
bool GetUseExplicitCuts() const
Specify whether to compute the load balancing automatically or use explicitly provided cuts.
void AddExplicitCut(const vtkBoundingBox &bbox)
Specify the cuts to use when UseExplicitCuts is true.
void SetLoadBalanceAcrossAllBlocks(bool)
When UseExplicitCuts is false, and input is a vtkPartitionedDataSetCollection, set this to true to ge...
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.
void SetStrategy(vtkPartitioningStrategy *)
Setter/Getter for Strategy.
Hold a reference to a vtkObjectBase instance.
vtkTypeUInt32 vtkMTimeType