VTK
vtkPUnstructuredGridGhostCellsGenerator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPUnstructuredGridGhostCellsGenerator.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 
82 #ifndef vtkPUnstructuredGridGhostCellsGenerator_h
83 #define vtkPUnstructuredGridGhostCellsGenerator_h
84 
85 #include "vtkFiltersParallelGeometryModule.h" // For export macro
87 #include <vector> // For passing data between methods
88 
92 
93 class VTKFILTERSPARALLELGEOMETRY_EXPORT vtkPUnstructuredGridGhostCellsGenerator:
95 {
97 
98 public:
99  void PrintSelf(ostream& os, vtkIndent indent) override;
100 
102 
104 
107  void SetController(vtkMultiProcessController *c);
108  vtkGetObjectMacro(Controller, vtkMultiProcessController);
110 
112 
116  vtkSetMacro(UseGlobalPointIds, bool);
117  vtkGetMacro(UseGlobalPointIds, bool);
118  vtkBooleanMacro(UseGlobalPointIds, bool);
120 
122 
126  vtkSetStringMacro(GlobalPointIdsArrayName);
127  vtkGetStringMacro(GlobalPointIdsArrayName);
129 
131 
139  vtkSetMacro(HasGlobalCellIds, bool);
140  vtkGetMacro(HasGlobalCellIds, bool);
141  vtkBooleanMacro(HasGlobalCellIds, bool);
143 
145 
149  vtkSetStringMacro(GlobalCellIdsArrayName);
150  vtkGetStringMacro(GlobalCellIdsArrayName);
152 
154 
160  vtkSetMacro(BuildIfRequired, bool);
161  vtkGetMacro(BuildIfRequired, bool);
162  vtkBooleanMacro(BuildIfRequired, bool);
164 
166 
173  vtkSetClampMacro(MinimumNumberOfGhostLevels, int, 1, VTK_INT_MAX);
174  vtkGetMacro(MinimumNumberOfGhostLevels, int);
176 
177 protected:
180 
183  vtkInformationVector** inputVector,
184  vtkInformationVector* outputVector) override;
185 
187  vtkInformationVector *) override;
188 
189  void GetFirstGhostLayer(int, vtkUnstructuredGrid *);
190 
191  void ExchangeBoundsAndDetermineNeighbors(std::vector<double>&);
192  void ExtractAndReduceSurfacePointsShareData(std::vector<double>&);
193  void ComputeSharedPoints();
194 
195  void ExtractAndSendGhostCells(vtkUnstructuredGridBase *);
196 
197  void ReceiveAndMergeGhostCells(int, int, vtkUnstructuredGridBase *,
199 
200  void AddGhostLayer(int ghostLevel, int maxGhostLevel);
201 
202  void FindGhostCells();
203 
204  void AddGlobalCellIds();
205 
206  void RemoveGlobalCellIds();
207 
208 
210 
217 
218 private:
219  struct vtkInternals;
220  vtkInternals *Internals;
221 
223  void operator=(const vtkPUnstructuredGridGhostCellsGenerator&) = delete;
224 };
225 
226 #endif
Builds ghost cells for a distributed unstructured grid dataset.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
Store vtkAlgorithm input/output information.
#define VTK_INT_MAX
Definition: vtkType.h:157
static vtkUnstructuredGridAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:39
dataset represents arbitrary combinations of all possible cell types
Superclass for algorithms that produce only unstructured grid as output.
Store zero or more vtkInformation instances.
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
dataset represents arbitrary combinations of all possible cell types.
Multiprocessing communication superclass.