VTK  9.2.6
vtkDistributedDataFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkDistributedDataFilter.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
15/*----------------------------------------------------------------------------
16 Copyright (c) Sandia Corporation
17 See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
18----------------------------------------------------------------------------*/
19
38#ifndef vtkDistributedDataFilter_h
39#define vtkDistributedDataFilter_h
40
42#include "vtkFiltersParallelModule.h" // For export macro
43
44#include <vector> // for vector
45
46class vtkBSPCuts;
48class vtkPKdTree;
49
50class VTKFILTERSPARALLEL_EXPORT vtkDistributedDataFilter : public vtkDataObjectAlgorithm
51{
52public:
54
55 void PrintSelf(ostream& os, vtkIndent indent) override;
56
58
60
64 vtkGetObjectMacro(Controller, vtkMultiProcessController);
66
78
96 vtkBooleanMacro(RetainKdtree, int);
97 vtkGetMacro(RetainKdtree, int);
98 vtkSetMacro(RetainKdtree, int);
99
111 vtkBooleanMacro(IncludeAllIntersectingCells, int);
112 vtkGetMacro(IncludeAllIntersectingCells, int);
113 vtkSetMacro(IncludeAllIntersectingCells, int);
114
121 vtkBooleanMacro(ClipCells, int);
122 vtkGetMacro(ClipCells, int);
123 vtkSetMacro(ClipCells, int);
124
126 {
127 ASSIGN_TO_ONE_REGION = 0,
128 ASSIGN_TO_ALL_INTERSECTING_REGIONS = 1,
129 SPLIT_BOUNDARY_CELLS = 2
130 };
131
133
136 void SetBoundaryMode(int mode);
138 {
140 }
142 {
144 }
146 {
148 }
151
156
167 vtkBooleanMacro(UseMinimalMemory, int);
168 vtkGetMacro(UseMinimalMemory, int);
169 vtkSetMacro(UseMinimalMemory, int);
170
175 vtkGetMacro(MinimumGhostLevel, int);
176 vtkSetMacro(MinimumGhostLevel, int);
177
182 vtkBooleanMacro(Timing, int);
183 vtkSetMacro(Timing, int);
184 vtkGetMacro(Timing, int);
185
198 vtkBSPCuts* GetCuts() { return this->UserCuts; }
199 void SetCuts(vtkBSPCuts* cuts);
200
210 void SetUserRegionAssignments(const int* map, int numRegions);
211
212protected:
215
221 int FillInputPortInformation(int port, vtkInformation* info) override;
222
229
232
234 int MyId;
235
236 int* Target;
237 int* Source;
238
241
242 // User-adjustable minimum number of ghost levels.
244
245 // Actual number of ghost levels used during execution.
247
251
253
256
258
260
261 std::vector<int> UserRegionAssignments;
262
263private:
265 void operator=(const vtkDistributedDataFilter&) = delete;
266};
267#endif
This class represents an axis-aligned Binary Spatial Partitioning of a 3D space.
Definition: vtkBSPCuts.h:45
Superclass for algorithms that produce only data object as output.
Serial stand-in for parallel filter that distributes data among processors.
void SetUserRegionAssignments(const int *map, int numRegions)
vtkBSPCuts doesn't have information about process assignments for the cuts.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Build a vtkUnstructuredGrid to store the input.
vtkMultiProcessController * Controller
~vtkDistributedDataFilter() override
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
vtkBSPCuts * GetCuts()
You can set the k-d tree decomposition, rather than have D3 compute it.
int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Overridden to create the correct type of data output.
std::vector< int > UserRegionAssignments
void SetBoundaryModeToAssignToAllIntersectingRegions()
Handling of ClipCells and IncludeAllIntersectingCells.
static vtkDistributedDataFilter * New()
int GetBoundaryMode()
Handling of ClipCells and IncludeAllIntersectingCells.
void SetBoundaryModeToSplitBoundaryCells()
Handling of ClipCells and IncludeAllIntersectingCells.
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Ensure previous filters don't send up ghost cells.
vtkPKdTree * GetKdtree()
Get a pointer to the parallel k-d tree object.
void SetBoundaryModeToAssignToOneRegion()
Handling of ClipCells and IncludeAllIntersectingCells.
void SetCuts(vtkBSPCuts *cuts)
void SetBoundaryMode(int mode)
Handling of ClipCells and IncludeAllIntersectingCells.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetController(vtkMultiProcessController *c)
Set/Get the communicator object.
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Multiprocessing communication superclass.
Build a k-d tree decomposition of a list of points.
Definition: vtkPKdTree.h:58