DUNE PDELab (2.8)

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

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

Classes

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

Public Types

typedef M Matrix
 The type of the matrix we are a graph for.
 
typedef std::remove_const< M >::type MutableMatrix
 The mutable 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. More...
 
typedef std::ptrdiff_t EdgeDescriptor
 The edge descriptor. More...
 
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. More...
 
 ~MatrixGraph ()
 Destructor.
 
VertexIterator begin ()
 Get an iterator over the vertices. More...
 
VertexIterator end ()
 Get an iterator over the vertices. More...
 
ConstVertexIterator begin () const
 Get an iterator over the vertices. More...
 
ConstVertexIterator end () const
 Get an iterator over the vertices. More...
 
EdgeIterator beginEdges (const VertexDescriptor &source)
 Get an iterator over the edges starting at a vertex. More...
 
EdgeIterator endEdges (const VertexDescriptor &source)
 Get an iterator over the edges starting at a vertex. More...
 
ConstEdgeIterator beginEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex. More...
 
ConstEdgeIterator endEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex. More...
 
Matrixmatrix ()
 Get the underlying matrix. More...
 
const Matrixmatrix () const
 Get the underlying matrix. More...
 
std::size_t noVertices () const
 Get the number of vertices in the graph.
 
VertexDescriptor maxVertex () const
 Get the maximal vertex descriptor. More...
 
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. More...
 

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

◆ EdgeDescriptor

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

The edge descriptor.

Each edge is identifies by exactly one descriptor.

◆ VertexDescriptor

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

The vertex descriptor.

Each descriptor describes exactly one vertex.

Constructor & Destructor Documentation

◆ MatrixGraph()

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

Constructor.

Parameters
matrixThe matrix we are a graph for.

Member Function Documentation

◆ begin() [1/2]

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

Get an iterator over the vertices.

Returns
A vertex Iterator positioned at the first vertex.

◆ begin() [2/2]

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.

◆ beginEdges() [1/2]

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.

◆ beginEdges() [2/2]

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.

◆ end() [1/2]

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

Get an iterator over the vertices.

Returns
A vertex Iterator positioned behind the last vertex.

◆ end() [2/2]

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.

◆ endEdges() [1/2]

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.

◆ endEdges() [2/2]

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.

◆ findEdge()

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.

◆ matrix() [1/2]

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

Get the underlying matrix.

Returns
The matrix of the graph.

◆ matrix() [2/2]

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

Get the underlying matrix.

Returns
The matrix of the graph.

◆ maxVertex()

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.

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 21, 23:30, 2024)