# ``igraph`.`Flow``

class documentation

`class Flow(Cut): (source)`

Constructor: `Flow(graph, value, flow, cut, partition)`

View In Hierarchy

A flow of a given graph.

This is a simple class used to represent flows returned by `Graph.maxflow`. It has the following attributes:

- `graph` - the graph on which this flow is defined
- `value` - the value (capacity) of the flow
- `flow` - the flow values on each edge. For directed graphs, this is simply a list where element i corresponds to the flow on edge i. For undirected graphs, the direction of the flow is not constrained (since the edges are undirected), hence positive flow always means a flow from the smaller vertex ID to the larger, while negative flow means a flow from the larger vertex ID to the smaller.
- `cut` - edge IDs in the minimal cut corresponding to the flow.
- `partition` - vertex IDs in the parts created after removing edges in the cut
- `es` - an edge selector restricted to the edges in the cut.

This class is usually not instantiated directly, everything is taken care of by `Graph.maxflow`.

Examples:

    >>> from igraph import Graph
    >>> g = Graph.Ring(20)
    >>> mf = g.maxflow(0, 10)
    >>> print(mf.value)
    2.0
    >>> mf.es["color"] = "red"

Method | `__init__` | Initializes the flow.
Method | `__repr__` | Undocumented
Method | `__str__` | Undocumented
Property | `flow` | Returns the flow values for each edge.
Instance Variable | `_flow` | Undocumented

Inherited from `Cut`:

Property | `cut` | Returns the edge IDs in the cut
Property | `es` | Returns an edge selector restricted to the cut
Property | `partition` | Returns the vertex IDs partitioned according to the cut
Property | `value` | Returns the sum of edge capacities in the cut
Instance Variable | `_cut` | Undocumented
Instance Variable | `_partition` | Undocumented
Instance Variable | `_value` | Undocumented

Inherited from `VertexClustering` (via `Cut`):

Class Method | `FromAttribute` | Creates a vertex clustering based on the value of a vertex attribute.
Method | `__plot__` | Plots the clustering to the given Cairo context or matplotlib Axes.
Method | `as_cover` | Returns a `VertexCover` that contains the same clusters as this clustering.
Method | `cluster_graph` | Returns a graph where each cluster is contracted into a single vertex.
Method | `crossing` | Returns a boolean vector where element i is `True` iff edge i lies between clusters, `False` otherwise.
Method | `giant` | Returns the largest cluster of the clustered graph.
Method | `recalculate_modularity` | Recalculates the stored modularity value.
Method | `subgraph` | Get the subgraph belonging to a given cluster.
Method | `subgraphs` | Gets all the subgraphs belonging to each of the clusters.
Property | `graph` | Returns the graph belonging to this object
Property | `modularity` | Returns the modularity score
Method | `_formatted_cluster_iterator` | Iterates over the clusters and formats them into a string to be presented in the summary.
Method | `_recalculate_modularity_safe` | Recalculates the stored modularity value and swallows all exceptions raised by the modularity function (if any).
Class Variable | `_default_palette` | Undocumented
Instance Variable | `_graph` | Undocumented
Instance Variable | `_modularity` | Undocumented
Instance Variable | `_modularity_dirty` | Undocumented
Instance Variable | `_modularity_params` | Undocumented

Inherited from `Clustering` (via `Cut`, `VertexClustering`):

Method | `__getitem__` | Returns the members of the specified cluster.
Method | `__iter__` | Iterates over the clusters in this clustering.
Method | `__len__` | Returns the number of clusters.
Method | `compare_to` | Compares this clustering to another one using some similarity or distance metric.
Method | `size` | Returns the size of a given cluster.
Method | `size_histogram` | Returns the histogram of cluster sizes.
Method | `sizes` | Returns the size of given clusters.
Method | `summary` | Returns the summary of the clustering.
Property | `membership` | Returns the membership vector.
Property | `n` | Returns the number of elements covered by this clustering.
Instance Variable | `_len` | Undocumented
Instance Variable | `_membership` | Undocumented

def __init__(self, graph, value, flow, cut, partition): (source)
overrides `igraph.Cut.__init__`

Initializes the flow.

This should not be called directly, everything is taken care of by `Graph.maxflow`.

def __repr__(self): (source)
overrides `igraph.Cut.__repr__`

Undocumented

def __str__(self): (source)
overrides `igraph.Cut.__str__`

Undocumented

@property
flow = (source)

Returns the flow values for each edge.

For directed graphs, this is simply a list where element i corresponds to the flow on edge i. For undirected graphs, the direction of the flow is not constrained (since the edges are undirected), hence positive flow always means a flow from the smaller vertex ID to the larger, while negative flow means a flow from the larger vertex ID to the smaller.

_flow = (source)

Undocumented