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 | |
enum | { mutableMatrix = is_same<M, 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. | |
Matrix & | matrix () |
Get the underlying matrix. | |
const Matrix & | matrix () 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. |
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.
typedef EdgeIteratorT<const MatrixGraph<Matrix> > Dune::Amg::MatrixGraph< M >::ConstEdgeIterator |
The constant edge iterator type.
typedef VertexIteratorT<const MatrixGraph<Matrix> > Dune::Amg::MatrixGraph< M >::ConstVertexIterator |
The constant vertex iterator type.
typedef std::ptrdiff_t Dune::Amg::MatrixGraph< M >::EdgeDescriptor |
The edge descriptor.
Each edge is identifies by exactly one descriptor.
typedef EdgeIteratorT<MatrixGraph<Matrix> > Dune::Amg::MatrixGraph< M >::EdgeIterator |
The mutable edge iterator type.
typedef M Dune::Amg::MatrixGraph< M >::Matrix |
The type of the matrix we are a graph for.
typedef M::size_type Dune::Amg::MatrixGraph< M >::VertexDescriptor |
The vertex descriptor.
Each descriptor describes exactly one vertex.
typedef VertexIteratorT<MatrixGraph<Matrix> > Dune::Amg::MatrixGraph< M >::VertexIterator |
The mutable vertex iterator type.
typedef M::block_type Dune::Amg::MatrixGraph< M >::Weight |
The type of the weights.
Dune::Amg::MatrixGraph< M >::MatrixGraph | ( | Matrix & | matrix | ) |
Constructor.
matrix | The matrix we are a graph for. |
Dune::Amg::MatrixGraph< M >::~MatrixGraph | ( | ) |
Destructor.
ConstVertexIterator Dune::Amg::MatrixGraph< M >::begin | ( | ) | const |
Get an iterator over the vertices.
VertexIterator Dune::Amg::MatrixGraph< M >::begin | ( | ) |
Get an iterator over the vertices.
ConstEdgeIterator Dune::Amg::MatrixGraph< M >::beginEdges | ( | const VertexDescriptor & | source | ) | const |
Get an iterator over the edges starting at a vertex.
source | The vertex where the edges should start. |
EdgeIterator Dune::Amg::MatrixGraph< M >::beginEdges | ( | const VertexDescriptor & | source | ) |
Get an iterator over the edges starting at a vertex.
source | The vertex where the edges should start. |
ConstVertexIterator Dune::Amg::MatrixGraph< M >::end | ( | ) | const |
Get an iterator over the vertices.
VertexIterator Dune::Amg::MatrixGraph< M >::end | ( | ) |
Get an iterator over the vertices.
ConstEdgeIterator Dune::Amg::MatrixGraph< M >::endEdges | ( | const VertexDescriptor & | source | ) | const |
Get an iterator over the edges starting at a vertex.
source | The vertex where the edges should start. |
EdgeIterator Dune::Amg::MatrixGraph< M >::endEdges | ( | const VertexDescriptor & | source | ) |
Get an iterator over the edges starting at a vertex.
source | The vertex where the edges should start. |
EdgeDescriptor Dune::Amg::MatrixGraph< M >::findEdge | ( | const VertexDescriptor & | source, | |
const VertexDescriptor & | target | |||
) | const |
Find the descriptor of an edge.
source | The source vertex of the edge we search for. | |
target | The target vertex of the edge we search for. |
const Matrix& Dune::Amg::MatrixGraph< M >::matrix | ( | ) | const |
Get the underlying matrix.
Matrix& Dune::Amg::MatrixGraph< M >::matrix | ( | ) |
Get the underlying matrix.
VertexDescriptor Dune::Amg::MatrixGraph< M >::maxVertex | ( | ) | const |
Get the maximal vertex descriptor.
std::size_t Dune::Amg::MatrixGraph< M >::noEdges | ( | ) | const |
Get the number of edges in the graph.
std::size_t Dune::Amg::MatrixGraph< M >::noVertices | ( | ) | const |
Get the number of vertices in the graph.