dune-istl  2.1.1
Classes | Public Types | Public Member Functions
Dune::Amg::MatrixGraph< M > Class Template Reference

The (undirected) graph of a matrix. More...

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

Inheritance diagram for Dune::Amg::MatrixGraph< M >:
Inheritance graph

List of all members.

Classes

class  EdgeIteratorT
 Iterator over all edges starting from a vertex. More...
class  VertexIteratorT
 The vertex iterator type of the graph. More...

Public Types

enum  { mutableMatrix = is_same<M, typename remove_const<M>::type>::value }
typedef M Matrix
 The type of the matrix we are a graph for.
typedef M::block_type Weight
 The type of the weights.
typedef M::size_type VertexDescriptor
 The vertex descriptor.
typedef std::ptrdiff_t EdgeDescriptor
 The edge descriptor.
typedef EdgeIteratorT< const
MatrixGraph< Matrix > > 
ConstEdgeIterator
 The constant edge iterator type.
typedef EdgeIteratorT
< MatrixGraph< Matrix > > 
EdgeIterator
 The mutable edge iterator type.
typedef VertexIteratorT< const
MatrixGraph< Matrix > > 
ConstVertexIterator
 The constant vertex iterator type.
typedef VertexIteratorT
< MatrixGraph< Matrix > > 
VertexIterator
 The mutable vertex iterator type.

Public Member Functions

 MatrixGraph (Matrix &matrix)
 Constructor.
 ~MatrixGraph ()
 Destructor.
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.
EdgeIterator beginEdges (const VertexDescriptor &source)
 Get an iterator over the edges starting at a vertex.
EdgeIterator endEdges (const VertexDescriptor &source)
 Get an iterator over the edges starting at a vertex.
ConstEdgeIterator beginEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex.
ConstEdgeIterator endEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex.
Matrixmatrix ()
 Get the underlying matrix.
const Matrixmatrix () const
 Get the underlying matrix.
std::size_t noVertices () const
 Get the number of vertices in the graph.
VertexDescriptor maxVertex () const
 Get the maximal vertex descriptor.
std::size_t noEdges () const
 Get the number of edges in the graph.
EdgeDescriptor findEdge (const VertexDescriptor &source, const VertexDescriptor &target) const
 Find the descriptor of an edge.

Detailed Description

template<class M>
class Dune::Amg::MatrixGraph< M >

The (undirected) graph of a matrix.

The graph of a sparse matrix essentially describes the sparsity pattern (nonzero entries) of a matrix. It is assumed that the underlying sparsity pattern is symmetric, i.e if entry a_ij is present in the storage scheme of the matrix (i.e. nonzero) so is a_ji.

The matrix entries can be accessed as weights of the vertices and edges.


Member Typedef Documentation

template<class M>
typedef EdgeIteratorT<const MatrixGraph<Matrix> > Dune::Amg::MatrixGraph< M >::ConstEdgeIterator

The constant edge iterator type.

The constant vertex iterator type.

template<class M>
typedef std::ptrdiff_t Dune::Amg::MatrixGraph< M >::EdgeDescriptor

The edge descriptor.

Each edge is identifies by exactly one descriptor.

The mutable edge iterator type.

template<class M>
typedef M Dune::Amg::MatrixGraph< M >::Matrix

The type of the matrix we are a graph for.

template<class M>
typedef M::size_type Dune::Amg::MatrixGraph< M >::VertexDescriptor

The vertex descriptor.

Each descriptor describes exactly one vertex.

The mutable vertex iterator type.

template<class M>
typedef M::block_type Dune::Amg::MatrixGraph< M >::Weight

The type of the weights.


Member Enumeration Documentation

template<class M>
anonymous enum
Enumerator:
mutableMatrix 

Constructor & Destructor Documentation

template<class M>
Dune::Amg::MatrixGraph< M >::MatrixGraph ( Matrix matrix)

Constructor.

Parameters:
matrixThe matrix we are a graph for.
template<class M>
Dune::Amg::MatrixGraph< M >::~MatrixGraph ( )

Destructor.


Member Function Documentation

template<class M>
VertexIterator Dune::Amg::MatrixGraph< M >::begin ( )

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.
template<class M>
ConstVertexIterator Dune::Amg::MatrixGraph< M >::begin ( ) const

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.
template<class M>
EdgeIterator Dune::Amg::MatrixGraph< M >::beginEdges ( const VertexDescriptor source)

Get an iterator over the edges starting at a vertex.

Parameters:
sourceThe vertex where the edges should start.
Returns:
An edge iterator positioned at the first edge starting from vertex source.
template<class M>
ConstEdgeIterator Dune::Amg::MatrixGraph< M >::beginEdges ( const VertexDescriptor source) const

Get an iterator over the edges starting at a vertex.

Parameters:
sourceThe vertex where the edges should start.
Returns:
An edge iterator positioned at the first edge starting from vertex source.
template<class M>
VertexIterator Dune::Amg::MatrixGraph< M >::end ( )

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

Referenced by Dune::Amg::PropertiesGraphCreator< M, SolverCategory::overlapping >::create(), and Dune::Amg::PropertiesGraphCreator< M, SolverCategory::nonoverlapping >::create().

template<class M>
ConstVertexIterator Dune::Amg::MatrixGraph< M >::end ( ) const

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.
template<class M>
EdgeIterator Dune::Amg::MatrixGraph< M >::endEdges ( const VertexDescriptor source)

Get an iterator over the edges starting at a vertex.

Parameters:
sourceThe vertex where the edges should start.
Returns:
An edge iterator positioned behind the last edge starting from vertex source.
template<class M>
ConstEdgeIterator Dune::Amg::MatrixGraph< M >::endEdges ( const VertexDescriptor source) const

Get an iterator over the edges starting at a vertex.

Parameters:
sourceThe vertex where the edges should start.
Returns:
An edge iterator positioned behind the last edge starting from vertex source.
template<class M>
EdgeDescriptor Dune::Amg::MatrixGraph< M >::findEdge ( const VertexDescriptor source,
const VertexDescriptor target 
) const

Find the descriptor of an edge.

Parameters:
sourceThe source vertex of the edge we search for.
targetThe target vertex of the edge we search for.
Returns:
The edge we found or numeric_limits<EdgeIterator>::max() if it does not exist.
template<class M>
Matrix& Dune::Amg::MatrixGraph< M >::matrix ( )

Get the underlying matrix.

Returns:
The matrix of the graph.
template<class M>
const Matrix& Dune::Amg::MatrixGraph< M >::matrix ( ) const

Get the underlying matrix.

Returns:
The matrix of the graph.
template<class M>
VertexDescriptor Dune::Amg::MatrixGraph< M >::maxVertex ( ) const

Get the maximal vertex descriptor.

Returns:
The minimum value v such that for all vertices w in the graph w<v holds.
template<class M>
std::size_t Dune::Amg::MatrixGraph< M >::noEdges ( ) const

Get the number of edges in the graph.

template<class M>
std::size_t Dune::Amg::MatrixGraph< M >::noVertices ( ) const

Get the number of vertices in the graph.


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