Go to the documentation of this file.
92 #ifndef vtkDistributedDataFilter_h
93 #define vtkDistributedDataFilter_h
95 #include "vtkFiltersParallelMPIModule.h"
100 class vtkDistributedDataFilterSTLCloak;
156 vtkBooleanMacro(RetainKdtree,
int);
157 vtkGetMacro(RetainKdtree,
int);
158 vtkSetMacro(RetainKdtree,
int);
171 vtkBooleanMacro(IncludeAllIntersectingCells,
int);
172 vtkGetMacro(IncludeAllIntersectingCells,
int);
173 vtkSetMacro(IncludeAllIntersectingCells,
int);
181 vtkBooleanMacro(ClipCells,
int);
182 vtkGetMacro(ClipCells,
int);
183 vtkSetMacro(ClipCells,
int);
186 ASSIGN_TO_ONE_REGION=0,
187 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
188 SPLIT_BOUNDARY_CELLS=2
199 { this->SetBoundaryMode(
222 vtkBooleanMacro(UseMinimalMemory,
int);
223 vtkGetMacro(UseMinimalMemory,
int);
224 vtkSetMacro(UseMinimalMemory,
int);
230 vtkGetMacro(MinimumGhostLevel,
int)
231 vtkSetMacro(MinimumGhostLevel,
int)
237 vtkBooleanMacro(Timing,
int);
238 vtkSetMacro(Timing,
int);
239 vtkGetMacro(Timing,
int);
342 DuplicateCellsNo = 0,
343 DuplicateCellsYes = 1
358 int PartitionDataAndAssignToProcesses(
vtkDataSet *set);
378 void ComputeMyRegionBounds();
400 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
406 void SetUpPairWiseExchange();
413 static void FreeIdLists(
vtkIdList**lists,
int nlists);
431 int deleteSendArrays,
int tag);
433 int deleteSendArrays,
int tag);
435 int deleteSendArrays,
int tag);
443 int deleteSendArrays,
int tag);
445 int deleteSendArrays,
int tag);
447 int deleteSendArrays,
int tag);
456 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
460 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
465 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
470 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
517 vtkDistributedDataFilterSTLCloak *procs);
524 vtkDistributedDataFilterSTLCloak *ptIdMap);
530 int InMySpatialRegion(
float x,
float y,
float z);
531 int InMySpatialRegion(
double x,
double y,
double z);
532 int StrictlyInsideMyBounds(
float x,
float y,
float z);
533 int StrictlyInsideMyBounds(
double x,
double y,
double z);
541 int AddCellsIAlreadyHave);
544 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
547 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
551 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
570 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
589 const char *arrayName,
unsigned char val);
591 const char *arrayName,
unsigned char val);
597 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
607 int useGlobalNodeIds,
float pointMergeTolerance,
608 int useGlobalCellIds);
619 int NumConvexSubRegions;
620 double *ConvexSubRegionBounds;
623 int MinimumGhostLevel;
629 int IncludeAllIntersectingCells;
631 int AssignBoundaryCellsToOneRegion;
632 int AssignBoundaryCellsToAllIntersectingRegions;
633 int DivideBoundaryCells;
637 int NextProgressStep;
638 double ProgressIncrement;
640 int UseMinimalMemory;
648 vtkInternals* Internals;
int RequestDataInternal(vtkDataSet *input, vtkUnstructuredGrid *output)
Implementation for request data.
void SetAssignBoundaryCellsToOneRegion(int val)
Distribute data among processors.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Build a vtkUnstructuredGrid for a spatial region from the data distributed across processes.
dynamic, self-adjusting array of float
virtual int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void DivideBoundaryCellsOn()
Another way to set ClipCells and IncludeAllIntersectingCells.
void SetCuts(vtkBSPCuts *cuts)
Superclass for algorithms that produce only data object as output.
vtkDistributedDataFilter()
abstract superclass for arrays of numeric data
Build a k-d tree decomposition of a list of points.
@ ASSIGN_TO_ALL_INTERSECTING_REGIONS
void AssignBoundaryCellsToOneRegionOn()
Another way to set ClipCells and IncludeAllIntersectingCells.
void SetUserRegionAssignments(const int *map, int numRegions)
vtkBSPCuts doesn't have information about process assignments for the cuts.
void SetBoundaryModeToAssignToOneRegion()
Multiprocessing communication superclass.
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Ensure previous filters don't send up ghost cells.
a simple class to control print indentation
void AssignBoundaryCellsToAllIntersectingRegionsOn()
Another way to set ClipCells and IncludeAllIntersectingCells.
dynamic, self-adjusting array of int
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Overridden to create the correct type of data output.
This class represents an axis-aligned Binary Spatial Partitioning of a 3D space.
list of point or cell ids
void AssignBoundaryCellsToOneRegionOff()
void SetDivideBoundaryCells(int val)
void SetAssignBoundaryCellsToAllIntersectingRegions(int val)
void SetController(vtkMultiProcessController *c)
Set/Get the communicator object.
~vtkDistributedDataFilter()
abstract class to specify dataset behavior
void SetBoundaryModeToSplitBoundaryCells()
dynamic, self-adjusting array of vtkIdType
static vtkDistributedDataFilter * New()
void SetBoundaryMode(int mode)
Handling of ClipCells and IncludeAllIntersectingCells.
void AssignBoundaryCellsToAllIntersectingRegionsOff()
dataset represents arbitrary combinations of all possible cell types
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SingleProcessExecute(vtkDataSet *input, vtkUnstructuredGrid *output)
void SetBoundaryModeToAssignToAllIntersectingRegions()
void DivideBoundaryCellsOff()
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
vtkPKdTree * GetKdtree()
Get a pointer to the parallel k-d tree object.