|
virtual int | IsA (const char *type) |
|
vtkPUnstructuredGridConnectivity * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
void | RegisterGrid (vtkUnstructuredGrid *gridPtr) |
|
void | BuildGhostZoneConnectivity () |
|
void | UpdateGhosts () |
|
|
virtual void | SetController (vtkMPIController *) |
|
virtual vtkMPIController * | GetController () |
|
|
virtual void | SetGlobalIDFieldName (const char *) |
|
virtual char * | GetGlobalIDFieldName () |
|
|
virtual vtkUnstructuredGrid * | GetGhostedGrid () |
|
vtkObject * | NewInstance () const |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
virtual unsigned long | GetMTime () |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
|
vtkCommand * | GetCommand (unsigned long tag) |
|
void | RemoveObserver (vtkCommand *) |
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
|
void | RemoveObservers (const char *event, vtkCommand *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
int | HasObserver (unsigned long event) |
|
int | HasObserver (const char *event) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
const char * | GetClassName () const |
|
virtual void | Delete () |
|
virtual void | FastDelete () |
|
void | Print (ostream &os) |
|
virtual void | Register (vtkObjectBase *o) |
|
virtual void | UnRegister (vtkObjectBase *o) |
|
void | SetReferenceCount (int) |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
|
virtual vtkObjectBase * | NewInstanceInternal () const |
|
| vtkPUnstructuredGridConnectivity () |
|
virtual | ~vtkPUnstructuredGridConnectivity () |
|
void | DeSerializeGhostZones () |
|
void | CreatePersistentRcvBuffers () |
|
void | SerializeGhostZones () |
|
void | SynchLocalData () |
|
void | BuildGhostedGridAndCommLists () |
|
void | WriteUnstructuredGrid (vtkUnstructuredGrid *grid, const char *fileName) |
|
void | ExtractSurfaceMesh () |
|
void | MarkFaces () |
|
bool | IsCellOnBoundary (vtkIdType *cellNodes, vtkIdType N) |
|
void | ExchangeBoundaryGrids () |
|
void | ExchangeBoundaryGridSizes (int size) |
|
void | BoundingBoxCollision () |
|
void | ExchangeGridBounds () |
|
void | ExtractBoundaryGrid () |
|
|
void | FillGhostZoneCells (const int neiRank, vtkCellData *ghostData, vtkIdType *cellIdx, const unsigned int numGhostCells) |
|
|
void | FillGhostZoneNodes (const int neiRank, vtkPointData *ghostData, vtkIdType *globalIdx, const unsigned int numGhostNodes) |
|
|
void | EnqueueNodeLinks (const int rmtRank, const vtkIdType ghostCell, const vtkIdType adjCell, vtkIdList *shared) |
|
|
bool | IsCellConnected (vtkCell *c, vtkIdType *globalId, const vtkIdType N, vtkIdType &adjCell, vtkIdList *sharedIds) |
|
|
void | InsertGhostCellNodes (vtkCell *ghostCell, vtkIdTypeArray *ghostGridGlobalIdx, vtkIdType *globalIdArray, vtkUnstructuredGrid *bGrid, vtkIdType *cellPts) |
|
|
void | ProcessRemoteGrid (const int rmtRank, vtkUnstructuredGrid *bGrid) |
|
|
void | SerializeUnstructuredGrid (vtkUnstructuredGrid *g, vtkMultiProcessStream &bytestream) |
|
|
void | DeSerializeUnstructuredGrid (vtkUnstructuredGrid *g, vtkMultiProcessStream &bytestream) |
|
|
void | ExtractBoundaryCell (const vtkIdType cellIdx, const vtkIdType numCellNodes, vtkIdType *cellNodes, vtkPoints *nodes, vtkIdTypeArray *localIdx, vtkIdTypeArray *globaIdx) |
|
| vtkObject () |
|
virtual | ~vtkObject () |
|
virtual void | RegisterInternal (vtkObjectBase *, int check) |
|
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
|
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
|
void | InternalReleaseFocus () |
|
| vtkObjectBase () |
|
virtual | ~vtkObjectBase () |
|
virtual void | CollectRevisions (ostream &) |
|
virtual void | ReportReferences (vtkGarbageCollector *) |
|
| vtkObjectBase (const vtkObjectBase &) |
|
void | operator= (const vtkObjectBase &) |
|
vtkPUnstructuredGridConnectivity implements functionality for generating ghost zones for a distributed unstructured grid. Generating ghost zones is implemented in two stages. First, we build the ghost zones, which amounts to building the connectivity of the ghosted grid and communication links, and second, we update the ghost zones by communicating the fields on the ghost cells and nodes. The main steps involved in this process are as follows:
-
Each process computes a bounding box of the grid it owns.
-
The bounding boxes are then distributed to all processes by an AllGather collective call.
-
Each process loops through the list of bounding boxes and computes box intersections with its local bounding box.
-
The list of intersecting bounding boxes, yields an abbreviated list of candidate neighbors.
-
Given the local grid, each process then extracts the boundary grid, which consists of nodes/cells on the boundary, global node IDs and the local cell IDs w.r.t. the local grid.
-
Boundary grids are then exchanged among candidate neighbors using point-to-point communication.
-
Next, each process constructs the topology of the ghost zones and communication links, using the local boundary grid and the list of remote boundary grids.
-
The communication links store a source/target pair for nodes/cells among connected grids and remain persistent in memory.
-
Last, the fields (node- and/or cell-centered) are updated, using point-to-point communication by processing the communication links.
- Deprecated:
- Not maintained as of VTK 7.0 and will be removed eventually. Use vtkPUnstructuredGridGhostCellsGenerator instead.
- Warning
-
The code currently assumes one grid per rank.
-
GlobalID information must be available.
-
The grid must be globally conforming, i.e., no hanging nodes.
-
Only topologically face-adjacent ghost cells are considered.
-
PointData and CellData must match across partitions/processes.
- See also
- vtkPUnstructuredGridGhostDataGenerator vtkPUnstructuredGridGhostCellsGenerator
- Tests:
- vtkPUnstructuredGridConnectivity (Tests)
Definition at line 98 of file vtkPUnstructuredGridConnectivity.h.