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 
41 #include "vtkDataObjectAlgorithm.h"
42 #include "vtkFiltersParallelModule.h" // For export macro
43 
44 #include <vector> // for vector
45 
46 class vtkBSPCuts;
48 class vtkPKdTree;
49 
50 class VTKFILTERSPARALLEL_EXPORT vtkDistributedDataFilter : public vtkDataObjectAlgorithm
51 {
52 public:
54 
55  void PrintSelf(ostream& os, vtkIndent indent) override;
56 
57  static vtkDistributedDataFilter* New();
58 
60 
63  void SetController(vtkMultiProcessController* c);
64  vtkGetObjectMacro(Controller, vtkMultiProcessController);
66 
77  vtkPKdTree* GetKdtree();
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  {
139  this->SetBoundaryMode(vtkDistributedDataFilter::ASSIGN_TO_ONE_REGION);
140  }
142  {
144  }
146  {
147  this->SetBoundaryMode(vtkDistributedDataFilter::SPLIT_BOUNDARY_CELLS);
148  }
149  int GetBoundaryMode();
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 
212 protected:
214  ~vtkDistributedDataFilter() override;
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 
252  int Timing;
253 
256 
258 
260 
261  std::vector<int> UserRegionAssignments;
262 
263 private:
265  void operator=(const vtkDistributedDataFilter&) = delete;
266 };
267 #endif
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Build a k-d tree decomposition of a list of points.
Definition: vtkPKdTree.h:57
Store vtkAlgorithm input/output information.
This class represents an axis-aligned Binary Spatial Partitioning of a 3D space.
Definition: vtkBSPCuts.h:44
static vtkDataObjectAlgorithm * New()
void SetBoundaryModeToSplitBoundaryCells()
Handling of ClipCells and IncludeAllIntersectingCells.
void SetBoundaryModeToAssignToAllIntersectingRegions()
Handling of ClipCells and IncludeAllIntersectingCells.
vtkBSPCuts * GetCuts()
You can set the k-d tree decomposition, rather than have D3 compute it.
void SetBoundaryModeToAssignToOneRegion()
Handling of ClipCells and IncludeAllIntersectingCells.
Serial stand-in for parallel filter that distributes data among processors.
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkMultiProcessController * Controller
Superclass for algorithms that produce only data object as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
std::vector< int > UserRegionAssignments
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Store zero or more vtkInformation instances.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Multiprocessing communication superclass.