89 #ifndef vtkDistributedDataFilter_h
90 #define vtkDistributedDataFilter_h
92 #include "vtkFiltersParallelMPIModule.h"
97 class vtkDistributedDataFilterSTLCloak;
154 vtkGetMacro(RetainKdtree,
int);
169 vtkGetMacro(IncludeAllIntersectingCells,
int);
179 vtkGetMacro(ClipCells,
int);
183 ASSIGN_TO_ONE_REGION=0,
184 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
185 SPLIT_BOUNDARY_CELLS=2
192 void SetBoundaryMode(
int mode);
196 { this->SetBoundaryMode(
201 int GetBoundaryMode();
220 vtkGetMacro(UseMinimalMemory,
int);
230 vtkGetMacro(Timing,
int);
256 void SetUserRegionAssignments(
const int *map,
int numRegions);
269 void AssignBoundaryCellsToOneRegionOn();
270 void AssignBoundaryCellsToOneRegionOff();
271 void SetAssignBoundaryCellsToOneRegion(
int val);
282 void AssignBoundaryCellsToAllIntersectingRegionsOn();
283 void AssignBoundaryCellsToAllIntersectingRegionsOff();
284 void SetAssignBoundaryCellsToAllIntersectingRegions(
int val);
294 void DivideBoundaryCellsOn();
295 void DivideBoundaryCellsOff();
296 void SetDivideBoundaryCells(
int val);
308 vtkInformationVector *) VTK_OVERRIDE;
309 virtual
int FillInputPortInformation(
int port, vtkInformation *
info) VTK_OVERRIDE;
316 virtual
int RequestDataObject(vtkInformation*,
317 vtkInformationVector**,
318 vtkInformationVector*) VTK_OVERRIDE;
333 DuplicateCellsNo = 0,
334 DuplicateCellsYes = 1
349 int PartitionDataAndAssignToProcesses(
vtkDataSet *set);
369 void ComputeMyRegionBounds();
391 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
397 void SetUpPairWiseExchange();
404 static void FreeIdLists(
vtkIdList**lists,
int nlists);
422 int deleteSendArrays,
int tag);
424 int deleteSendArrays,
int tag);
426 int deleteSendArrays,
int tag);
434 int deleteSendArrays,
int tag);
436 int deleteSendArrays,
int tag);
438 int deleteSendArrays,
int tag);
447 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
451 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
456 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
461 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
508 vtkDistributedDataFilterSTLCloak *procs);
515 vtkDistributedDataFilterSTLCloak *ptIdMap);
521 int InMySpatialRegion(
float x,
float y,
float z);
522 int InMySpatialRegion(
double x,
double y,
double z);
523 int StrictlyInsideMyBounds(
float x,
float y,
float z);
524 int StrictlyInsideMyBounds(
double x,
double y,
double z);
532 int AddCellsIAlreadyHave);
535 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
538 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
542 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
561 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
580 const char *arrayName,
unsigned char val);
582 const char *arrayName,
unsigned char val);
588 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
598 int useGlobalNodeIds,
float pointMergeTolerance,
599 int useGlobalCellIds);
610 int NumConvexSubRegions;
611 double *ConvexSubRegionBounds;
616 int IncludeAllIntersectingCells;
618 int AssignBoundaryCellsToOneRegion;
619 int AssignBoundaryCellsToAllIntersectingRegions;
620 int DivideBoundaryCells;
624 int NextProgressStep;
625 double ProgressIncrement;
627 int UseMinimalMemory;
635 vtkInternals* Internals;
Build a k-d tree decomposition of a list of points.
This class represents an axis-aligned Binary Spatial Partitioning of a 3D space.
abstract class to specify dataset behavior
static vtkDataObjectAlgorithm * New()
dynamic, self-adjusting array of float
void SetBoundaryModeToSplitBoundaryCells()
Handling of ClipCells and IncludeAllIntersectingCells.
dynamic, self-adjusting array of vtkIdType
void SetBoundaryModeToAssignToAllIntersectingRegions()
Handling of ClipCells and IncludeAllIntersectingCells.
void SetBoundaryModeToAssignToOneRegion()
Handling of ClipCells and IncludeAllIntersectingCells.
Distribute data among processors.
dynamic, self-adjusting array of int
a simple class to control print indentation
list of point or cell ids
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
Superclass for algorithms that produce only data object as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Multiprocessing communication superclass.