141 DuplicateCellsNo = 0,
142 DuplicateCellsYes = 1
159 int PartitionDataAndAssignToProcesses(vtkDataSet* set);
164 vtkUnstructuredGrid* RedistributeDataSet(
165 vtkDataSet* set, vtkDataSet* input,
int filterOutDuplicateCells);
170 int ClipGridCells(vtkUnstructuredGrid* grid);
175 vtkUnstructuredGrid* AcquireGhostCells(vtkUnstructuredGrid* grid);
180 void ComputeMyRegionBounds();
185 int CheckFieldArrayTypes(vtkDataSet* set);
192 vtkDataSet* TestFixTooFewInputFiles(vtkDataSet* input,
int& duplicateCells);
197 vtkUnstructuredGrid* MPIRedistribute(
198 vtkDataSet* in, vtkDataSet* input,
int filterOutDuplicateCells);
203 vtkIdList** GetCellIdsForProcess(
int proc,
int* nlists);
209 void SetUpPairWiseExchange();
215 void FreeIntArrays(vtkIdTypeArray** ar);
216 static void FreeIdLists(vtkIdList** lists,
int nlists);
217 static vtkIdType GetIdListSize(vtkIdList** lists,
int nlists);
224 vtkIdTypeArray* ExchangeCounts(
vtkIdType myCount,
int tag);
225 vtkIdTypeArray* ExchangeCountsLean(
vtkIdType myCount,
int tag);
226 vtkIdTypeArray* ExchangeCountsFast(
vtkIdType myCount,
int tag);
233 vtkIdTypeArray** ExchangeIdArrays(vtkIdTypeArray** arIn,
int deleteSendArrays,
int tag);
234 vtkIdTypeArray** ExchangeIdArraysLean(vtkIdTypeArray** arIn,
int deleteSendArrays,
int tag);
235 vtkIdTypeArray** ExchangeIdArraysFast(vtkIdTypeArray** arIn,
int deleteSendArrays,
int tag);
242 vtkFloatArray** ExchangeFloatArrays(vtkFloatArray** myArray,
int deleteSendArrays,
int tag);
243 vtkFloatArray** ExchangeFloatArraysLean(vtkFloatArray** myArray,
int deleteSendArrays,
int tag);
244 vtkFloatArray** ExchangeFloatArraysFast(vtkFloatArray** myArray,
int deleteSendArrays,
int tag);
251 vtkUnstructuredGrid* ExchangeMergeSubGrids(vtkIdList** cellIds,
int deleteCellIds,
252 vtkDataSet* myGrid,
int deleteMyGrid,
int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
253 vtkUnstructuredGrid* ExchangeMergeSubGrids(vtkIdList*** cellIds,
int* numLists,
int deleteCellIds,
254 vtkDataSet* myGrid,
int deleteMyGrid,
int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
255 vtkUnstructuredGrid* ExchangeMergeSubGridsLean(vtkIdList*** cellIds,
int* numLists,
256 int deleteCellIds, vtkDataSet* myGrid,
int deleteMyGrid,
int filterOutDuplicateCells,
257 int ghostCellFlag,
int tag);
258 vtkUnstructuredGrid* ExchangeMergeSubGridsFast(vtkIdList*** cellIds,
int* numLists,
259 int deleteCellIds, vtkDataSet* myGrid,
int deleteMyGrid,
int filterOutDuplicateCells,
260 int ghostCellFlag,
int tag);
267 char* MarshallDataSet(vtkUnstructuredGrid* extractedGrid,
vtkIdType& size);
268 vtkUnstructuredGrid* UnMarshallDataSet(
char* buf,
vtkIdType size);
275 void ClipCellsToSpatialRegion(vtkUnstructuredGrid* grid);
277 void ClipWithVtkClipDataSet(vtkUnstructuredGrid *grid,
double *bounds,
278 vtkUnstructuredGrid **outside, vtkUnstructuredGrid **inside);
282 void ClipWithBoxClipDataSet(vtkUnstructuredGrid* grid,
double* bounds,
283 vtkUnstructuredGrid** outside, vtkUnstructuredGrid** inside);
292 vtkIdTypeArray* GetGlobalNodeIdArray(vtkDataSet* set);
293 vtkIdType* GetGlobalNodeIds(vtkDataSet* set);
294 vtkIdTypeArray* GetGlobalElementIdArray(vtkDataSet* set);
295 vtkIdType* GetGlobalElementIds(vtkDataSet* set);
296 int AssignGlobalNodeIds(vtkUnstructuredGrid* grid);
297 int AssignGlobalElementIds(vtkDataSet* in);
298 vtkIdTypeArray** FindGlobalPointIds(vtkFloatArray** ptarray, vtkIdTypeArray* ids,
299 vtkUnstructuredGrid* grid,
vtkIdType& numUniqueMissingPoints);
305 vtkIdTypeArray** MakeProcessLists(
306 vtkIdTypeArray** pointIds, vtkPDistributedDataFilterSTLCloak* procs);
311 vtkIdList** BuildRequestedGrids(vtkIdTypeArray** globalPtIds, vtkUnstructuredGrid* grid,
312 vtkPDistributedDataFilterSTLCloak* ptIdMap);
318 int InMySpatialRegion(
float x,
float y,
float z);
319 int InMySpatialRegion(
double x,
double y,
double z);
320 int StrictlyInsideMyBounds(
float x,
float y,
float z);
321 int StrictlyInsideMyBounds(
double x,
double y,
double z);
328 vtkIdTypeArray** GetGhostPointIds(
329 int ghostLevel, vtkUnstructuredGrid* grid,
int AddCellsIAlreadyHave);
330 vtkUnstructuredGrid* AddGhostCellsUniqueCellAssignment(
331 vtkUnstructuredGrid* myGrid, vtkPDistributedDataFilterSTLCloak* globalToLocalMap);
332 vtkUnstructuredGrid* AddGhostCellsDuplicateCellAssignment(
333 vtkUnstructuredGrid* myGrid, vtkPDistributedDataFilterSTLCloak* globalToLocalMap);
334 vtkUnstructuredGrid* SetMergeGhostGrid(vtkUnstructuredGrid* ghostCellGrid,
335 vtkUnstructuredGrid* incomingGhostCells,
int ghostLevel,
336 vtkPDistributedDataFilterSTLCloak* idMap);
343 vtkUnstructuredGrid* ExtractCells(vtkIdList* list,
int deleteCellLists, vtkDataSet* in);
344 vtkUnstructuredGrid* ExtractCells(
345 vtkIdList** lists,
int nlists,
int deleteCellLists, vtkDataSet* in);
346 vtkUnstructuredGrid* ExtractZeroCellGrid(vtkDataSet* in);
353 static int GlobalPointIdIsUsed(
354 vtkUnstructuredGrid* grid,
int ptId, vtkPDistributedDataFilterSTLCloak* globalToLocal);
355 static int LocalPointIdIsUsed(vtkUnstructuredGrid* grid,
int ptId);
363 vtkUnstructuredGrid* grid,
vtkIdType* gidCells, vtkIdTypeArray* ids);
369 static void AddConstantUnsignedCharPointArray(
370 vtkUnstructuredGrid* grid,
const char* arrayName,
unsigned char val);
371 static void AddConstantUnsignedCharCellArray(
372 vtkUnstructuredGrid* grid,
const char* arrayName,
unsigned char val);
378 static void RemoveRemoteCellsFromList(
384 static vtkUnstructuredGrid* MergeGrids(vtkDataSet** sets,
int nsets,
int deleteDataSets,
385 int useGlobalNodeIds,
float pointMergeTolerance,
int useGlobalCellIds);
388 vtkPDistributedDataFilter(
const vtkPDistributedDataFilter&) =
delete;
389 void operator=(
const vtkPDistributedDataFilter&) =
delete;