FreeMat

- Main Page
- Related Pages

vtkDistributedGraphHelper

Section: Visualization Toolkit Filtering Classes

# Usage

A distributed graph helper can be attached to an empty vtkGraph object to turn the vtkGraph into a distributed graph, whose vertices and edges are distributed across several different processors. vtkDistributedGraphHelper is an abstract class. Use a subclass of vtkDistributedGraphHelper, such as vtkPBGLDistributedGraphHelper, to build distributed graphs.

The distributed graph helper provides facilities used by vtkGraph to communicate with other processors that store other parts of the same distributed graph. The only user-level functionality provided by vtkDistributedGraphHelper involves this communication among processors and the ability to map between "distributed" vertex and edge IDs and their component parts (processor and local index). For example, the Synchronize() method provides a barrier that allows all processors to catch up to the same point in the code before any processor can leave that Synchronize() call. For example, one would call Synchronize() after adding many edges to a distributed graph, so that all processors can handle the addition of inter-processor edges and continue, after the Synchronize() call, with a consistent view of the distributed graph. For more information about manipulating (distributed) graphs, see the vtkGraph documentation.

To create an instance of class vtkDistributedGraphHelper, simply invoke its constructor as follows

      obj = vtkDistributedGraphHelper

# Methods

The class vtkDistributedGraphHelper has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, `obj` is an instance of the vtkDistributedGraphHelper class.

- `string = obj.GetClassName ()`
- `int = obj.IsA (string name)`
- `vtkDistributedGraphHelper = obj.NewInstance ()`
- `vtkDistributedGraphHelper = obj.SafeDownCast (vtkObject o)`
- `vtkIdType = obj.GetVertexOwner (vtkIdType v) const` - Returns owner of vertex v, by extracting top ceil(log2 P) bits of v.
- `vtkIdType = obj.GetVertexIndex (vtkIdType v) const` - Returns local index of vertex v, by masking off top ceil(log2 P) bits of v.
- `vtkIdType = obj.GetEdgeOwner (vtkIdType e_id) const` - Returns owner of edge with ID e_id, by extracting top ceil(log2 P) bits of e_id.
- `vtkIdType = obj.GetEdgeIndex (vtkIdType e_id) const` - Returns local index of edge with ID e_id, by masking off top ceil(log2 P) bits of e_id.
- `vtkIdType = obj.MakeDistributedId (int owner, vtkIdType local)` - Builds a distributed ID consisting of the given owner and the local ID.
- `obj.Synchronize ()` - Synchronizes all of the processors involved in this distributed graph, so that all processors have a consistent view of the distributed graph for the computation that follows. This routine should be invoked after adding new edges into the distributed graph, so that other processors will see those edges (or their corresponding back-edges).
- `vtkDistributedGraphHelper = obj.Clone ()` - Clones the distributed graph helper, returning another distributed graph helper of the same kind that can be used in another vtkGraph.