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 
79 #ifndef vtkPUnstructuredGridGhostCellsGenerator_h
80 #define vtkPUnstructuredGridGhostCellsGenerator_h
81 
82 #include "vtkFiltersParallelGeometryModule.h" // For export macro
84 #include <vector> // For passing data between methods
85 
89 
90 class VTKFILTERSPARALLELGEOMETRY_EXPORT vtkPUnstructuredGridGhostCellsGenerator:
92 {
94 
95 public:
96  void PrintSelf(ostream& os, vtkIndent indent) override;
97 
99 
101 
104  void SetController(vtkMultiProcessController *c);
105  vtkGetObjectMacro(Controller, vtkMultiProcessController);
107 
109 
113  vtkSetMacro(UseGlobalPointIds, bool);
114  vtkGetMacro(UseGlobalPointIds, bool);
115  vtkBooleanMacro(UseGlobalPointIds, bool);
117 
119 
123  vtkSetStringMacro(GlobalPointIdsArrayName);
124  vtkGetStringMacro(GlobalPointIdsArrayName);
126 
128 
136  vtkSetMacro(HasGlobalCellIds, bool);
137  vtkGetMacro(HasGlobalCellIds, bool);
138  vtkBooleanMacro(HasGlobalCellIds, bool);
140 
142 
146  vtkSetStringMacro(GlobalCellIdsArrayName);
147  vtkGetStringMacro(GlobalCellIdsArrayName);
149 
151 
157  vtkSetMacro(BuildIfRequired, bool);
158  vtkGetMacro(BuildIfRequired, bool);
159  vtkBooleanMacro(BuildIfRequired, bool);
161 
163 
170  vtkSetClampMacro(MinimumNumberOfGhostLevels, int, 1, VTK_INT_MAX);
171  vtkGetMacro(MinimumNumberOfGhostLevels, int);
173 
174 protected:
177 
180  vtkInformationVector** inputVector,
181  vtkInformationVector* outputVector) override;
182 
184  vtkInformationVector *) override;
185 
186  void GetFirstGhostLayer(int, vtkUnstructuredGrid *);
187 
188  void ExchangeBoundsAndDetermineNeighbors(std::vector<double>&);
189  void ExtractAndReduceSurfacePointsShareData(std::vector<double>&);
190  void ComputeSharedPoints();
191 
192  void ExtractAndSendGhostCells(vtkUnstructuredGridBase *);
193 
194  void ReceiveAndMergeGhostCells(int, int, vtkUnstructuredGridBase *,
196 
197  void AddGhostLayer(int ghostLevel, int maxGhostLevel);
198 
199  void FindGhostCells();
200 
201  void AddGlobalCellIds();
202 
203  void RemoveGlobalCellIds();
204 
205 
207 
214 
215 private:
216  struct vtkInternals;
217  vtkInternals *Internals;
218 
220  void operator=(const vtkPUnstructuredGridGhostCellsGenerator&) = delete;
221 };
222 
223 #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:33
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.