92#ifndef vtkDistributedDataFilter_h
93#define vtkDistributedDataFilter_h
95#include "vtkFiltersParallelMPIModule.h"
100class vtkDistributedDataFilterSTLCloak;
157 vtkGetMacro(RetainKdtree,
int);
172 vtkGetMacro(IncludeAllIntersectingCells,
int);
182 vtkGetMacro(ClipCells,
int);
186 ASSIGN_TO_ONE_REGION=0,
187 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
188 SPLIT_BOUNDARY_CELLS=2
199 { this->SetBoundaryMode(
223 vtkGetMacro(UseMinimalMemory,
int);
233 vtkGetMacro(Timing,
int);
336 DuplicateCellsNo = 0,
337 DuplicateCellsYes = 1
352 int PartitionDataAndAssignToProcesses(
vtkDataSet *set);
372 void ComputeMyRegionBounds();
394 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
400 void SetUpPairWiseExchange();
407 static void FreeIdLists(
vtkIdList**lists,
int nlists);
425 int deleteSendArrays,
int tag);
427 int deleteSendArrays,
int tag);
429 int deleteSendArrays,
int tag);
437 int deleteSendArrays,
int tag);
439 int deleteSendArrays,
int tag);
441 int deleteSendArrays,
int tag);
450 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
454 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
459 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
464 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
511 vtkDistributedDataFilterSTLCloak *procs);
518 vtkDistributedDataFilterSTLCloak *ptIdMap);
524 int InMySpatialRegion(
float x,
float y,
float z);
525 int InMySpatialRegion(
double x,
double y,
double z);
526 int StrictlyInsideMyBounds(
float x,
float y,
float z);
527 int StrictlyInsideMyBounds(
double x,
double y,
double z);
535 int AddCellsIAlreadyHave);
538 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
541 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
545 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
564 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
583 const char *arrayName,
unsigned char val);
585 const char *arrayName,
unsigned char val);
591 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
601 int useGlobalNodeIds,
float pointMergeTolerance,
602 int useGlobalCellIds);
613 int NumConvexSubRegions;
614 double *ConvexSubRegionBounds;
619 int IncludeAllIntersectingCells;
621 int AssignBoundaryCellsToOneRegion;
622 int AssignBoundaryCellsToAllIntersectingRegions;
623 int DivideBoundaryCells;
627 int NextProgressStep;
628 double ProgressIncrement;
630 int UseMinimalMemory;
638 vtkInternals* Internals;
This class represents an axis-aligned Binary Spatial Partitioning of a 3D space.
abstract superclass for arrays of numeric data
Superclass for algorithms that produce only data object as output.
abstract class to specify dataset behavior
Distribute data among processors.
void SetUserRegionAssignments(const int *map, int numRegions)
vtkBSPCuts doesn't have information about process assignments for the cuts.
void DivideBoundaryCellsOff()
void SetAssignBoundaryCellsToAllIntersectingRegions(int val)
@ ASSIGN_TO_ALL_INTERSECTING_REGIONS
~vtkDistributedDataFilter()
vtkBSPCuts * GetCuts()
You can set the k-d tree decomposition, rather than have D3 compute it.
void AssignBoundaryCellsToAllIntersectingRegionsOff()
void SetAssignBoundaryCellsToOneRegion(int val)
void DivideBoundaryCellsOn()
Another way to set ClipCells and IncludeAllIntersectingCells.
void SingleProcessExecute(vtkDataSet *input, vtkUnstructuredGrid *output)
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void SetBoundaryModeToAssignToAllIntersectingRegions()
static vtkDistributedDataFilter * New()
void SetBoundaryModeToSplitBoundaryCells()
vtkPKdTree * GetKdtree()
Get a pointer to the parallel k-d tree object.
void AssignBoundaryCellsToOneRegionOn()
Another way to set ClipCells and IncludeAllIntersectingCells.
void SetBoundaryModeToAssignToOneRegion()
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Build a vtkUnstructuredGrid for a spatial region from the data distributed across processes.
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Overridden to create the correct type of data output.
void SetCuts(vtkBSPCuts *cuts)
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Ensure previous filters don't send up ghost cells.
void SetBoundaryMode(int mode)
Handling of ClipCells and IncludeAllIntersectingCells.
void AssignBoundaryCellsToOneRegionOff()
void AssignBoundaryCellsToAllIntersectingRegionsOn()
Another way to set ClipCells and IncludeAllIntersectingCells.
void SetDivideBoundaryCells(int val)
vtkDistributedDataFilter()
int RequestDataInternal(vtkDataSet *input, vtkUnstructuredGrid *output)
Implementation for request data.
void SetController(vtkMultiProcessController *c)
Set/Get the communicator object.
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
dynamic, self-adjusting array of float
list of point or cell ids
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
dynamic, self-adjusting array of int
Multiprocessing communication superclass.
Build a k-d tree decomposition of a list of points.
dataset represents arbitrary combinations of all possible cell types
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.