VTK  9.1.0
vtkDIYGhostUtilities.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDIYGhostUtilities.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 =========================================================================*/
60 #ifndef vtkDIYGhostUtilities_h
61 #define vtkDIYGhostUtilities_h
62 
63 #include "vtkBoundingBox.h" // For ComputeLinkMap
64 #include "vtkDIYExplicitAssigner.h" // For DIY assigner
65 #include "vtkDIYUtilities.h" // For Block
66 #include "vtkObject.h"
67 #include "vtkParallelDIYModule.h" // For export macros
68 #include "vtkQuaternion.h" // For vtkImageData
69 #include "vtkSmartPointer.h" // For vtkSmartPointer
70 
71 #include <array> // For VectorType and ExtentType
72 #include <map> // For BlockMapType
73 #include <set> // For Link
74 #include <vector> // For LinkMap
75 
76 // clang-format off
77 #include "vtk_diy2.h" // Third party include
78 #include VTK_DIY2(diy/master.hpp)
79 // clang-format on
80 
82 class vtkAlgorithm;
83 class vtkCellArray;
84 class vtkDataArray;
85 class vtkDataSet;
86 class vtkFieldData;
87 class vtkIdList;
88 class vtkIdTypeArray;
89 class vtkImageData;
90 class vtkMatrix3x3;
92 class vtkPoints;
93 class vtkPolyData;
94 class vtkRectilinearGrid;
95 class vtkStructuredGrid;
98 
99 class VTKPARALLELDIY_EXPORT vtkDIYGhostUtilities : public vtkObject
100 {
101 public:
103  void PrintSelf(ostream& os, vtkIndent indent) override;
104 
106 
109  using VectorType = std::array<double, 3>;
111  using ExtentType = std::array<int, 6>;
112  template <class T>
113  using BlockMapType = std::map<int, T>;
114  using Links = std::set<int>;
115  using LinkMap = std::vector<Links>;
117 
122  template <class DataSetT>
124 
125 protected:
130  {
131  vtkSmartPointer<vtkFieldData> GhostCellData = nullptr;
132  vtkSmartPointer<vtkFieldData> GhostPointData = nullptr;
133  };
134 
139  {
143  GridBlockStructure(const int* extent, int dim);
144 
149 
155 
160 
165  unsigned char AdjacencyMask;
166 
171  };
172 
177  {
182 
184  };
185 
191  {
193 
197  ImageDataBlockStructure(const int extent[6], int dim, const double origin[3],
198  const double spacing[3], const double orientationQuaternion[4]);
199  ImageDataBlockStructure(const int extent[6], int dim, const double origin[3],
200  const double spacing[3], vtkMatrix3x3* directionMatrix);
202 
207 
212 
217 
222  };
223 
225  {
227 
234 
240  vtkSmartPointer<vtkDataArray> CoordinateGhosts[6];
241  };
242 
248  {
253  RectilinearGridBlockStructure(const int extent[6], int dim, vtkDataArray* xCoordinates,
254  vtkDataArray* yCoordinates, vtkDataArray* zCoordinates);
255 
260 
262 
269  };
270 
272  {
278  {
283 
288  };
289 
294  OuterPointLayersType OuterPointLayers[6];
295 
300  };
301 
307  {
313 
318 
322  vtkSmartPointer<vtkPoints> OuterPointLayers[6];
323 
328  struct Grid2D
329  {
333  int StartX = 0;
334 
338  int StartY = 0;
339 
343  int EndX = 0;
344 
348  int EndY = 0;
349 
353  int XOrientation = 0;
354 
358  int YOrientation = 0;
359 
364  int ExtentId = -1;
365  };
366 
373 
378  };
379 
381  {
386 
391  vtkSmartPointer<vtkIdList> OutputToInputCellIdRedirectionMap = nullptr;
392 
394 
398  vtkSmartPointer<vtkIdList> InputToOutputPointIdRedirectionMap = nullptr;
399  vtkSmartPointer<vtkIdList> OutputToInputPointIdRedirectionMap = nullptr;
401 
408 
415 
420 
425 
427  /*
428  * This is a cursor telling the amount of points / cells information,
429  * that has
430  * already been added to the output. This variable is used at the very end of the pipeline.
431  */
435 
437 
443  };
444 
446  {
452 
458 
464 
468  vtkSmartPointer<vtkIdTypeArray> InterfacingGlobalPointIds = nullptr;
469 
474  vtkSmartPointer<vtkIdTypeArray> GhostGlobalPointIds = nullptr;
475 
480 
486 
488 
497 
502  std::map<vtkIdType, vtkIdType> RedirectionMapForDuplicatePointIds;
503 
509  };
510 
512  {
517  vtkIdType CurrentFacesSize = 0;
518 
523  vtkIdType CurrentConnectivitySize = 0;
524 
525  vtkIdTypeArray* Faces = nullptr;
526  vtkIdTypeArray* FaceLocations = nullptr;
527 
529 
533  vtkIdType InputConnectivitySize = 0;
534 
538  vtkIdType InputFacesSize = 0;
539  };
540 
542  {
547  {
550  vtkSmartPointer<vtkIdTypeArray> FaceLocations = nullptr;
552  };
553 
556 
558 
561  vtkIdType FacesSize = 0;
562  vtkIdType ConnectivitySize = 0;
564  };
565 
567  {
569 
571 
579 
581 
585  vtkIdType CurrentMaxPolyId = 0;
586  vtkIdType CurrentMaxStripId = 0;
587  vtkIdType CurrentMaxLineId = 0;
589 
591 
599 
601 
609 
611 
620  };
621 
623  {
625 
633 
635  {
639  };
640 
643 
645 
648  vtkIdType NumberOfPolysToSend = 0;
649  vtkIdType NumberOfStripsToSend = 0;
650  vtkIdType NumberOfLinesToSend = 0;
652 
654 
657  vtkIdType PolyConnectivitySize = 0;
658  vtkIdType StripConnectivitySize = 0;
659  vtkIdType LineConnectivitySize = 0;
661  };
662 
663 public:
672  template <class BlockStructureT, class InformationT>
673  struct Block
674  {
676 
679  typedef BlockStructureT BlockStructureType;
680  typedef InformationT InformationType;
682 
687 
693 
695 
697 
700  };
701 
703 
713 
722  template <class DataSetT>
723  static int GenerateGhostCells(std::vector<DataSetT*>& inputsDS, std::vector<DataSetT*>& outputsDS,
724  int outputGhostLevels, vtkMultiProcessController* controller);
725 
726 protected:
729 
734  template <class DataSetT>
736  typename DataSetTypeToBlockTypeConverter<DataSetT>::BlockType* block, DataSetT* output);
737 
742  template <class DataSetT>
744  typename DataSetTypeToBlockTypeConverter<DataSetT>::BlockType* block, DataSetT* output);
745 
747 
751  std::vector<vtkImageData*>& inputs, std::vector<vtkImageData*>& outputs);
753  std::vector<vtkRectilinearGrid*>& inputs, std::vector<vtkRectilinearGrid*>& outputs);
755  std::vector<vtkStructuredGrid*>& inputs, std::vector<vtkStructuredGrid*>& outputs);
757  std::vector<vtkUnstructuredGrid*>& inputs, std::vector<vtkUnstructuredGrid*>& outputs);
759  std::vector<vtkPolyData*>& inputs, std::vector<vtkPolyData*>& outputs);
761 
763 
769  static void InitializeBlocks(diy::Master& master, std::vector<vtkImageData*>& inputs);
770  static void InitializeBlocks(diy::Master& master, std::vector<vtkRectilinearGrid*>& inputs);
771  static void InitializeBlocks(diy::Master& master, std::vector<vtkStructuredGrid*>& inputs);
772  static void InitializeBlocks(diy::Master& master, std::vector<vtkUnstructuredGrid*>& inputs);
773  static void InitializeBlocks(diy::Master& master, std::vector<vtkPolyData*>& inputs);
775 
779  template <class DataSetT>
781  diy::Master& master, const vtkDIYExplicitAssigner& assigner, std::vector<DataSetT*>& inputs);
782 
783  template <class BlockT>
784  static LinkMap ComputeLinkMapUsingBoundingBoxes(const diy::Master& master);
785 
787 
793  static void ExchangeBlockStructures(diy::Master& master, std::vector<vtkImageData*>& inputs);
795  diy::Master& master, std::vector<vtkRectilinearGrid*>& inputs);
796  static void ExchangeBlockStructures(diy::Master& master, std::vector<vtkStructuredGrid*>& inputs);
798  diy::Master& master, std::vector<vtkUnstructuredGrid*>& inputs);
799  static void ExchangeBlockStructures(diy::Master& master, std::vector<vtkPolyData*>& inputs);
801 
803 
809  const diy::Master& master, std::vector<vtkImageData*>& inputs, int outputGhostLevels);
811  const diy::Master& master, std::vector<vtkRectilinearGrid*>& inputs, int outputGhostLevels);
813  const diy::Master& master, std::vector<vtkStructuredGrid*>& inputs, int outputGhostLevels);
815  const diy::Master& master, std::vector<vtkUnstructuredGrid*>& inputs, int outputGhostLevels);
817  const diy::Master& master, std::vector<vtkPolyData*>& inputs, int outputGhostLevels);
819 
821 
825  static void EnqueueGhosts(const diy::Master::ProxyWithLink& cp, const diy::BlockID& blockId,
826  vtkImageData* input, ImageDataBlock* block);
827  static void EnqueueGhosts(const diy::Master::ProxyWithLink& cp, const diy::BlockID& blockId,
829  static void EnqueueGhosts(const diy::Master::ProxyWithLink& cp, const diy::BlockID& blockId,
830  vtkStructuredGrid* input, StructuredGridBlock* block);
831  static void EnqueueGhosts(const diy::Master::ProxyWithLink& cp, const diy::BlockID& blockId,
833  static void EnqueueGhosts(const diy::Master::ProxyWithLink& cp, const diy::BlockID& blockId,
834  vtkPolyData* input, PolyDataBlock* block);
836 
838 
843  static void DequeueGhosts(
844  const diy::Master::ProxyWithLink& cp, int gid, ImageDataBlockStructure& blockStructure);
845  static void DequeueGhosts(
846  const diy::Master::ProxyWithLink& cp, int gid, RectilinearGridBlockStructure& blockStructure);
847  static void DequeueGhosts(
848  const diy::Master::ProxyWithLink& cp, int gid, StructuredGridBlockStructure& blockStructure);
849  static void DequeueGhosts(
850  const diy::Master::ProxyWithLink& cp, int gid, UnstructuredGridBlockStructure& blockStructure);
851  static void DequeueGhosts(
852  const diy::Master::ProxyWithLink& cp, int gid, PolyDataBlockStructure& blockStructure);
854 
856 
861  static void DeepCopyInputsAndAllocateGhosts(const diy::Master& master,
862  std::vector<vtkImageData*>& inputs, std::vector<vtkImageData*>& outputs);
863  static void DeepCopyInputsAndAllocateGhosts(const diy::Master& master,
864  std::vector<vtkRectilinearGrid*>& inputs, std::vector<vtkRectilinearGrid*>& outputs);
865  static void DeepCopyInputsAndAllocateGhosts(const diy::Master& master,
866  std::vector<vtkStructuredGrid*>& inputs, std::vector<vtkStructuredGrid*>& outputs);
867  static void DeepCopyInputsAndAllocateGhosts(const diy::Master& master,
868  std::vector<vtkUnstructuredGrid*>& inputs, std::vector<vtkUnstructuredGrid*>& outputs);
869  static void DeepCopyInputsAndAllocateGhosts(const diy::Master& master,
870  std::vector<vtkPolyData*>& inputs, std::vector<vtkPolyData*>& outputs);
872 
876  template <class DataSetT>
877  static void ExchangeGhosts(diy::Master& master, std::vector<DataSetT*>& inputs);
878 
882  template <class DataSetT>
883  static void InitializeGhostArrays(diy::Master& master, std::vector<DataSetT*>& outputs);
884 
889  template <class DataSetT>
890  static void AddGhostArrays(diy::Master& master, std::vector<DataSetT*>& outputs);
891 
893 
896  static void FillGhostArrays(const diy::Master& master, std::vector<vtkImageData*>& outputs);
897  static void FillGhostArrays(const diy::Master& master, std::vector<vtkRectilinearGrid*>& outputs);
898  static void FillGhostArrays(const diy::Master& master, std::vector<vtkStructuredGrid*>& outputs);
899  static void FillGhostArrays(
900  const diy::Master& master, std::vector<vtkUnstructuredGrid*>& outputs);
901  static void FillGhostArrays(const diy::Master& master, std::vector<vtkPolyData*>& outputs);
903 
904 private:
906  void operator=(const vtkDIYGhostUtilities&) = delete;
907 };
908 
909 #include "vtkDIYGhostUtilities.txx" // for template implementations
910 
911 #endif
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:143
vtkDIYGhostUtilities::UnstructuredGridBlockStructure::TopologyBufferType
Topology information for cells to be exchanged.
Definition: vtkDIYGhostUtilities.h:547
vtkDIYGhostUtilities::UnstructuredDataInformation::InterfacePointIds
vtkIdTypeArray * InterfacePointIds
Handle to the local point ids of the surface of the input.
Definition: vtkDIYGhostUtilities.h:414
vtkDIYGhostUtilities
Utilities to produce ghost cells between a collection of data sets of same type.
Definition: vtkDIYGhostUtilities.h:100
vtkDIYGhostUtilities::~vtkDIYGhostUtilities
~vtkDIYGhostUtilities() override
Block typedefs.
vtkDIYGhostUtilities::UnstructuredGridBlockStructure
Definition: vtkDIYGhostUtilities.h:542
vtkDIYGhostUtilities::StructuredGridBlockStructure::StructuredGridBlockStructure
StructuredGridBlockStructure(vtkStructuredGrid *grid, const StructuredGridInformation &info)
Copy constructor.
vtkDIYGhostUtilities::DataSetTypeToBlockTypeConverter
This helper structure owns a typedef to the block type of DataSetT used with diy to generate ghosts.
Definition: vtkDIYGhostUtilities.h:123
vtkDIYGhostUtilities::PolyDataInformation::OutputToInputLineCellIdRedirectionMap
vtkNew< vtkIdList > OutputToInputLineCellIdRedirectionMap
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:616
vtkDIYGhostUtilities::ImageDataBlockStructure::Origin
VectorType Origin
Origin of the neighboring vtkImageData.
Definition: vtkDIYGhostUtilities.h:211
vtkDIYGhostUtilities::StructuredGridBlockStructure::GhostPoints
vtkNew< vtkPoints > GhostPoints
Buffer to store received ghost points from neighboring blocks.
Definition: vtkDIYGhostUtilities.h:377
vtkDIYGhostUtilities::ComputeLinkMap
static LinkMap ComputeLinkMap(const diy::Master &master, std::vector< vtkUnstructuredGrid * > &inputs, int outputGhostLevels)
Method to be overloaded for each supported input data set type, that computes the minimal link map be...
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::RedirectionMapForDuplicatePointIds
std::map< vtkIdType, vtkIdType > RedirectionMapForDuplicatePointIds
This is a mapping from points that have been sent by the current neighboring block and have already b...
Definition: vtkDIYGhostUtilities.h:502
vtkDIYGhostUtilities::PolyDataInformation::NumberOfInputStrips
vtkIdType NumberOfInputStrips
Number of cells of respective type when the input has its ghost cells removed.
Definition: vtkDIYGhostUtilities.h:596
vtkDIYGhostUtilities::UnstructuredDataInformation::CurrentMaxPointId
vtkIdType CurrentMaxPointId
Definition: vtkDIYGhostUtilities.h:432
vtkDIYGhostUtilities::DequeueGhosts
static void DequeueGhosts(const diy::Master::ProxyWithLink &cp, int gid, ImageDataBlockStructure &blockStructure)
This method dequeues ghosts sent between communicating blocks.
vtkDIYGhostUtilities::Block::BlockStructureType
BlockStructureT BlockStructureType
Typedef handle on block structure and block information.
Definition: vtkDIYGhostUtilities.h:679
vtkDIYGhostUtilities::ImageDataBlockStructure::ImageDataBlockStructure
ImageDataBlockStructure(const int extent[6], int dim, const double origin[3], const double spacing[3], vtkMatrix3x3 *directionMatrix)
Constructor taking the extent (without ghosts) of the neighboring vtkImageData, as well as well as th...
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkDIYGhostUtilities::StructuredGridBlockStructure::GridInterface
Grid2D GridInterface
2D grid interfacing 2 blocks.
Definition: vtkDIYGhostUtilities.h:372
vtkDIYGhostUtilities::UnstructuredGridInformation
Definition: vtkDIYGhostUtilities.h:512
vtkDIYGhostUtilities::RectilinearGridInformation::ZCoordinates
vtkSmartPointer< vtkDataArray > ZCoordinates
Point coordinates without ghosts.
Definition: vtkDIYGhostUtilities.h:232
vtkAlgorithm
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:123
vtkDIYGhostUtilities::RectilinearGridInformation::YCoordinates
vtkSmartPointer< vtkDataArray > YCoordinates
Point coordinates without ghosts.
Definition: vtkDIYGhostUtilities.h:231
vtkDIYGhostUtilities::DequeueGhosts
static void DequeueGhosts(const diy::Master::ProxyWithLink &cp, int gid, UnstructuredGridBlockStructure &blockStructure)
This method dequeues ghosts sent between communicating blocks.
vtkDIYUtilities.h
vtkDIYGhostUtilities::PolyDataInformation::NumberOfInputPolys
vtkIdType NumberOfInputPolys
Number of cells of respective type when the input has its ghost cells removed.
Definition: vtkDIYGhostUtilities.h:595
vtkRectilinearGrid
a dataset that is topologically regular with variable spacing in the three coordinate directions
Definition: vtkRectilinearGrid.h:151
vtkDIYGhostUtilities::Links
std::set< int > Links
Convenient typedefs.
Definition: vtkDIYGhostUtilities.h:114
vtkDIYGhostUtilities::FillGhostArrays
static void FillGhostArrays(const diy::Master &master, std::vector< vtkImageData * > &outputs)
This method sets the ghost arrays in the output.
vtkX3D::image
@ image
Definition: vtkX3D.h:380
vtkDIYGhostUtilities::ComputeLinkMap
static LinkMap ComputeLinkMap(const diy::Master &master, std::vector< vtkImageData * > &inputs, int outputGhostLevels)
Method to be overloaded for each supported input data set type, that computes the minimal link map be...
vtkDIYGhostUtilities::PolyDataBlockStructure::StripIdsToSend
vtkNew< vtkIdList > StripIdsToSend
This lists the ids of the cells that we own and need to send to the current neighboring block.
Definition: vtkDIYGhostUtilities.h:630
vtkDIYGhostUtilities::CloneGeometricStructures
static void CloneGeometricStructures(std::vector< vtkStructuredGrid * > &inputs, std::vector< vtkStructuredGrid * > &outputs)
Block typedefs.
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:145
vtkDIYGhostUtilities::Block
Block structure to be used for diy communication.
Definition: vtkDIYGhostUtilities.h:674
vtkDIYGhostUtilities::GridBlockStructure::AdjacencyMask
unsigned char AdjacencyMask
Binary mask encoding the adjacency of the neighboring block w.r.t.
Definition: vtkDIYGhostUtilities.h:165
vtkDIYGhostUtilities::GridBlockStructure::GridBlockStructure
GridBlockStructure(const int *extent, int dim)
GridBlockStructure constructor.
vtkDIYGhostUtilities::DequeueGhosts
static void DequeueGhosts(const diy::Master::ProxyWithLink &cp, int gid, RectilinearGridBlockStructure &blockStructure)
This method dequeues ghosts sent between communicating blocks.
vtkDIYGhostUtilities::PolyDataBlockStructure::LineIdsToSend
vtkNew< vtkIdList > LineIdsToSend
This lists the ids of the cells that we own and need to send to the current neighboring block.
Definition: vtkDIYGhostUtilities.h:631
vtkDIYGhostUtilities::InitializeBlocks
static void InitializeBlocks(diy::Master &master, std::vector< vtkStructuredGrid * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::PolyDataInformation::OutputToInputStripCellIdRedirectionMap
vtkNew< vtkIdList > OutputToInputStripCellIdRedirectionMap
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:618
vtkStructuredGrid
topologically regular array of data
Definition: vtkStructuredGrid.h:167
vtkSmartPointer< vtkFieldData >
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:82
vtkDIYGhostUtilities::ExtentType
std::array< int, 6 > ExtentType
Convenient typedefs.
Definition: vtkDIYGhostUtilities.h:111
vtkDIYGhostUtilities::PolyDataBlockStructure::TopologyBufferType::Polys
vtkNew< vtkCellArray > Polys
Definition: vtkDIYGhostUtilities.h:636
vtkDIYGhostUtilities::RectilinearGridInformation::XCoordinates
vtkSmartPointer< vtkDataArray > XCoordinates
Point coordinates without ghosts.
Definition: vtkDIYGhostUtilities.h:230
vtkDIYGhostUtilities::GridBlockStructure::ShiftedExtentWithNewGhosts
ExtentType ShiftedExtentWithNewGhosts
Extent of neighboring block that include ghost layers, shifted to match our mapping of the extent in ...
Definition: vtkDIYGhostUtilities.h:154
vtkDIYGhostUtilities::EnqueueGhosts
static void EnqueueGhosts(const diy::Master::ProxyWithLink &cp, const diy::BlockID &blockId, vtkRectilinearGrid *input, RectilinearGridBlock *block)
This method enqueues ghosts between communicating blocks.
vtkDIYGhostUtilities::ImageDataBlockStructure::ImageDataBlockStructure
ImageDataBlockStructure(vtkImageData *image, const GridInformation &info)
Copy constructor.
vtkDIYGhostUtilities::UnstructuredGridInformation::Input
vtkUnstructuredGrid * Input
Definition: vtkDIYGhostUtilities.h:528
vtkDIYGhostUtilities::RectilinearGridBlockStructure::XCoordinates
vtkSmartPointer< vtkDataArray > XCoordinates
Point coordinate arrays of the rectilinear grid.
Definition: vtkDIYGhostUtilities.h:265
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:159
vtkDIYGhostUtilities::ExchangeBlockStructures
static void ExchangeBlockStructures(diy::Master &master, std::vector< vtkImageData * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::CloneGeometricStructures
static void CloneGeometricStructures(std::vector< vtkUnstructuredGrid * > &inputs, std::vector< vtkUnstructuredGrid * > &outputs)
Block typedefs.
vtkDIYGhostUtilities::UnstructuredGridBlockStructure::ReceiveBuffer
TopologyBufferType ReceiveBuffer
Definition: vtkDIYGhostUtilities.h:555
vtkDIYGhostUtilities::PolyDataBlockStructure::PolyIdsToSend
vtkNew< vtkIdList > PolyIdsToSend
This lists the ids of the cells that we own and need to send to the current neighboring block.
Definition: vtkDIYGhostUtilities.h:629
vtkDIYGhostUtilities::FillGhostArrays
static void FillGhostArrays(const diy::Master &master, std::vector< vtkStructuredGrid * > &outputs)
This method sets the ghost arrays in the output.
vtkDIYGhostUtilities::ComputeLinkMap
static LinkMap ComputeLinkMap(const diy::Master &master, std::vector< vtkRectilinearGrid * > &inputs, int outputGhostLevels)
Method to be overloaded for each supported input data set type, that computes the minimal link map be...
vtkDIYGhostUtilities::PolyDataInformation::Input
vtkPolyData * Input
Definition: vtkDIYGhostUtilities.h:568
vtkDIYGhostUtilities::ImageDataBlockStructure::Spacing
VectorType Spacing
Spacing of the neighboring vtkImageData.
Definition: vtkDIYGhostUtilities.h:216
vtkDIYGhostUtilities::EnqueueGhosts
static void EnqueueGhosts(const diy::Master::ProxyWithLink &cp, const diy::BlockID &blockId, vtkStructuredGrid *input, StructuredGridBlock *block)
This method enqueues ghosts between communicating blocks.
vtkDIYGhostUtilities::LinkMap
std::vector< Links > LinkMap
Convenient typedefs.
Definition: vtkDIYGhostUtilities.h:115
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::SharedPointIds
vtkNew< vtkIdTypeArray > SharedPointIds
It can happen that a point can be sent by multiple blocks.
Definition: vtkDIYGhostUtilities.h:494
vtkDIYGhostUtilities::PolyDataInformation::NumberOfInputVerts
vtkIdType NumberOfInputVerts
Number of cells of respective type when the input has its ghost cells removed.
Definition: vtkDIYGhostUtilities.h:594
vtkMatrix3x3
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:63
vtkDIYGhostUtilities::PolyDataInformation
Definition: vtkDIYGhostUtilities.h:567
vtkDIYGhostUtilities::Block::InformationType
InformationT InformationType
Typedef handle on block structure and block information.
Definition: vtkDIYGhostUtilities.h:680
vtkDIYGhostUtilities::ComputeLinkMap
static LinkMap ComputeLinkMap(const diy::Master &master, std::vector< vtkPolyData * > &inputs, int outputGhostLevels)
Method to be overloaded for each supported input data set type, that computes the minimal link map be...
vtkDIYGhostUtilities::UnstructuredDataBlockStructure
Definition: vtkDIYGhostUtilities.h:446
vtkDIYGhostUtilities::RectilinearGridBlockStructure::ZCoordinates
vtkSmartPointer< vtkDataArray > ZCoordinates
Point coordinate arrays of the rectilinear grid.
Definition: vtkDIYGhostUtilities.h:267
vtkDIYGhostUtilities::ExchangeGhosts
static void ExchangeGhosts(diy::Master &master, std::vector< DataSetT * > &inputs)
This method exchanges ghosts between connected blocks.
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:164
vtkDIYGhostUtilities::vtkDIYGhostUtilities
vtkDIYGhostUtilities()
Block typedefs.
vtkDIYGhostUtilities::CloneGeometricStructures
static void CloneGeometricStructures(std::vector< vtkImageData * > &inputs, std::vector< vtkImageData * > &outputs)
Block typedefs.
vtkBoundingBox
Fast, simple class for representing and operating on 3D bounds.
Definition: vtkBoundingBox.h:66
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::MatchingReceivedPointIds
vtkNew< vtkIdTypeArray > MatchingReceivedPointIds
This lists the matching point ids to the interfacing points that are exchanged with current neighbori...
Definition: vtkDIYGhostUtilities.h:451
vtkX3D::points
@ points
Definition: vtkX3D.h:452
vtkDIYGhostUtilities::GridBlockStructure::Extent
ExtentType Extent
Extent of neighboring block with no ghosts.
Definition: vtkDIYGhostUtilities.h:148
vtkDIYGhostUtilities::InitializeGhostPointArray
static void InitializeGhostPointArray(typename DataSetTypeToBlockTypeConverter< DataSetT >::BlockType *block, DataSetT *output)
This method will set all ghosts points in output to zero.
vtkDIYGhostUtilities::StructuredGridBlockStructure::Grid2D
Grid interfacing with block's grid.
Definition: vtkDIYGhostUtilities.h:329
vtkDIYGhostUtilities::PolyDataBlockStructure
Definition: vtkDIYGhostUtilities.h:623
vtkDIYGhostUtilities::ComputeLinkMap
static LinkMap ComputeLinkMap(const diy::Master &master, std::vector< vtkStructuredGrid * > &inputs, int outputGhostLevels)
Method to be overloaded for each supported input data set type, that computes the minimal link map be...
vtkDIYExplicitAssigner.h
vtkDIYGhostUtilities::GridInformation
Structure storing information needed by a block on it's own grid structure.
Definition: vtkDIYGhostUtilities.h:177
vtkDIYGhostUtilities::DequeueGhosts
static void DequeueGhosts(const diy::Master::ProxyWithLink &cp, int gid, PolyDataBlockStructure &blockStructure)
This method dequeues ghosts sent between communicating blocks.
vtkDIYGhostUtilities::UnstructuredDataInformation::NumberOfInputPoints
vtkIdType NumberOfInputPoints
Number of input points / cell in the input when ghosts are removed.
Definition: vtkDIYGhostUtilities.h:440
vtkDIYGhostUtilities::InitializeBlocks
static void InitializeBlocks(diy::Master &master, std::vector< vtkPolyData * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::Block::GhostPointArray
vtkSmartPointer< vtkUnsignedCharArray > GhostPointArray
Definition: vtkDIYGhostUtilities.h:699
vtkDIYGhostUtilities::InitializeBlocks
static void InitializeBlocks(diy::Master &master, std::vector< vtkImageData * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::PolyDataBlockStructure::TopologyBufferType
Definition: vtkDIYGhostUtilities.h:635
vtkDIYGhostUtilities::PolyDataBlockStructure::TopologyBufferType::Lines
vtkNew< vtkCellArray > Lines
Definition: vtkDIYGhostUtilities.h:638
vtkDIYGhostUtilities::PolyDataInformation::NumberOfInputLines
vtkIdType NumberOfInputLines
Number of cells of respective type when the input has its ghost cells removed.
Definition: vtkDIYGhostUtilities.h:597
vtkDIYGhostUtilities::EnqueueGhosts
static void EnqueueGhosts(const diy::Master::ProxyWithLink &cp, const diy::BlockID &blockId, vtkUnstructuredGrid *input, UnstructuredGridBlock *block)
This method enqueues ghosts between communicating blocks.
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:77
vtkDIYGhostUtilities::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkDIYGhostUtilities::Block::NeighborBoundingBoxes
BlockMapType< vtkBoundingBox > NeighborBoundingBoxes
Definition: vtkDIYGhostUtilities.h:694
vtkDIYGhostUtilities::FillGhostArrays
static void FillGhostArrays(const diy::Master &master, std::vector< vtkUnstructuredGrid * > &outputs)
This method sets the ghost arrays in the output.
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::InterfacingPoints
vtkNew< vtkPoints > InterfacingPoints
These are the interfacing points sent by the current neighboring block.
Definition: vtkDIYGhostUtilities.h:463
vtkDIYGhostUtilities::FillGhostArrays
static void FillGhostArrays(const diy::Master &master, std::vector< vtkPolyData * > &outputs)
This method sets the ghost arrays in the output.
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:290
vtkDIYGhostUtilities::ExchangeBlockStructures
static void ExchangeBlockStructures(diy::Master &master, std::vector< vtkPolyData * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::GridInformation::Extent
ExtentType Extent
Extent without ghost layers.
Definition: vtkDIYGhostUtilities.h:181
vtkDIYGhostUtilities::DequeueGhosts
static void DequeueGhosts(const diy::Master::ProxyWithLink &cp, int gid, StructuredGridBlockStructure &blockStructure)
This method dequeues ghosts sent between communicating blocks.
vtkDIYGhostUtilities::PolyDataBlockStructure::TopologyBufferType::Strips
vtkNew< vtkCellArray > Strips
Definition: vtkDIYGhostUtilities.h:637
vtkSmartPointer.h
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:140
vtkDIYGhostUtilities::GridBlockStructure
Structure to inherit from for data sets having a structured grid topology.
Definition: vtkDIYGhostUtilities.h:139
vtkDIYGhostUtilities::FillGhostArrays
static void FillGhostArrays(const diy::Master &master, std::vector< vtkRectilinearGrid * > &outputs)
This method sets the ghost arrays in the output.
vtkDIYGhostUtilities::EnqueueGhosts
static void EnqueueGhosts(const diy::Master::ProxyWithLink &cp, const diy::BlockID &blockId, vtkPolyData *input, PolyDataBlock *block)
This method enqueues ghosts between communicating blocks.
vtkDIYGhostUtilities::ComputeLinkMapUsingBoundingBoxes
static LinkMap ComputeLinkMapUsingBoundingBoxes(const diy::Master &master)
vtkDIYGhostUtilities::StructuredGridInformation::OuterPointLayersType::Extent
ExtentType Extent
Extent (which represents a 2D, 1D, or 0D grid), of an external face.
Definition: vtkDIYGhostUtilities.h:287
vtkDIYGhostUtilities::PolyDataInformation::OutputToInputVertCellIdRedirectionMap
vtkNew< vtkIdList > OutputToInputVertCellIdRedirectionMap
In the event that the input has ghost cells, this maps the output cells (with input ghosts removed) t...
Definition: vtkDIYGhostUtilities.h:615
vtkNew< vtkPoints >
vtkDIYGhostUtilities::UnstructuredDataInformation::InterfaceGlobalPointIds
vtkIdTypeArray * InterfaceGlobalPointIds
Handle to the point ids of the input surface, if present.
Definition: vtkDIYGhostUtilities.h:424
vtkDIYGhostUtilities::StructuredGridInformation::OuterPointLayersType
This structure represents the set of points and their corresponding extent of an external face of the...
Definition: vtkDIYGhostUtilities.h:278
vtkDIYGhostUtilities::InitializeBlocks
static void InitializeBlocks(diy::Master &master, std::vector< vtkRectilinearGrid * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::DeepCopyInputsAndAllocateGhosts
static void DeepCopyInputsAndAllocateGhosts(const diy::Master &master, std::vector< vtkRectilinearGrid * > &inputs, std::vector< vtkRectilinearGrid * > &outputs)
Method to be overloaded for each supported input data set type, This method allocates ghosts in the o...
vtkDIYGhostUtilities::PolyDataInformation::CurrentPolyConnectivitySize
vtkIdType CurrentPolyConnectivitySize
This is a cursor telling how much the corresponding output connectivity array is filled.
Definition: vtkDIYGhostUtilities.h:575
vtkDIYExplicitAssigner
assigner for use with DIY
Definition: vtkDIYExplicitAssigner.h:48
vtkDIYGhostUtilities::AddGhostArrays
static void AddGhostArrays(diy::Master &master, std::vector< DataSetT * > &outputs)
Adds ghost arrays, which are present in blocks of master, to outputs point and / or cell data.
vtkDIYGhostUtilities::RectilinearGridBlockStructure::YCoordinates
vtkSmartPointer< vtkDataArray > YCoordinates
Point coordinate arrays of the rectilinear grid.
Definition: vtkDIYGhostUtilities.h:266
vtkDIYGhostUtilities::InitializeGhostCellArray
static void InitializeGhostCellArray(typename DataSetTypeToBlockTypeConverter< DataSetT >::BlockType *block, DataSetT *output)
This method will set all ghosts cells in output to zero.
vtkDIYGhostUtilities::VectorType
std::array< double, 3 > VectorType
Convenient typedefs.
Definition: vtkDIYGhostUtilities.h:109
vtkBoundingBox.h
vtkDIYGhostUtilities::UnstructuredDataInformation
Definition: vtkDIYGhostUtilities.h:381
vtkObject.h
vtkDIYGhostUtilities::ExchangeBlockStructures
static void ExchangeBlockStructures(diy::Master &master, std::vector< vtkStructuredGrid * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkQuaternion< double >
vtkDIYGhostUtilities::UnstructuredGridBlockStructure::TopologyBufferType::CellArray
vtkNew< vtkCellArray > CellArray
Definition: vtkDIYGhostUtilities.h:551
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::ReceivedSharedPointIds
vtkSmartPointer< vtkIdTypeArray > ReceivedSharedPointIds
It can happen that a point can be sent by multiple blocks.
Definition: vtkDIYGhostUtilities.h:495
vtkDIYGhostUtilities::UnstructuredGridBlockStructure::SendBuffer
TopologyBufferType SendBuffer
Definition: vtkDIYGhostUtilities.h:554
vtkDIYGhostUtilities::PolyDataInformation::CurrentLineConnectivitySize
vtkIdType CurrentLineConnectivitySize
This is a cursor telling how much the corresponding output connectivity array is filled.
Definition: vtkDIYGhostUtilities.h:577
vtkDIYGhostUtilities::GridInformation::ExtentGhostThickness
ExtentType ExtentGhostThickness
Definition: vtkDIYGhostUtilities.h:183
vtkDIYGhostUtilities::InitializeBlocks
static void InitializeBlocks(diy::Master &master, std::vector< vtkUnstructuredGrid * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkX3D::spacing
@ spacing
Definition: vtkX3D.h:487
vtkDIYGhostUtilities::PolyDataInformation::InputLineConnectivitySize
vtkIdType InputLineConnectivitySize
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:607
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
vtkDIYGhostUtilities::RectilinearGridBlockStructure::RectilinearGridBlockStructure
RectilinearGridBlockStructure(const int extent[6], int dim, vtkDataArray *xCoordinates, vtkDataArray *yCoordinates, vtkDataArray *zCoordinates)
Constructor taking the extent (without ghosts) of the neighboring vtkRectilinearGrid,...
vtkDIYGhostUtilities::StructuredGridBlockStructure
Block structure storing information being communicated by neighboring blocks for vtkStructuredGrid.
Definition: vtkDIYGhostUtilities.h:307
vtkDIYGhostUtilities::EnqueueGhosts
static void EnqueueGhosts(const diy::Master::ProxyWithLink &cp, const diy::BlockID &blockId, vtkImageData *input, ImageDataBlock *block)
This method enqueues ghosts between communicating blocks.
vtkDIYGhostUtilities::StructuredGridInformation::InputPoints
vtkPoints * InputPoints
Handle on input points for current block.
Definition: vtkDIYGhostUtilities.h:299
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkDIYGhostUtilities::GridBlockStructure::DataDimension
int DataDimension
This stores the dimension of the grid (1D, 2D, or 3D).
Definition: vtkDIYGhostUtilities.h:170
vtkDIYGhostUtilities::DataSetBlockStructure
Base block structure for data sets.
Definition: vtkDIYGhostUtilities.h:130
vtkDIYGhostUtilities::PolyDataBlockStructure::ReceiveBuffer
TopologyBufferType ReceiveBuffer
Definition: vtkDIYGhostUtilities.h:642
vtkDIYGhostUtilities::StructuredGridInformation::OuterPointLayersType::Points
vtkSmartPointer< vtkPoints > Points
Points of an external face.
Definition: vtkDIYGhostUtilities.h:282
vtkDIYGhostUtilities::UnstructuredDataInformation::InterfaceExtractor
vtkSmartPointer< vtkAlgorithm > InterfaceExtractor
Filter that is being used to extract the surface of the input.
Definition: vtkDIYGhostUtilities.h:407
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:145
vtkDIYGhostUtilities::UnstructuredDataInformation::NumberOfInputCells
vtkIdType NumberOfInputCells
Number of input points / cell in the input when ghosts are removed.
Definition: vtkDIYGhostUtilities.h:441
vtkDIYGhostUtilities::RectilinearGridBlockStructure
Block structure storing information being communicated by neighboring blocks for vtkRectilinearGrid.
Definition: vtkDIYGhostUtilities.h:248
vtkDIYGhostUtilities::GridBlockStructure::ShiftedExtent
ExtentType ShiftedExtent
Extent of the neighboring block, shifted to match our mapping of the extent in the 3D world.
Definition: vtkDIYGhostUtilities.h:159
vtkDIYGhostUtilities::ImageDataBlockStructure
Block structure storing information being communicated by neighboring blocks for vtkImageData.
Definition: vtkDIYGhostUtilities.h:191
vtkDIYGhostUtilities::UnstructuredDataInformation::CurrentMaxCellId
vtkIdType CurrentMaxCellId
Definition: vtkDIYGhostUtilities.h:433
vtkDIYGhostUtilities::CloneGeometricStructures
static void CloneGeometricStructures(std::vector< vtkPolyData * > &inputs, std::vector< vtkPolyData * > &outputs)
Block typedefs.
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
vtkQuaternion.h
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::GhostPoints
vtkNew< vtkPoints > GhostPoints
Ghost points sent by the current neighboring block.
Definition: vtkDIYGhostUtilities.h:479
vtkAbstractPointLocator
abstract class to quickly locate points in 3-space
Definition: vtkAbstractPointLocator.h:39
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::PointIdsToSend
vtkNew< vtkIdList > PointIdsToSend
This lists the ids of the points that we own and need to send to the current neighboring block.
Definition: vtkDIYGhostUtilities.h:485
vtkDIYGhostUtilities::DeepCopyInputsAndAllocateGhosts
static void DeepCopyInputsAndAllocateGhosts(const diy::Master &master, std::vector< vtkStructuredGrid * > &inputs, std::vector< vtkStructuredGrid * > &outputs)
Method to be overloaded for each supported input data set type, This method allocates ghosts in the o...
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::RemappedMatchingReceivedPointIdsSortedLikeTarget
vtkNew< vtkIdTypeArray > RemappedMatchingReceivedPointIdsSortedLikeTarget
This array describes the same points as MatchingReceivedPointIds, but points are ordered like in the ...
Definition: vtkDIYGhostUtilities.h:457
vtkDIYGhostUtilities::StructuredGridBlockStructure::StructuredGridBlockStructure
StructuredGridBlockStructure(const int extent[6], int dim, vtkDataArray *points[6])
Constructor taking the extent (without ghosts) of the neighboring vtkStructuredGrid,...
vtkDIYGhostUtilities::Block::BlockStructures
BlockMapType< BlockStructureType > BlockStructures
BlockStructures maps a neighboring block globald id to its block structure.
Definition: vtkDIYGhostUtilities.h:686
vtkDIYGhostUtilities::ImageDataBlockStructure::OrientationQuaternion
QuaternionType OrientationQuaternion
Orientation of the neighboring vtkImageData.
Definition: vtkDIYGhostUtilities.h:221
vtkDIYGhostUtilities::Block::BoundingBox
vtkBoundingBox BoundingBox
Definition: vtkDIYGhostUtilities.h:696
vtkDIYGhostUtilities::ExchangeBlockStructures
static void ExchangeBlockStructures(diy::Master &master, std::vector< vtkUnstructuredGrid * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::DeepCopyInputsAndAllocateGhosts
static void DeepCopyInputsAndAllocateGhosts(const diy::Master &master, std::vector< vtkUnstructuredGrid * > &inputs, std::vector< vtkUnstructuredGrid * > &outputs)
Method to be overloaded for each supported input data set type, This method allocates ghosts in the o...
vtkX3D::extent
@ extent
Definition: vtkX3D.h:351
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:204
vtkDIYGhostUtilities::ImageDataBlockStructure::ImageDataBlockStructure
ImageDataBlockStructure(const int extent[6], int dim, const double origin[3], const double spacing[3], const double orientationQuaternion[4])
Constructor taking the extent (without ghosts) of the neighboring vtkImageData, as well as well as th...
vtkDIYGhostUtilities::PolyDataInformation::CurrentStripConnectivitySize
vtkIdType CurrentStripConnectivitySize
This is a cursor telling how much the corresponding output connectivity array is filled.
Definition: vtkDIYGhostUtilities.h:576
vtkDIYGhostUtilities::CloneGeometricStructures
static void CloneGeometricStructures(std::vector< vtkRectilinearGrid * > &inputs, std::vector< vtkRectilinearGrid * > &outputs)
Block typedefs.
vtkDIYGhostUtilities::RectilinearGridBlockStructure::RectilinearGridBlockStructure
RectilinearGridBlockStructure(vtkRectilinearGrid *grid, const RectilinearGridInformation &info)
Copy constructor.
vtkDIYGhostUtilities::PolyDataInformation::InputStripConnectivitySize
vtkIdType InputStripConnectivitySize
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:606
vtkDIYGhostUtilities::BlockMapType
std::map< int, T > BlockMapType
Convenient typedefs.
Definition: vtkDIYGhostUtilities.h:113
vtkDIYGhostUtilities::ExchangeBoundingBoxes
static void ExchangeBoundingBoxes(diy::Master &master, const vtkDIYExplicitAssigner &assigner, std::vector< DataSetT * > &inputs)
This method exchanges the bounding boxes among blocks.
vtkDIYGhostUtilities::RectilinearGridInformation
Definition: vtkDIYGhostUtilities.h:225
vtkDIYGhostUtilities::Block::Information
InformationType Information
InformationT holds any information from the current block that is necessary to exchange ghosts.
Definition: vtkDIYGhostUtilities.h:692
vtkDIYGhostUtilities::PolyDataInformation::OutputToInputPolyCellIdRedirectionMap
vtkNew< vtkIdList > OutputToInputPolyCellIdRedirectionMap
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:617
vtkDIYGhostUtilities::UnstructuredDataBlockStructure::CellIdsToSend
vtkNew< vtkIdList > CellIdsToSend
This lists the ids of the cells that we own and need to send to the current neighboring block.
Definition: vtkDIYGhostUtilities.h:508
vtkDIYGhostUtilities::DeepCopyInputsAndAllocateGhosts
static void DeepCopyInputsAndAllocateGhosts(const diy::Master &master, std::vector< vtkPolyData * > &inputs, std::vector< vtkPolyData * > &outputs)
Method to be overloaded for each supported input data set type, This method allocates ghosts in the o...
vtkDIYGhostUtilities::InitializeGhostArrays
static void InitializeGhostArrays(diy::Master &master, std::vector< DataSetT * > &outputs)
This methods allocate a point and cell ghost array and fills it with 0.
vtkDIYGhostUtilities::UnstructuredDataInformation::BoundingBox
vtkBoundingBox BoundingBox
Bounding box of input.
Definition: vtkDIYGhostUtilities.h:385
vtkDIYGhostUtilities::DeepCopyInputsAndAllocateGhosts
static void DeepCopyInputsAndAllocateGhosts(const diy::Master &master, std::vector< vtkImageData * > &inputs, std::vector< vtkImageData * > &outputs)
Method to be overloaded for each supported input data set type, This method allocates ghosts in the o...
vtkDIYGhostUtilities::GenerateGhostCells
static int GenerateGhostCells(std::vector< DataSetT * > &inputsDS, std::vector< DataSetT * > &outputsDS, int outputGhostLevels, vtkMultiProcessController *controller)
Main pipeline generating ghosts.
vtkDIYGhostUtilities::PolyDataBlockStructure::SendBuffer
TopologyBufferType SendBuffer
Definition: vtkDIYGhostUtilities.h:641
vtkDIYGhostUtilities::PolyDataInformation::InputVertConnectivitySize
vtkIdType InputVertConnectivitySize
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:604
vtkDIYGhostUtilities::UnstructuredDataInformation::InterfacePoints
vtkDataArray * InterfacePoints
Handle to the points of the surface of the input.
Definition: vtkDIYGhostUtilities.h:419
vtkDIYGhostUtilities::Block::GhostCellArray
vtkSmartPointer< vtkUnsignedCharArray > GhostCellArray
Definition: vtkDIYGhostUtilities.h:698
vtkDIYGhostUtilities::ExchangeBlockStructures
static void ExchangeBlockStructures(diy::Master &master, std::vector< vtkRectilinearGrid * > &inputs)
Method to be overloaded for each supported type of input data set.
vtkDIYGhostUtilities::PolyDataInformation::InputPolyConnectivitySize
vtkIdType InputPolyConnectivitySize
Cell connectivity array size of the input if ghost cells are removed.
Definition: vtkDIYGhostUtilities.h:605
vtkDIYGhostUtilities::StructuredGridInformation
Definition: vtkDIYGhostUtilities.h:272