Loading...
Searching...
No Matches
Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM > Class Template Reference
Iterative Solvers Template Library (ISTL) » Iterative Solvers » Preconditioners » Parallel Algebraic Multigrid

Attaches properties to the edges and vertices of a graph. More...

`#include <dune/istl/paamg/graph.hh>`

Inheritance diagram for Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >:

## Classes

class | EdgeIteratorT
class | VertexIteratorT

## Public Types

typedef G | Graph
| The graph we attach properties to.
typedef Graph::VertexDescriptor | VertexDescriptor
| The vertex descriptor.
typedef Graph::EdgeDescriptor | EdgeDescriptor
| The edge descritor.
typedef VP | VertexProperties
| The type of the properties of the vertices.
typedef VM | VertexMap
| The type of the map for converting the VertexDescriptor to std::size_t.
typedef EP | EdgeProperties
| The type of the properties of the edges;.
typedef EM | EdgeMap
| The type of the map for converting the EdgeDescriptor to std::size_t.
typedef EdgeIteratorT< PropertiesGraph< Graph, VertexProperties, EdgeProperties, VM, EM > > | EdgeIterator
| The type of the mutable edge iterator.
typedef EdgeIteratorT< const PropertiesGraph< Graph, VertexProperties, EdgeProperties, VM, EM > > | ConstEdgeIterator
| The type of the constant edge iterator.
typedef VertexIteratorT< PropertiesGraph< Graph, VertexProperties, EdgeProperties, VM, EM > > | VertexIterator
| The type of the mutable Vertex iterator.
typedef VertexIteratorT< const PropertiesGraph< Graph, VertexProperties, EdgeProperties, VM, EM > > | ConstVertexIterator
| The type of the constant Vertex iterator.

## Public Member Functions

EdgeIterator | beginEdges (const VertexDescriptor &source)
| Get the mutable edge iterator over edges starting at a vertex.
EdgeIterator | endEdges (const VertexDescriptor &source)
| Get the mutable edge iterator over edges starting at a vertex.
ConstEdgeIterator | beginEdges (const VertexDescriptor &source) const
| Get the mutable edge iterator over edges starting at a vertex.
ConstEdgeIterator | endEdges (const VertexDescriptor &source) const
| Get the mutable edge iterator over edges starting at a vertex.
VertexIterator | begin ()
| Get an iterator over the vertices.
VertexIterator | end ()
| Get an iterator over the vertices.
ConstVertexIterator | begin () const
| Get an iterator over the vertices.
ConstVertexIterator | end () const
| Get an iterator over the vertices.
VertexProperties & | getVertexProperties (const VertexDescriptor &vertex)
| Get the properties associated with a vertex.
const VertexProperties & | getVertexProperties (const VertexDescriptor &vertex) const
| Get the properties associated with a vertex.
EdgeDescriptor | findEdge (const VertexDescriptor &source, const VertexDescriptor &target)
| Find the descriptor of an edge.
EdgeProperties & | getEdgeProperties (const EdgeDescriptor &edge)
| Get the properties associated with a edge.
const EdgeProperties & | getEdgeProperties (const EdgeDescriptor &edge) const
| Get the properties associated with a edge.
EdgeProperties & | getEdgeProperties (const VertexDescriptor &source, const VertexDescriptor &target)
| Get the properties associated with a edge.
const EdgeProperties & | getEdgeProperties (const VertexDescriptor &source, const VertexDescriptor &target) const
| Get the properties associated with a edge.
const Graph & | graph () const
| Get the graph the properties are attached to.
std::size_t | noVertices () const
| Get the number of vertices in the graph.
std::size_t | noEdges () const
| Get the number of edges in the graph.
VertexDescriptor | maxVertex () const
| Get the maximal vertex descriptor.
| PropertiesGraph (Graph &graph, const VertexMap &vmap=VertexMap(), const EdgeMap &emap=EdgeMap())
| Constructor.

## Detailed Description

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>
class Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >

Attaches properties to the edges and vertices of a graph.

## Member Typedef Documentation

## ConstEdgeIterator

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef EdgeIteratorT<const PropertiesGraph<Graph, VertexProperties, EdgeProperties,VM,EM> > Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::ConstEdgeIterator

The type of the constant edge iterator.

## ConstVertexIterator

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef VertexIteratorT<const PropertiesGraph<Graph, VertexProperties, EdgeProperties,VM,EM> > Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::ConstVertexIterator

The type of the constant Vertex iterator.

## EdgeDescriptor

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef Graph::EdgeDescriptor Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::EdgeDescriptor

The edge descritor.

## EdgeIterator

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef EdgeIteratorT<PropertiesGraph<Graph, VertexProperties, EdgeProperties,VM,EM> > Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::EdgeIterator

The type of the mutable edge iterator.

## EdgeMap

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef EM Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::EdgeMap

The type of the map for converting the EdgeDescriptor to std::size_t.

Has to provide the following method: std::size_t operator[](const EdgeDescriptor& vertex)

The following condition has to be met: Let e1 and e2 be two edge descriptors, e1 < e2, and map be the index map. Then map[v1]<map[v2] has to hold.

## EdgeProperties

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef EP Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::EdgeProperties

The type of the properties of the edges;.

## Graph

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef G Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::Graph

The graph we attach properties to.

## VertexDescriptor

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef Graph::VertexDescriptor Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::VertexDescriptor

The vertex descriptor.

## VertexIterator

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef VertexIteratorT<PropertiesGraph<Graph, VertexProperties, EdgeProperties,VM,EM> > Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::VertexIterator

The type of the mutable Vertex iterator.

## VertexMap

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef VM Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::VertexMap

The type of the map for converting the VertexDescriptor to std::size_t.

Has to provide the following method: std::size_t operator[](const VertexDescriptor& vertex)

The following condition has to be met: Let v1 and v2 be two vertex descriptors with v1 < v2 and map be the index map. Then map[v1]<map[v2] has to hold.

## VertexProperties

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

typedef VP Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::VertexProperties

The type of the properties of the vertices.

## Constructor & Destructor Documentation

## PropertiesGraph()

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::PropertiesGraph | ( | Graph & | graph,
|  | const VertexMap & | vmap = VertexMap(),
|  | const EdgeMap & | emap = EdgeMap() )

Constructor.

Parameters

  graph | The graph we attach properties to.
  vmap | The map of the vertices onto indices.
  emap | The map of the edges onto indices.

## Member Function Documentation

## begin() [1/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

VertexIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::begin | ( |  | ) |

Get an iterator over the vertices.

Returns
  A vertex Iterator positioned at the first vertex.

## begin() [2/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

ConstVertexIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::begin | ( |  | ) | const

Get an iterator over the vertices.

Returns
  A vertex Iterator positioned at the first vertex.

## beginEdges() [1/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

EdgeIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::beginEdges | ( | const VertexDescriptor & | source | ) |

Get the mutable edge iterator over edges starting at a vertex.

Returns
  An edge iterator over edges starting at a vertex positioned at the first edge.

## beginEdges() [2/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

ConstEdgeIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::beginEdges | ( | const VertexDescriptor & | source | ) | const

Get the mutable edge iterator over edges starting at a vertex.

Returns
  An edge iterator over edges starting at a vertex positioned at the first edge.

## end() [1/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

VertexIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::end | ( |  | ) |

Get an iterator over the vertices.

Returns
  A vertex Iterator positioned behind the last vertex.

## end() [2/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

ConstVertexIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::end | ( |  | ) | const

Get an iterator over the vertices.

Returns
  A vertex Iterator positioned behind the last vertex.

## endEdges() [1/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

EdgeIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::endEdges | ( | const VertexDescriptor & | source | ) |

Get the mutable edge iterator over edges starting at a vertex.

Returns
  An edge iterator over edges starting at a vertex positioned after the last edge.

## endEdges() [2/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

ConstEdgeIterator Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::endEdges | ( | const VertexDescriptor & | source | ) | const

Get the mutable edge iterator over edges starting at a vertex.

Returns
  An edge iterator over edges starting at a vertex positioned after the last edge.

## findEdge()

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

EdgeDescriptor Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::findEdge | ( | const VertexDescriptor & | source,
|  | const VertexDescriptor & | target )

inline

Find the descriptor of an edge.

Parameters

  source | The source vertex of the edge we search for.
  target | The target vertex of the edge we search for.

Returns
  The edge we found or numeric_limits<EdgeIterator>::max() if it does not exist.

## getEdgeProperties() [1/4]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

EdgeProperties & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::getEdgeProperties | ( | const EdgeDescriptor & | edge | ) |

Get the properties associated with a edge.

Parameters

  edge | The descriptor identifying the edge.

Returns
  The properties of the edge.

## getEdgeProperties() [2/4]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

const EdgeProperties & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::getEdgeProperties | ( | const EdgeDescriptor & | edge | ) | const

Get the properties associated with a edge.

Parameters

  edge | The descriptor identifying the edge.

Returns
  The properties of the edge.

## getEdgeProperties() [3/4]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

EdgeProperties & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::getEdgeProperties | ( | const VertexDescriptor & | source,
|  | const VertexDescriptor & | target )

Get the properties associated with a edge.

Parameters

  source | The descriptor identifying the source vertex of the edge.
  target | The descriptor identifying the target vertex of the edge.

Returns
  The properties of the edge.

## getEdgeProperties() [4/4]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

const EdgeProperties & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::getEdgeProperties | ( | const VertexDescriptor & | source,
|  | const VertexDescriptor & | target ) const

Get the properties associated with a edge.

Parameters

  source | The descriptor identifying the source vertex of the edge.
  target | The descriptor identifying the target vertex of the edge.

Returns
  The properties of the edge.

## getVertexProperties() [1/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

VertexProperties & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::getVertexProperties | ( | const VertexDescriptor & | vertex | ) |

Get the properties associated with a vertex.

Parameters

  vertex | The descriptor identifying the vertex.

Returns
  The properties of the vertex.

## getVertexProperties() [2/2]

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

const VertexProperties & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::getVertexProperties | ( | const VertexDescriptor & | vertex | ) | const

Get the properties associated with a vertex.

Parameters

  vertex | The descriptor identifying the vertex.

Returns
  The properties of the vertex.

## graph()

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

const Graph & Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::graph | ( |  | ) | const

Get the graph the properties are attached to.

Returns
  The underlying graph.

## maxVertex()

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

VertexDescriptor Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::maxVertex | ( |  | ) | const

Get the maximal vertex descriptor.

Returns
  The minimum value v such that for all vertices w in the graph w<v holds.

## noEdges()

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

std::size_t Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::noEdges | ( |  | ) | const

Get the number of edges in the graph.

## noVertices()

template<class G, class VP, class EP, class VM = IdentityMap, class EM = IdentityMap>

std::size_t Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::noVertices | ( |  | ) | const

Get the number of vertices in the graph.

The documentation for this class was generated from the following file:

- graph.hh