Parallel Algebraic Multigrid
[Preconditioners]


Detailed Description

A Parallel Algebraic Multigrid based on Agglomeration.


Files

file  aggregates.hh
 Provides classes for the Coloring process of AMG.
file  amg.hh
 The AMG preconditioner.
file  construction.hh
 Helper classes for the construction of classes without empty constructor.
file  dependency.hh
 Provides classes for initializing the link attributes of a matrix graph.
file  galerkin.hh
 Provides a class for building the galerkin product based on a aggregation scheme.
file  graph.hh
 Provides classes for building the matrix graph.
file  hierarchy.hh
 Provides a classes representing the hierarchies in AMG.
file  indicescoarsener.hh
 Provides a class for building the index set and remote indices on the coarse level.
file  properties.hh
 Provides classes for handling internal properties in a graph.
file  smoother.hh
 Classes for the generic construction and application of the smoothers.
file  transfer.hh
 Prolongation and restriction for amg.

Classes

class  Dune::Amg::AggregationCriterion< T >
 Base class of all aggregation criterions. More...
class  Dune::Amg::DependencyParameters
 Paramters needed to check whether a node depends on another. More...
class  Dune::Amg::Dependency< M, N >
 Dependency policy for symmetric matrices. More...
class  Dune::Amg::SymmetricDependency< M, N >
 Dependency policy for symmetric matrices. More...
class  Dune::Amg::FirstDiagonal
 Norm that uses only the [0][0] entry of the block to determine couplings. More...
struct  Dune::Amg::RowSum
 Functor using the row sum (infinity) norm to determine strong couplings. More...
class  Dune::Amg::SymmetricCriterion< M, Norm >
 Criterion taking advantage of symmetric matrices. More...
class  Dune::Amg::UnSymmetricCriterion< M, Norm >
 Criterion suited for unsymmetric matrices. More...
class  Dune::Amg::AggregatesMap< V >
 Class providing information about the mapping of the vertices onto aggregates. More...
class  Dune::Amg::AggregatesMap< V >::DummyEdgeVisitor
 A Dummy visitor that does nothing for each visited edge. More...
class  Dune::Amg::Aggregate< G >
 A class for temporarily storing the vertices of an aggregate in. More...
class  Dune::Amg::Aggregator< G >
 Class for building the aggregates. More...
class  Dune::Amg::AMG< M, X, S, PI, A >
 Parallel algebraic multigrid based on agglomeration. More...
class  Dune::Amg::ConstructionTraits< T >
 Traits class for generically constructing non default constructable types. More...
class  Dune::Amg::EdgeProperties
 Class representing the properties of an ede in the matrix graph. More...
class  Dune::Amg::VertexProperties
 Class representing a node in the matrix graph. More...
class  Dune::Amg::SparsityBuilder< M, V >
 Functor for building the sparsity pattern of the matrix using examineConnectivity. More...
class  Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >
 Visitor for identifying connected aggregates during a breadthFirstSearch. More...
class  Dune::Amg::MatrixGraph< M >
 The (undirected) graph of a matrix. More...
class  Dune::Amg::SubGraph< G, T >
 A subgraph of a graph. More...
class  Dune::Amg::VertexPropertiesGraph< G, VP, VM >
 Attaches properties to the vertices of a graph. More...
class  Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >
 Attaches properties to the edges and vertices of a graph. More...
class  Dune::Amg::GraphVertexPropertiesSelector< G >
 Wrapper to access the internal edge properties of a graph via operator[](). More...
class  Dune::Amg::GraphEdgePropertiesSelector< G >
 Wrapper to access the internal vertex properties of a graph via operator[](). More...
class  Dune::Amg::Hierarchy< T, A >
 A hierarchy of coantainers (e.g. matrices or vectors). More...
class  Dune::Amg::MatrixHierarchy< M, PI, A >
 The hierarchies build by the coarsening process. More...
class  Dune::Amg::CoarsenCriterion< T >
 The criterion describing the stop criteria for the coarsening Process. More...
class  Dune::Amg::IndicesCoarsener< SequentialInformation, E >
 Coarsen Indices in the sequential case. More...
struct  Dune::Amg::VertexVisitedTag
 Tag idnetifying the visited property of a vertex. More...
class  Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >
 A property map that extracts one property out of a bundle using operator[](). More...
struct  Dune::Amg::DefaultSmootherArgs< T >
 The default class for the smoother arguments. More...
struct  Dune::Amg::SmootherTraits< T >
 Traits class for getting the attribute class of a smoother. More...
class  Dune::Amg::DefaultConstructionArgs< T >
 Construction Arguments for the default smoothers. More...
struct  Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >
 Policy for the construction of the SeqSSOR smoother. More...
struct  Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >
 Policy for the construction of the SeqSOR smoother. More...
struct  Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >
 Policy for the construction of the SeqJac smoother. More...
struct  Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >
 Policy for the construction of the SeqILUn smoother. More...
struct  Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >
 Policy for the construction of the SeqJac smoother. More...
struct  Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >
 Policy for the construction of the ParSSOR smoother. More...
struct  Dune::Amg::SmootherApplier< T >
 Helper class for applying the smoothers. More...

Typedefs

typedef N Dune::Amg::Dependency::Norm
 The norm to use for examining the matrix entries.
typedef Matrix::row_type Dune::Amg::Dependency::Row
 Constant Row iterator of the matrix.
typedef Matrix::ConstColIterator Dune::Amg::Dependency::ColIter
 Constant column iterator of the matrix.
typedef N Dune::Amg::SymmetricDependency::Norm
 The norm to use for examining the matrix entries.
typedef Matrix::row_type Dune::Amg::SymmetricDependency::Row
 Constant Row iterator of the matrix.
typedef Matrix::ConstColIterator Dune::Amg::SymmetricDependency::ColIter
 Constant column iterator of the matrix.
typedef V Dune::Amg::AggregatesMap::VertexDescriptor
 The vertex descriptor type.
typedef V Dune::Amg::AggregatesMap::AggregateDescriptor
 The aggregate descriptor type.
typedef PoolAllocator
< VertexDescriptor,
100 *sizeof(int)> 
Dune::Amg::AggregatesMap::Allocator
 The allocator we use for our lists and the set.
typedef SLList
< VertexDescriptor, Allocator > 
Dune::Amg::AggregatesMap::VertexList
 The type of a single linked list of vertex descriptors.
typedef
MatrixGraph::VertexDescriptor 
Dune::Amg::Aggregate::Vertex
 The vertex descriptor type.
typedef PoolAllocator< Vertex,
100 *sizeof(int)> 
Dune::Amg::Aggregate::Allocator
 The allocator we use for our lists and the set.
typedef SLList< Vertex, Allocator > Dune::Amg::Aggregate::VertexList
 The type of a single linked list of vertex descriptors.
typedef std::set< Vertex > Dune::Amg::Aggregate::VertexSet
 The type of a single linked list of vertex descriptors.
typedef VertexList::const_iterator Dune::Amg::Aggregate::const_iterator
 Const iterator over a vertex list.
typedef std::size_t * Dune::Amg::Aggregate::SphereMap
 Type of the mapping of aggregate members onto distance spheres.
typedef
MatrixGraph::VertexDescriptor 
Dune::Amg::Aggregator::Vertex
 The vertex identifier.
typedef
MatrixGraph::VertexDescriptor 
Dune::Amg::Aggregator::AggregateDescriptor
 The type of the aggregate descriptor.
typedef PI Dune::Amg::AMG::ParallelInformation
 The type of the parallel information. Either OwnerOverlapCommunication or another type discribing the parallel data distribution and prvoiding communication methods.
typedef MatrixHierarchy< M,
ParallelInformation, A > 
Dune::Amg::AMG::OperatorHierarchy
 The operator hierarchy type.
typedef
OperatorHierarchy::ParallelInformationHierarchy 
Dune::Amg::AMG::ParallelInformationHierarchy
 The parallal data distribution hierarchy type.
typedef X Dune::Amg::AMG::Domain
 The domain type.
typedef X Dune::Amg::AMG::Range
 The range type.
typedef InverseOperator< X, X > Dune::Amg::AMG::CoarseSolver
 the type of the coarse solver.
typedef S Dune::Amg::AMG::Smoother
 The type of the smoother.
typedef SmootherTraits
< Smoother >::Arguments 
Dune::Amg::AMG::SmootherArgs
 The argument type for the construction of the smoother.
typedef G Dune::Amg::PropertyGraphVertexPropertyMap::Graph
 The type of the graph with internal properties.
typedef std::bitset
< VertexProperties::SIZE > 
Dune::Amg::PropertyGraphVertexPropertyMap::BitSet
 The type of the bitset.
typedef BitSet::reference Dune::Amg::PropertyGraphVertexPropertyMap::Reference
 The reference type.
typedef bool Dune::Amg::PropertyGraphVertexPropertyMap::ValueType
 The value type.
typedef G::VertexDescriptor Dune::Amg::PropertyGraphVertexPropertyMap::Vertex
 The vertex descriptor.
typedef T Dune::Amg::OverlapVertex::Vertex
 The vertex descriptor.
typedef Graph::ConstEdgeIterator Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder::ConstEdgeIterator
 The constant edge iterator.
typedef S Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder::Set
 The type of the connected set.
typedef V Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder::VisitedMap
 The type of the map for marking vertices as visited.
typedef Graph::VertexDescriptor Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder::Vertex
 The vertex descriptor of the graph.
typedef T Dune::Amg::ParallelIndicesCoarsener::ParallelInformation
 The type of the parallel information.
typedef
ParallelIndexSet::GlobalIndex 
Dune::Amg::ParallelIndicesCoarsener::GlobalIndex
 The type of the global index.
typedef
ParallelIndexSet::LocalIndex 
Dune::Amg::ParallelIndicesCoarsener::LocalIndex
 The type of the local index.
typedef LocalIndex::Attribute Dune::Amg::ParallelIndicesCoarsener::Attribute
 The type of the attribute.
typedef RemoteIndices
< ParallelIndexSet > 
Dune::Amg::ParallelIndicesCoarsener::RemoteIndices
 The type of the remote indices.
typedef R Dune::Amg::RandomAccessBundledPropertyMap::Reference
 The reference type of the container.
typedef K Dune::Amg::RandomAccessBundledPropertyMap::Key
 The key of the property map.
typedef LvaluePropertyMapTag Dune::Amg::RandomAccessBundledPropertyMap::Category
 The category of the property map.

Enumerations

enum  { Dune::Amg::AMG::category = S::category }
enum  
 Flags of the link.
enum  { Dune::Amg::PropertyGraphVertexPropertyMap::index = i }
enum  { Dune::Amg::RandomAccessBundledPropertyMap::index = i }

Functions

 Dune::Amg::AggregationCriterion::AggregationCriterion ()
 Constructor.
std::size_t Dune::Amg::AggregationCriterion::maxDistance () const
 Get the maximal distance allowed between to nodes in a aggregate.
void Dune::Amg::AggregationCriterion::setMaxDistance (std::size_t distance)
 Set the maximal distance allowed between to nodes in a aggregate.
std::size_t Dune::Amg::AggregationCriterion::minAggregateSize () const
 Get the minimum number of nodes a aggregate has to consist of.
void Dune::Amg::AggregationCriterion::setMinAggregateSize (std::size_t size)
 Set the minimum number of nodes a aggregate has to consist of.
std::size_t Dune::Amg::AggregationCriterion::maxAggregateSize () const
 Get the maximum number of nodes a aggregate is allowed to have.
void Dune::Amg::AggregationCriterion::setMaxAggregateSize (std::size_t size)
 Set the maximum number of nodes a aggregate is allowed to have.
std::size_t Dune::Amg::AggregationCriterion::maxConnectivity () const
 Get the maximum number of connections a aggregate is allowed to have.
void Dune::Amg::AggregationCriterion::setMaxConnectivity (std::size_t connectivity)
 Set the maximum number of connections a aggregate is allowed to have.
void Dune::Amg::AggregationCriterion::setDebugLevel (int level)
 Set the debugging level.
int Dune::Amg::AggregationCriterion::debugLevel () const
 Get the debugging Level.
void Dune::Amg::DependencyParameters::setBeta (double b)
 Set threshold for marking nodes as isolated. The default value is 1.0E-5.
double Dune::Amg::DependencyParameters::beta () const
 Get the threshold for marking nodes as isolated. The default value is 1.0E-5.
void Dune::Amg::DependencyParameters::setAlpha (double a)
 Set the scaling value for marking connections as strong. Default value is 1/3.
double Dune::Amg::DependencyParameters::alpha () const
 Get the scaling value for marking connections as strong. Default value is 1/3.
 Dune::Amg::AggregatesMap::AggregatesMap ()
 Constructs without allocating memory.
 Dune::Amg::AggregatesMap::AggregatesMap (std::size_t noVertices)
 Constructs with allocating memory.
 Dune::Amg::AggregatesMap::~AggregatesMap ()
 Destructor.
template<class M, class G, class C>
Tuple< int, int, int > Dune::Amg::AggregatesMap::buildAggregates (const M &matrix, G &graph, const C &criterion)
 Build the aggregates.
template<bool reset, class G, class F, class VM>
std::size_t Dune::Amg::AggregatesMap::breadthFirstSearch (const VertexDescriptor &start, const AggregateDescriptor &aggregate, G &graph, F &aggregateVisitor, VM &visitedMap) const
 Breadth first search within an aggregate.
template<bool remove, bool reset, class G, class L, class F1, class F2, class VM>
std::size_t Dune::Amg::AggregatesMap::breadthFirstSearch (const VertexDescriptor &start, const AggregateDescriptor &aggregate, G &graph, L &visited, F1 &aggregateVisitor, F2 &nonAggregateVisitor, VM &visitedMap) const
 Breadth first search within an aggregate.
void Dune::Amg::AggregatesMap::allocate (std::size_t noVertices)
 Allocate memory for holding the information.
std::size_t Dune::Amg::AggregatesMap::noVertices () const
 Get the number of vertices.
void Dune::Amg::AggregatesMap::free ()
 Free the allocated memory.
AggregateDescriptor & Dune::Amg::AggregatesMap::operator[] (const VertexDescriptor &v)
 Get the aggregate a vertex belongs to.
const AggregateDescriptor & Dune::Amg::AggregatesMap::operator[] (const VertexDescriptor &v) const
 Get the aggregate a vertex belongs to.
 Dune::Amg::Aggregate::Aggregate (const MatrixGraph &graph, AggregatesMap< Vertex > &aggregates, VertexSet &connectivity)
 Constructor.
void Dune::Amg::Aggregate::reconstruct (const Vertex &vertex)
 Reconstruct the aggregat from an seed node.
void Dune::Amg::Aggregate::seed (const Vertex &vertex)
 Initialize the aggregate with one vertex.
void Dune::Amg::Aggregate::add (const Vertex &vertex)
 Add a vertex to the aggregate.
void Dune::Amg::Aggregate::clear ()
 Clear the aggregate.
VertexList::size_type Dune::Amg::Aggregate::size ()
 Get the size of the aggregate.
int Dune::Amg::Aggregate::id ()
 Get the id identifying the aggregate.
const_iterator Dune::Amg::Aggregate::begin () const
 get an iterator over the vertices of the aggregate.
const_iterator Dune::Amg::Aggregate::end () const
 get an iterator over the vertices of the aggregate.
 Dune::Amg::Aggregator::Aggregator ()
 Constructor.
 Dune::Amg::Aggregator::~Aggregator ()
 Destructor.
template<class M, class C>
Tuple< int, int, int > Dune::Amg::Aggregator::build (const M &m, G &graph, AggregatesMap< Vertex > &aggregates, const C &c)
 Build the aggregates.
 Dune::Amg::Aggregator::AggregateVisitor::AggregateVisitor (const AggregatesMap< Vertex > &aggregates, const AggregateDescriptor &aggregate, Visitor &visitor)
 Constructor.
void Dune::Amg::Aggregator::AggregateVisitor::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 Examine an edge.
int Dune::Amg::Aggregator::Counter::value ()
 Access the current count.
void Dune::Amg::Aggregator::Counter::increment ()
 Increment counter.
void Dune::Amg::Aggregator::Counter::decrement ()
 Decrement counter.
 Dune::Amg::AMG::AMG (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, std::size_t gamma, std::size_t preSmoothingSteps, std::size_t postSmoothingSteps, bool additive=false)
 Construct a new amg with a specific coarse solver.
template<class C>
 Dune::Amg::AMG::AMG (const Operator &fineOperator, const C &criterion, const SmootherArgs &smootherArgs, std::size_t gamma=1, std::size_t preSmoothingSteps=2, std::size_t postSmoothingSteps=2, bool additive=false, const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother.
void Dune::Amg::AMG::pre (Domain &x, Range &b)
void Dune::Amg::AMG::apply (Domain &v, const Range &d)
void Dune::Amg::AMG::post (Domain &x)
static T * Dune::Amg::ConstructionTraits::construct (Arguments &args)
 Construct an object with the specified arguments.
static void Dune::Amg::ConstructionTraits::deconstruct (T *t)
 Destroys an object.
 Dune::Amg::EdgeProperties::EdgeProperties ()
 Constructor.
std::bitset< SIZE >::reference Dune::Amg::EdgeProperties::operator[] (std::size_t v)
 Access the bits directly.
bool Dune::Amg::EdgeProperties::operator[] (std::size_t v) const
 Acess the bits directly.
bool Dune::Amg::EdgeProperties::depends () const
 Checks wether the vertex the edge points to depends on the vertex the edge starts.
void Dune::Amg::EdgeProperties::setDepends ()
 Marks the edge as one of which the end point depends on the starting point.
void Dune::Amg::EdgeProperties::resetDepends ()
 Resets the depends flag.
bool Dune::Amg::EdgeProperties::influences () const
 Checks wether the start vertex is influenced by the end vertex.
void Dune::Amg::EdgeProperties::setInfluences ()
 Marks the edge as one of which the start vertex by the end vertex.
void Dune::Amg::EdgeProperties::resetInfluences ()
 Resets the influence flag.
bool Dune::Amg::EdgeProperties::isOneWay () const
 Checks wether the edge is one way. I.e. either the influence or the depends flag but is set.
bool Dune::Amg::EdgeProperties::isTwoWay () const
 Checks wether the edge is two way. I.e. both the influence flag and the depends flag are that.
bool Dune::Amg::EdgeProperties::isStrong () const
 Checks wether the edge is strong. I.e. the influence or depends flag is set.
void Dune::Amg::EdgeProperties::reset ()
 Reset all flags.
void Dune::Amg::EdgeProperties::printFlags () const
 Prints the attributes of the edge for debugging.
 Dune::Amg::VertexProperties::VertexProperties ()
 Constructor.
std::bitset< SIZE >::reference Dune::Amg::VertexProperties::operator[] (std::size_t v)
 Access the bits directly.
bool Dune::Amg::VertexProperties::operator[] (std::size_t v) const
 Acess the bits directly.
void Dune::Amg::VertexProperties::setIsolated ()
 Marks that node as being isolated.
bool Dune::Amg::VertexProperties::isolated () const
 Checks wether the node is isolated.
void Dune::Amg::VertexProperties::resetIsolated ()
 Resets the isolated flag.
void Dune::Amg::VertexProperties::setVisited ()
 Mark the node as already visited.
bool Dune::Amg::VertexProperties::visited () const
 Checks wether the node is marked as visited.
void Dune::Amg::VertexProperties::resetVisited ()
 Resets the visited flag.
void Dune::Amg::VertexProperties::setFront ()
 Marks the node as belonging to the current clusters front.
bool Dune::Amg::VertexProperties::front () const
 Checks wether the node is marked as a front node.
void Dune::Amg::VertexProperties::resetFront ()
 Resets the front node flag.
void Dune::Amg::VertexProperties::setExcluded ()
 Marks the vertex as excluded from the aggregation.
bool Dune::Amg::VertexProperties::excluded () const
 Tests whether the vertex is excluded from the aggregation.
void Dune::Amg::VertexProperties::resetExcluded ()
 Marks the vertex as included in the aggregation.
void Dune::Amg::VertexProperties::reset ()
 Reset all flags.
 Dune::Amg::PropertyGraphVertexPropertyMap::PropertyGraphVertexPropertyMap (G &g)
 Constructor.
 Dune::Amg::PropertyGraphVertexPropertyMap::PropertyGraphVertexPropertyMap ()
 Default constructor.
Reference Dune::Amg::PropertyGraphVertexPropertyMap::operator[] (const Vertex &vertex) const
 Get the properties associated to a vertex.
template<class M, class G, class V, class Set>
M * Dune::Amg::GalerkinProduct::build (const M &fine, G &fineGraph, V &visitedMap, const ParallelInformation &pinfo, const AggregatesMap< typename G::VertexDescriptor > &aggregates, const typename M::size_type &size, const Set &copy)
 Calculates the coarse matrix via a Galerkin product.
template<class R, class G, class V>
static void Dune::Amg::BaseConnectivityConstructor::constructNonOverlapConnectivity (R &row, G &graph, V &visitedMap, const AggregatesMap< typename G::VertexDescriptor > &aggregates, const typename G::VertexDescriptor &seed)
 Construct the connectivity of an aggregate in the overlap.
 Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder::ConnectedBuilder (const AggregatesMap< Vertex > &aggregates, Graph &graph, VisitedMap &visitedMap, Set &connected)
 Constructor.
void Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder::operator() (const ConstEdgeIterator &edge)
 Process an edge pointing to another aggregate.
template<class G, class V>
int Dune::Amg::visitNeighbours (const G &graph, const typename G::VertexDescriptor &vertex, V &visitor)
 Visit all neighbour vertices of a vertex in a graph.
template<typename Graph, typename VM>
static Graph::VertexDescriptor Dune::Amg::ParallelIndicesCoarsener::coarsen (ParallelInformation &fineInfo, Graph &fineGraph, VM &visitedMap, AggregatesMap< typename Graph::VertexDescriptor > &aggregates, ParallelInformation &coarseInfo)
 Build the coarse index set after the aggregatio.
Reference Dune::Amg::RandomAccessBundledPropertyMap::operator[] (const Key &key) const
 Get the property for a key.
 Dune::Amg::RandomAccessBundledPropertyMap::RandomAccessBundledPropertyMap (Container &container)
 Constructor.
 Dune::Amg::RandomAccessBundledPropertyMap::RandomAccessBundledPropertyMap ()
 The default constructor.
 Dune::Amg::DefaultSmootherArgs::DefaultSmootherArgs ()
 Default constructor.
static void Dune::Amg::SmootherApplier::preSmooth (Smoother &smoother, Domain &v, const Range &d)
 apply pre smoothing in forward direction
static void Dune::Amg::SmootherApplier::postSmooth (Smoother &smoother, Domain &v, const Range &d)
 apply post smoothing in forward direction
 Dune::Amg::Aggregator::Counter::Counter ()
 Constructor.
 Dune::Amg::Aggregator::ConnectivityCounter::ConnectivityCounter (const VertexSet &connected, const AggregatesMap< Vertex > &aggregates)
 Constructor.
 Dune::Amg::Aggregator::DependencyCounter::DependencyCounter ()
 Constructor.
 Dune::Amg::Aggregator::FrontMarker::FrontMarker (VertexList &front, MatrixGraph &graph)
 Constructor.
 Dune::Amg::Aggregator::FrontNeighbourCounter::FrontNeighbourCounter (const MatrixGraph &front)
 Constructor.
 Dune::Amg::SparsityBuilder::SparsityBuilder (M &matrix, const AggregatesMap< V > &aggregates)
 Constructor.
template<class M, class G, class V, class Set>
M * Dune::Amg::GalerkinProduct< SequentialInformation >::build (const M &fine, G &fineGraph, V &visitedMap, const SequentialInformation &pinfo, const AggregatesMap< typename G::VertexDescriptor > &aggregates, const typename M::size_type &size, const Set &copy)
 Calculates the coarse matrix via a Galerkin product.
template<class M, class V, class I, class O>
void Dune::Amg::BaseGalerkinProduct::calculate (const M &fine, const AggregatesMap< V > &aggregates, M &coarse, const I &pinfo, const O &copy)
 Calculate the galerkin product.
 Dune::Amg::MatrixGraph::~MatrixGraph ()
 Destructor.
int Dune::Amg::MatrixGraph::noEdges () const
 Get the number of edges in the graph.
int Dune::Amg::MatrixGraph::noVertices () const
 Get the number of vertices in the graph.
VertexDescriptor Dune::Amg::MatrixGraph::maxVertex () const
 Get the maximal vertex descriptor.
EdgeDescriptor Dune::Amg::MatrixGraph::findEdge (const VertexDescriptor &source, const VertexDescriptor &target) const
 Find the descriptor of an edge.
Matrix & Dune::Amg::MatrixGraph::matrix ()
 Get the underlying matrix.
const Matrix & Dune::Amg::MatrixGraph::matrix () const
 Get the underlying matrix.
 Dune::Amg::MatrixGraph::EdgeIteratorT::EdgeIteratorT (const VertexDescriptor &source, const ColIterator &block, const ColIterator &end, const EdgeDescriptor &edge)
 Constructor.
 Dune::Amg::MatrixGraph::EdgeIteratorT::EdgeIteratorT (const ColIterator &block)
 Constructor for the end iterator.
template<class C1>
 Dune::Amg::MatrixGraph::EdgeIteratorT::EdgeIteratorT (const EdgeIteratorT< C1 > &other)
 Copy Constructor.
WeightType & Dune::Amg::MatrixGraph::EdgeIteratorT::weight () const
 Access the edge weight.
EdgeIteratorT< C > & Dune::Amg::MatrixGraph::EdgeIteratorT::operator++ ()
 preincrement operator.
VertexDescriptor Dune::Amg::MatrixGraph::EdgeIteratorT::target () const
 The index of the target vertex of the current edge.
VertexDescriptor Dune::Amg::MatrixGraph::EdgeIteratorT::source () const
 The index of the source vertex of the current edge.
const EdgeDescriptor & Dune::Amg::MatrixGraph::EdgeIteratorT::operator* () const
 Get the edge descriptor.
const EdgeDescriptor * Dune::Amg::MatrixGraph::EdgeIteratorT::operator-> () const
 Get the edge descriptor.
 Dune::Amg::MatrixGraph::VertexIteratorT::VertexIteratorT (C *graph, const VertexDescriptor &current)
 Constructor.
 Dune::Amg::MatrixGraph::VertexIteratorT::VertexIteratorT (const VertexDescriptor &current)
 Constructor for the end iterator.
bool Dune::Amg::MatrixGraph::VertexIteratorT::operator!= (const VertexIteratorT< MutableContainer > &other) const
 Inequality operator.
bool Dune::Amg::MatrixGraph::VertexIteratorT::operator!= (const VertexIteratorT< ConstContainer > &other) const
 Inequality operator.
bool Dune::Amg::MatrixGraph::VertexIteratorT::operator== (const VertexIteratorT< MutableContainer > &other) const
 Equality operator.
bool Dune::Amg::MatrixGraph::VertexIteratorT::operator== (const VertexIteratorT< ConstContainer > &other) const
 Equality operator.
VertexIteratorT< C > & Dune::Amg::MatrixGraph::VertexIteratorT::operator++ ()
 Move to the next vertex.
WeightType & Dune::Amg::MatrixGraph::VertexIteratorT::weight () const
 Access the weight of the vertex.
const VertexDescriptor & Dune::Amg::MatrixGraph::VertexIteratorT::operator* () const
 Get the descriptor of the current vertex.
EdgeIteratorT< C > Dune::Amg::MatrixGraph::VertexIteratorT::begin () const
 Get an iterator over all edges starting at the current vertex.
EdgeIteratorT< C > Dune::Amg::MatrixGraph::VertexIteratorT::end () const
 Get an iterator over all edges starting at the current vertex.
VertexIterator Dune::Amg::MatrixGraph::begin ()
 Get an iterator over the vertices.
VertexIterator Dune::Amg::MatrixGraph::end ()
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::MatrixGraph::begin () const
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::MatrixGraph::end () const
 Get an iterator over the vertices.
EdgeIterator Dune::Amg::MatrixGraph::beginEdges (const VertexDescriptor &source)
 Get an iterator over the edges starting at a vertex.
EdgeIterator Dune::Amg::MatrixGraph::endEdges (const VertexDescriptor &source)
 Get an iterator over the edges starting at a vertex.
ConstEdgeIterator Dune::Amg::MatrixGraph::beginEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex.
ConstEdgeIterator Dune::Amg::MatrixGraph::endEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex.
 Dune::Amg::SubGraph::EdgeIterator::EdgeIterator (const VertexDescriptor &source, const EdgeDescriptor &edge)
 Constructor.
 Dune::Amg::SubGraph::EdgeIterator::EdgeIterator (const EdgeDescriptor &edge)
 Constructor for the end iterator.
EdgeIndexMap Dune::Amg::SubGraph::getEdgeIndexMap ()
 Get an edge index map for the graph.
bool Dune::Amg::SubGraph::EdgeIterator::equals (const EdgeIterator &other) const
 Equality operator.
EdgeIterator & Dune::Amg::SubGraph::EdgeIterator::increment ()
 Preincrement operator.
EdgeIterator & Dune::Amg::SubGraph::EdgeIterator::decrement ()
 Preincrement operator.
const VertexDescriptor & Dune::Amg::SubGraph::EdgeIterator::source () const
 The index of the source vertex of the current edge.
const VertexDescriptor & Dune::Amg::SubGraph::EdgeIterator::target () const
 The index of the target vertex of the current edge.
const EdgeDescriptor & Dune::Amg::SubGraph::EdgeIterator::dereference () const
 The descriptor of the current edge.
 Dune::Amg::SubGraph::VertexIterator::VertexIterator (const SubGraph< G, T > *graph, const VertexDescriptor &current, const VertexDescriptor &end)
 Constructor.
 Dune::Amg::SubGraph::VertexIterator::VertexIterator (const VertexDescriptor &current)
 Constructor for end iterator.
VertexIterator & Dune::Amg::SubGraph::VertexIterator::increment ()
 Preincrement operator.
bool Dune::Amg::SubGraph::VertexIterator::equals (const VertexIterator &other) const
 Equality iterator.
const VertexDescriptor & Dune::Amg::SubGraph::VertexIterator::dereference () const
 Get the descriptor of the current vertex.
EdgeIterator Dune::Amg::SubGraph::VertexIterator::begin () const
 Get an iterator over all edges starting at the current vertex.
EdgeIterator Dune::Amg::SubGraph::VertexIterator::end () const
 Get an iterator over all edges starting at the current vertex.
ConstVertexIterator Dune::Amg::SubGraph::begin () const
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::SubGraph::end () const
 Get an iterator over the vertices.
ConstEdgeIterator Dune::Amg::SubGraph::beginEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex.
ConstEdgeIterator Dune::Amg::SubGraph::endEdges (const VertexDescriptor &source) const
 Get an iterator over the edges starting at a vertex.
int Dune::Amg::SubGraph::noVertices () const
 Get the number of vertices in the graph.
VertexDescriptor Dune::Amg::SubGraph::maxVertex () const
 Get the maximal vertex descriptor.
int Dune::Amg::SubGraph::noEdges () const
 Get the number of edges in the graph.
const EdgeDescriptor & Dune::Amg::SubGraph::findEdge (const VertexDescriptor &source, const VertexDescriptor &target) const
 Find the descriptor of an edge.
 Dune::Amg::SubGraph::~SubGraph ()
 Destructor.
 Dune::Amg::SubGraph::SubGraph (const Graph &graph, const T &excluded)
 Constructor.
EdgeIterator Dune::Amg::VertexPropertiesGraph::beginEdges (const VertexDescriptor &source)
 Get the mutable edge iterator over edges starting at a vertex.
EdgeIterator Dune::Amg::VertexPropertiesGraph::endEdges (const VertexDescriptor &source)
 Get the mutable edge iterator over edges starting at a vertex.
ConstEdgeIterator Dune::Amg::VertexPropertiesGraph::beginEdges (const VertexDescriptor &source) const
 Get the mutable edge iterator over edges starting at a vertex.
ConstEdgeIterator Dune::Amg::VertexPropertiesGraph::endEdges (const VertexDescriptor &source) const
 Get the mutable edge iterator over edges starting at a vertex.
 Dune::Amg::VertexPropertiesGraph::VertexIteratorT::VertexIteratorT (const Father &iter, C *graph)
 Constructor.
 Dune::Amg::VertexPropertiesGraph::VertexIteratorT::VertexIteratorT (const Father &iter)
 Constructor for the end iterator.
template<class C1>
 Dune::Amg::VertexPropertiesGraph::VertexIteratorT::VertexIteratorT (const VertexIteratorT< C1 > &other)
 Copy Constructor.
SelectType< is_same< C,
typename remove_const< C >
::type >::value,
VertexProperties &, const
VertexProperties & >::Type 
Dune::Amg::VertexPropertiesGraph::VertexIteratorT::properties () const
 Get the properties of the current Vertex.
EdgeIterator Dune::Amg::VertexPropertiesGraph::VertexIteratorT::begin () const
 Get an iterator over the edges starting from the current vertex.
EdgeIterator Dune::Amg::VertexPropertiesGraph::VertexIteratorT::end () const
 Get an iterator over the edges starting from the current vertex.
VertexIterator Dune::Amg::VertexPropertiesGraph::begin ()
 Get an iterator over the vertices.
VertexIterator Dune::Amg::VertexPropertiesGraph::end ()
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::VertexPropertiesGraph::begin () const
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::VertexPropertiesGraph::end () const
 Get an iterator over the vertices.
VertexProperties & Dune::Amg::VertexPropertiesGraph::getVertexProperties (const VertexDescriptor &vertex)
 Get the properties associated with a vertex.
const VertexProperties & Dune::Amg::VertexPropertiesGraph::getVertexProperties (const VertexDescriptor &vertex) const
 Get the properties associated with a vertex.
const Graph & Dune::Amg::VertexPropertiesGraph::graph () const
 Get the graph the properties are attached to.
int Dune::Amg::VertexPropertiesGraph::noVertices () const
 Get the number of vertices in the graph.
VertexDescriptor Dune::Amg::VertexPropertiesGraph::maxVertex () const
 Get the maximal vertex descriptor.
 Dune::Amg::VertexPropertiesGraph::VertexPropertiesGraph (Graph &graph, const VertexMap vmap=VertexMap())
 Constructor.
 Dune::Amg::PropertiesGraph::EdgeIteratorT::EdgeIteratorT (const Father &iter, C *graph)
 Constructor.
 Dune::Amg::PropertiesGraph::EdgeIteratorT::EdgeIteratorT (const Father &iter)
 Constructor for the end iterator.
template<class C1>
 Dune::Amg::PropertiesGraph::EdgeIteratorT::EdgeIteratorT (const EdgeIteratorT< C1 > &other)
 Copy constructor.
SelectType< is_same< C,
typename remove_const< C >
::type >::value,
EdgeProperties &, const
EdgeProperties & >::Type 
Dune::Amg::PropertiesGraph::EdgeIteratorT::properties () const
 Get the properties of the current edge.
EdgeIterator Dune::Amg::PropertiesGraph::beginEdges (const VertexDescriptor &source)
 Get the mutable edge iterator over edges starting at a vertex.
EdgeIterator Dune::Amg::PropertiesGraph::endEdges (const VertexDescriptor &source)
 Get the mutable edge iterator over edges starting at a vertex.
ConstEdgeIterator Dune::Amg::PropertiesGraph::beginEdges (const VertexDescriptor &source) const
 Get the mutable edge iterator over edges starting at a vertex.
ConstEdgeIterator Dune::Amg::PropertiesGraph::endEdges (const VertexDescriptor &source) const
 Get the mutable edge iterator over edges starting at a vertex.
 Dune::Amg::PropertiesGraph::VertexIteratorT::VertexIteratorT (const Father &iter, C *graph)
 Constructor.
 Dune::Amg::PropertiesGraph::VertexIteratorT::VertexIteratorT (const Father &iter)
 Constructor for the end iterator.
template<class C1>
 Dune::Amg::PropertiesGraph::VertexIteratorT::VertexIteratorT (const VertexIteratorT< C1 > &other)
 Copy Constructor.
SelectType< is_same< C,
typename remove_const< C >
::type >::value,
VertexProperties &, const
VertexProperties & >::Type 
Dune::Amg::PropertiesGraph::VertexIteratorT::properties () const
 Get the properties of the current Vertex.
EdgeIteratorT< C > Dune::Amg::PropertiesGraph::VertexIteratorT::begin () const
 Get an iterator over the edges starting from the current vertex.
EdgeIteratorT< C > Dune::Amg::PropertiesGraph::VertexIteratorT::end () const
 Get an iterator over the edges starting from the current vertex.
VertexIterator Dune::Amg::PropertiesGraph::begin ()
 Get an iterator over the vertices.
VertexIterator Dune::Amg::PropertiesGraph::end ()
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::PropertiesGraph::begin () const
 Get an iterator over the vertices.
ConstVertexIterator Dune::Amg::PropertiesGraph::end () const
 Get an iterator over the vertices.
VertexProperties & Dune::Amg::PropertiesGraph::getVertexProperties (const VertexDescriptor &vertex)
 Get the properties associated with a vertex.
const VertexProperties & Dune::Amg::PropertiesGraph::getVertexProperties (const VertexDescriptor &vertex) const
 Get the properties associated with a vertex.
EdgeProperties & Dune::Amg::PropertiesGraph::getEdgeProperties (const EdgeDescriptor &edge)
 Get the properties associated with a edge.
const EdgeProperties & Dune::Amg::PropertiesGraph::getEdgeProperties (const EdgeDescriptor &edge) const
 Get the properties associated with a edge.
EdgeProperties & Dune::Amg::PropertiesGraph::getEdgeProperties (const VertexDescriptor &source, const VertexDescriptor &target)
 Get the properties associated with a edge.
const EdgeProperties & Dune::Amg::PropertiesGraph::getEdgeProperties (const VertexDescriptor &source, const VertexDescriptor &target) const
 Get the properties associated with a edge.
const Graph & Dune::Amg::PropertiesGraph::graph () const
 Get the graph the properties are attached to.
int Dune::Amg::PropertiesGraph::noVertices () const
 Get the number of vertices in the graph.
VertexDescriptor Dune::Amg::PropertiesGraph::maxVertex () const
 Get the maximal vertex descriptor.
 Dune::Amg::PropertiesGraph::PropertiesGraph (Graph &graph, const VertexMap &vmap=VertexMap(), const EdgeMap &emap=EdgeMap())
 Constructor.
 Dune::Amg::MatrixHierarchy::MatrixHierarchy (const MatrixOperator &fineMatrix, const ParallelInformation &pinfo=ParallelInformation())
 Constructor.
template<typename O, typename T>
void Dune::Amg::MatrixHierarchy::build (const T &criterion)
 Build the matrix hierarchy using aggregation.
const ParallelMatrixHierarchy & Dune::Amg::MatrixHierarchy::matrices () const
 Get the matrix hierarchy.
const
ParallelInformationHierarchy & 
Dune::Amg::MatrixHierarchy::parallelInformation () const
 Get the hierarchy of the parallel data distribution information.
const AggregatesMapList & Dune::Amg::MatrixHierarchy::aggregatesMaps () const
 Get the hierarchy of the mappings of the nodes onto aggregates.
template<class V, class TA>
void Dune::Amg::MatrixHierarchy::coarsenVector (Hierarchy< BlockVector< V, TA > > &hierarchy) const
 Coarsen the vector hierarchy according to the matrix hierarchy.
template<class S, class TA>
void Dune::Amg::MatrixHierarchy::coarsenSmoother (Hierarchy< S, TA > &smoothers, const typename SmootherTraits< S >::Arguments &args) const
 Coarsen the smoother hierarchy according to the matrix hierarchy.
template<class F>
void Dune::Amg::MatrixHierarchy::recalculateGalerkin (const F &copyFlags)
 Recalculate the galerkin products.
int Dune::Amg::MatrixHierarchy::levels () const
 Get the number of levels in the hierarchy.
bool Dune::Amg::MatrixHierarchy::isBuilt () const
 Whether the hierarchy wis built.
 Dune::Amg::Hierarchy::Hierarchy ()
 Construct a new empty hierarchy.
 Dune::Amg::Hierarchy::Hierarchy (MemberType &first)
 Construct a new hierarchy.
 Dune::Amg::Hierarchy::~Hierarchy ()
 Destructor.
int Dune::Amg::Hierarchy::levels () const
 Get the number of levels in the hierarchy.
void Dune::Amg::Hierarchy::addCoarser (Arguments &args)
 Add an element on a coarser level.
void Dune::Amg::Hierarchy::addFiner (Arguments &args)
 Add an element on a finer level.
Iterator Dune::Amg::Hierarchy::finest ()
 Get an iterator positioned at the finest level.
Iterator Dune::Amg::Hierarchy::coarsest ()
 Get an iterator positioned at the coarsest level.
ConstIterator Dune::Amg::Hierarchy::finest () const
 Get an iterator positioned at the finest level.
ConstIterator Dune::Amg::Hierarchy::coarsest () const
 Get an iterator positioned at the coarsest level.

Variables

static const V Dune::Amg::AggregatesMap::ISOLATED = std::numeric_limits<V>::max()-1
 Identifier of isolated vertices.
Aggregate Dune::Amg::OverlapVertex::aggregate
 The aggregate the vertex belongs to.
Vertex Dune::Amg::OverlapVertex::vertex
 The vertex descriptor.
int Dune::Amg::DefaultSmootherArgs::iterations
 The numbe of iterations to perform.
RelaxationFactor Dune::Amg::DefaultSmootherArgs::relaxationFactor
 The relaxation factor to use.
static const V Dune::Amg::AggregatesMap::UNAGGREGATED = std::numeric_limits<V>::max()
 Identifier of not yet aggregated vertices.

Typedef Documentation

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef S Dune::Amg::AMG< M, X, S, PI, A >::Smoother [inherited]

The type of the smoother.

One of the preconditioners implementing the Preconditioner interface. Not that the smoother has to fit the ParallelInformation.


Enumeration Type Documentation

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
anonymous enum [inherited]

Enumerator:
category  The solver category.

template<typename G, std::size_t i>
anonymous enum [inherited]

Enumerator:
index  the index to access in the bitset.

template<typename C, typename K, std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
anonymous enum [inherited]

Enumerator:
index  The index of the property in the bundle.


Function Documentation

template<class T, class A>
void Dune::Amg::Hierarchy< T, A >::addCoarser ( Arguments &  args  )  [inline, inherited]

Add an element on a coarser level.

Parameters:
args The arguments needed for the construction.

Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::build(), and Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenSmoother().

template<class T, class A>
void Dune::Amg::Hierarchy< T, A >::addFiner ( Arguments &  args  )  [inline, inherited]

Add an element on a finer level.

Parameters:
args The arguments needed for the construction.

template<class G>
Dune::Amg::Aggregate< G >::Aggregate ( const MatrixGraph graph,
AggregatesMap< Vertex > &  aggregates,
VertexSet connectivity 
) [inline, inherited]

Constructor.

Parameters:
graph The matrix graph we work on.
aggregates The mapping of vertices onto aggregates.
connectivity The set of vertices connected to the aggregate. distance spheres.

template<class V>
Dune::Amg::AggregatesMap< V >::AggregatesMap ( std::size_t  noVertices  )  [inline, inherited]

Constructs with allocating memory.

Parameters:
noVertices The number of vertices we will hold information for.

References Dune::Amg::AggregatesMap< V >::allocate().

template<class M, class IS, class A>
const MatrixHierarchy< M, IS, A >::AggregatesMapList & Dune::Amg::MatrixHierarchy< M, IS, A >::aggregatesMaps (  )  const [inline, inherited]

Get the hierarchy of the mappings of the nodes onto aggregates.

Returns:
The hierarchy of the mappings of the nodes onto aggregates.

template<class G>
template<class V>
Dune::Amg::Aggregator< G >::AggregateVisitor< V >::AggregateVisitor ( const AggregatesMap< Vertex > &  aggregates,
const AggregateDescriptor aggregate,
Visitor &  visitor 
) [inline, inherited]

Constructor.

Parameters:
aggregates The aggregate numbers of the vertices.
aggregate The id of the aggregate to visit.
visitor The visitor.

template<class V>
void Dune::Amg::AggregatesMap< V >::allocate ( std::size_t  noVertices  )  [inline, inherited]

Allocate memory for holding the information.

Parameters:
noVertices The total number of vertices to be mapped.

References Dune::Amg::AggregatesMap< V >::UNAGGREGATED.

Referenced by Dune::Amg::AggregatesMap< V >::AggregatesMap().

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
template<class C>
Dune::Amg::AMG< M, X, S, PI, A >::AMG ( const Operator fineOperator,
const C &  criterion,
const SmootherArgs smootherArgs,
std::size_t  gamma = 1,
std::size_t  preSmoothingSteps = 2,
std::size_t  postSmoothingSteps = 2,
bool  additive = false,
const ParallelInformation pinfo = ParallelInformation() 
) [inline, inherited]

Construct an AMG with an inexact coarse solver based on the smoother.

As coarse solver a preconditioned CG method with the smoother as preconditioner will be used. The matrix hierarchy is built automatically.

Parameters:
fineOperator The operator on the fine level.
criterion The criterion describing the coarsening strategy. E. g. SymmetricCriterion or UnsymmetricCriterion.
smootherArgs The arguments for constructing the smoothers.
gamma 1 for V-cycle, 2 for W-cycle
preSmoothingSteps The number of smoothing steps for premoothing.
postSmoothingSteps The number of smoothing steps for postmoothing.
pinfo The information about the parallel distribution of the data.

template<class M, class X, class S, class P, class A>
Dune::Amg::AMG< M, X, S, P, A >::AMG ( const OperatorHierarchy matrices,
CoarseSolver coarseSolver,
const SmootherArgs smootherArgs,
std::size_t  gamma,
std::size_t  preSmoothingSteps,
std::size_t  postSmoothingSteps,
bool  additive = false 
) [inline, inherited]

Construct a new amg with a specific coarse solver.

Parameters:
matrices The already set up matix hierarchy.
coarseSolver The set up solver to use on the coarse grid, must natch the soarse matrix in the matrix hierachy.
smootherArgs The arguments needed for thesmoother to use for pre and post smoothing
gamma The number of subcycles. 1 for V-cycle, 2 for W-cycle.
preSmoothingSteps The number of smoothing steps for premoothing.
postSmoothingSteps The number of smoothing steps for postmoothing.

References Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenSmoother(), and Dune::Amg::MatrixHierarchy< M, PI, A >::isBuilt().

template<class M, class X, class S, class P, class A>
void Dune::Amg::AMG< M, X, S, P, A >::apply ( Domain v,
const Range d 
) [inline, virtual, inherited]

Apply one step of the preconditioner to the system A(v)=d.

On entry v=0 and d=b-A(x) (although this might not be computed in that way. On exit v contains the update, i.e one step computes $ v = M^{-1} d $ where $ M $ is the approximate inverse of the operator $ A $ characterizing the preconditioner.

Parameters:
[out] v The update to be computed
d The current defect.

Implements Dune::Preconditioner< X, X >.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::ConstVertexIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::begin (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::VertexIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::begin (  )  [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class G, class V, class E, class VM, class EM>
template<class C>
PropertiesGraph< G, V, E, VM, EM >::EdgeIteratorT< C > Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::VertexIteratorT< C >::begin (  )  const [inline, inherited]

Get an iterator over the edges starting from the current vertex.

Returns:
An iterator over the edges starting from the current vertex positioned at the first edge.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::ConstVertexIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::begin (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::VertexIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::begin (  )  [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class G, class V, class VM>
template<class C>
SelectType< is_same< typename remove_const< C >::type, C >::value, typename G::EdgeIterator, typename G::ConstEdgeIterator >::Type Dune::Amg::VertexPropertiesGraph< G, V, VM >::VertexIteratorT< C >::begin (  )  const [inline, inherited]

Get an iterator over the edges starting from the current vertex.

Returns:
An iterator over the edges starting from the current vertex positioned at the first edge.

template<class G, class T>
SubGraph< G, T >::VertexIterator Dune::Amg::SubGraph< G, T >::begin (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class G, class T>
SubGraph< G, T >::EdgeIterator Dune::Amg::SubGraph< G, T >::VertexIterator::begin (  )  const [inline, inherited]

Get an iterator over all edges starting at the current vertex.

Returns:
Iterator position on the first edge to another vertex.

template<class M>
MatrixGraph< M >::VertexIteratorT< const MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::begin (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class M>
MatrixGraph< M >::VertexIteratorT< MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::begin (  )  [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned at the first vertex.

template<class M>
template<class C>
MatrixGraph< M >::EdgeIteratorT< C > Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::begin (  )  const [inline, inherited]

Get an iterator over all edges starting at the current vertex.

Returns:
Iterator position on the first edge to another vertex.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::ConstEdgeIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::beginEdges ( const VertexDescriptor source  )  const [inline, inherited]

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.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::EdgeIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::beginEdges ( const VertexDescriptor source  )  [inline, inherited]

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.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::ConstEdgeIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::beginEdges ( const VertexDescriptor source  )  const [inline, inherited]

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.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::EdgeIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::beginEdges ( const VertexDescriptor source  )  [inline, inherited]

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.

template<class G, class T>
SubGraph< G, T >::EdgeIterator Dune::Amg::SubGraph< G, T >::beginEdges ( const VertexDescriptor source  )  const [inline, inherited]

Get an iterator over the edges starting at a vertex.

Parameters:
source The vertex where the edges should start.
Returns:
An edge iterator positioned at the first edge starting from vertex source.

template<class M>
MatrixGraph< M >::EdgeIteratorT< const MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::beginEdges ( const VertexDescriptor source  )  const [inline, inherited]

Get an iterator over the edges starting at a vertex.

Parameters:
source The vertex where the edges should start.
Returns:
An edge iterator positioned at the first edge starting from vertex source.

References Dune::Matrix< T, A >::begin(), and Dune::Amg::MatrixGraph< M >::end().

template<class M>
MatrixGraph< M >::EdgeIteratorT< MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::beginEdges ( const VertexDescriptor source  )  [inline, inherited]

Get an iterator over the edges starting at a vertex.

Parameters:
source The vertex where the edges should start.
Returns:
An edge iterator positioned at the first edge starting from vertex source.

References Dune::Matrix< T, A >::begin(), and Dune::Amg::MatrixGraph< M >::end().

Referenced by Dune::Amg::Aggregate< G >::add().

double Dune::Amg::DependencyParameters::beta (  )  const [inline, inherited]

Get the threshold for marking nodes as isolated. The default value is 1.0E-5.

Returns:
beta

template<class V>
template<bool remove, bool reset, class G, class L, class F1, class F2, class VM>
std::size_t Dune::Amg::AggregatesMap< V >::breadthFirstSearch ( const VertexDescriptor start,
const AggregateDescriptor aggregate,
G &  graph,
L &  visited,
F1 &  aggregateVisitor,
F2 &  nonAggregateVisitor,
VM &  visitedMap 
) const [inline, inherited]

Breadth first search within an aggregate.

The template parameters:

L
A container type providing push_back(Vertex), and pop_front() in case remove is true
remove
If true the entries in the visited list will be removed.
reset
If true the visited flag will be reset after the search
Parameters:
start The vertex where the search should start from. This does not need to belong to the aggregate.
aggregate The aggregate id.
graph The matrix graph to perform the search on.
visited A list to store the visited vertices in.
aggregateVisitor A functor that is called with each G::ConstEdgeIterator with an edge pointing to the aggregate. Use DummyVisitor these are of no interest.
nonAggregateVisitor A functor that is called with each G::ConstEdgeIterator with an edge pointing to another aggregate. Use DummyVisitor these are of no interest.
visitedMap A map to mark the already visited vertices

template<class V>
template<bool reset, class G, class F, class VM>
std::size_t Dune::Amg::AggregatesMap< V >::breadthFirstSearch ( const VertexDescriptor start,
const AggregateDescriptor aggregate,
G &  graph,
F &  aggregateVisitor,
VM &  visitedMap 
) const [inline, inherited]

Breadth first search within an aggregate.

The template parameters:

reset
If true the visited flags of the vertices will be reset after the search
G
The type of the graph we perform the search on.
F
The type of the visitor to operate on the vertices
Parameters:
start The vertex where the search should start from. This does not need to belong to the aggregate.
aggregate The aggregate id.
graph The matrix graph to perform the search on.
visitedMap A map to mark the already visited vertices
aggregateVisitor A functor that is called with each G::ConstEdgeIterator with an edge pointing to the aggregate. Use DummyVisitor if these are of no interest.

template<class M, class IS, class A>
template<typename O, typename T>
void Dune::Amg::MatrixHierarchy< M, IS, A >::build ( const T &  criterion  )  [inline, inherited]

Build the matrix hierarchy using aggregation.

criterion The criterion describing the aggregation process.

References Dune::Amg::Hierarchy< T, A >::addCoarser(), Dune::Amg::AggregatesMap< V >::buildAggregates(), and Dune::Amg::Hierarchy< T, A >::finest().

template<class M, class G, class V, class Set>
M * Dune::Amg::GalerkinProduct< SequentialInformation >::build ( const M &  fine,
G &  fineGraph,
V &  visitedMap,
const SequentialInformation &  pinfo,
const AggregatesMap< typename G::VertexDescriptor > &  aggregates,
const typename M::size_type &  size,
const Set &  copy 
) [inline, inherited]

Calculates the coarse matrix via a Galerkin product.

Parameters:
fine The matrix on the fine level.
fineGraph The graph of the fine matrix.
visitedMap Map for marking vertices as visited.
pinfo Parallel information about the fine level.
aggregates The mapping of the fine level unknowns onto aggregates.
size The number of columns and rows of the coarse matrix.
copy The attribute set identifying the copy nodes of the graph.

References Dune::Amg::SparsityBuilder< M, V >::maxRowSize(), Dune::Amg::SparsityBuilder< M, V >::minRowSize(), and Dune::Amg::SparsityBuilder< M, V >::sumRowSize().

template<class T>
template<class M, class G, class V, class Set>
M * Dune::Amg::GalerkinProduct< T >::build ( const M &  fine,
G &  fineGraph,
V &  visitedMap,
const ParallelInformation &  pinfo,
const AggregatesMap< typename G::VertexDescriptor > &  aggregates,
const typename M::size_type &  size,
const Set &  copy 
) [inline, inherited]

Calculates the coarse matrix via a Galerkin product.

Parameters:
fine The matrix on the fine level.
fineGraph The graph of the fine matrix.
visitedMap Map for marking vertices as visited.
pinfo Parallel information about the fine level.
aggregates The mapping of the fine level unknowns onto aggregates.
size The number of columns and rows of the coarse matrix.
copy The attribute set identifying the copy nodes of the graph.

References Dune::Amg::SparsityBuilder< M, V >::maxRowSize(), Dune::Amg::SparsityBuilder< M, V >::minRowSize(), and Dune::Amg::SparsityBuilder< M, V >::sumRowSize().

template<class G>
template<class M, class C>
Tuple< int, int, int > Dune::Amg::Aggregator< G >::build ( const M &  m,
G &  graph,
AggregatesMap< Vertex > &  aggregates,
const C &  c 
) [inline, inherited]

Build the aggregates.

The template parameter C Is the type of the coarsening Criterion to use.

Parameters:
m The matrix to build the aggregates accordingly.
graph A (sub) graph of the matrix.
aggregates Aggregate map we will build. All entries should be initialized to UNAGGREGATED!
c The coarsening criterion to use.
Returns:
The number of (not skipped) aggregates built.

Referenced by Dune::Amg::AggregatesMap< V >::buildAggregates().

template<typename V>
template<typename M, typename G, typename C>
Tuple< int, int, int > Dune::Amg::AggregatesMap< V >::buildAggregates ( const M &  matrix,
G &  graph,
const C &  criterion 
) [inline, inherited]

Build the aggregates.

Parameters:
matrix The matrix describing the dependency.
graph The graph corresponding to the matrix.
criterion The aggregation criterion.
Returns:
The number of aggregates built.

References Dune::Amg::Aggregator< G >::build().

Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::build().

template<class M, class V, class P, class O>
void Dune::Amg::BaseGalerkinProduct::calculate ( const M &  fine,
const AggregatesMap< V > &  aggregates,
M &  coarse,
const P &  pinfo,
const O &  copy 
) [inline, inherited]

Calculate the galerkin product.

Parameters:
fine The fine matrix.
aggregates The aggregate mapping.
coarse The coarse Matrix.
pinfo Parallel information about the fine level.
copy The attribute set identifying the copy nodes of the graph.

template<typename T, typename E>
template<typename Graph, typename VM>
Graph::VertexDescriptor Dune::Amg::ParallelIndicesCoarsener< T, E >::coarsen ( ParallelInformation &  fineInfo,
Graph &  fineGraph,
VM &  visitedMap,
AggregatesMap< typename Graph::VertexDescriptor > &  aggregates,
ParallelInformation &  coarseInfo 
) [inline, static, inherited]

Build the coarse index set after the aggregatio.

Parameters:
fineInfo The parallel information at the fine level.
fineGraph The graph of the fine lecel,
visitedMap Map for marking vertices as visited.
aggregates The mapping of unknowns onto aggregates.
coarseInfo The information about the parallel data decomposition on the coarse level.
Returns:
The number of unknowns on the coarse level.

template<class M, class IS, class A>
template<class S, class TA>
void Dune::Amg::MatrixHierarchy< M, IS, A >::coarsenSmoother ( Hierarchy< S, TA > &  smoothers,
const typename SmootherTraits< S >::Arguments &  args 
) const [inline, inherited]

Coarsen the smoother hierarchy according to the matrix hierarchy.

Parameters:
smoothers The smoother hierarchy to coarsen.
args The arguments for the construction of the coarse level smoothers.

References Dune::Amg::Hierarchy< T, A >::addCoarser(), Dune::Amg::Hierarchy< T, A >::coarsest(), Dune::Amg::Hierarchy< T, A >::finest(), and Dune::Amg::Hierarchy< T, A >::levels().

Referenced by Dune::Amg::AMG< M, X, S, PI, A >::AMG().

template<class M, class IS, class A>
template<class V, class TA>
void Dune::Amg::MatrixHierarchy< M, IS, A >::coarsenVector ( Hierarchy< BlockVector< V, TA > > &  hierarchy  )  const [inline, inherited]

Coarsen the vector hierarchy according to the matrix hierarchy.

Parameters:
hierarchy The vector hierarchy to coarsen.

References Dune::Amg::Hierarchy< T, A >::coarsest(), and Dune::Amg::Hierarchy< T, A >::finest().

template<class T, class A>
Hierarchy< T, A >::ConstIterator Dune::Amg::Hierarchy< T, A >::coarsest (  )  const [inline, inherited]

Get an iterator positioned at the coarsest level.

Returns:
An iterator positioned at the coarsest level.

template<class T, class A>
Hierarchy< T, A >::Iterator Dune::Amg::Hierarchy< T, A >::coarsest (  )  [inline, inherited]

Get an iterator positioned at the coarsest level.

Returns:
An iterator positioned at the coarsest level.

Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenSmoother(), Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenVector(), and Dune::Amg::MatrixHierarchy< M, PI, A >::recalculateGalerkin().

template<class G, class S, class V>
Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::ConnectedBuilder ( const AggregatesMap< Vertex > &  aggregates,
Graph graph,
VisitedMap visitedMap,
Set connected 
) [inline, inherited]

Constructor.

Parameters:
aggregates The mapping of the vertices onto the aggregates.
graph The graph to work on.
visitedMap The map for marking vertices as visited
connected The set to added the connected aggregates to.

template<class G>
Dune::Amg::Aggregator< G >::ConnectivityCounter::ConnectivityCounter ( const VertexSet &  connected,
const AggregatesMap< Vertex > &  aggregates 
) [inline, inherited]

Constructor.

Parameters:
connected The set of connected aggregates.
aggregates Mapping of the vertices onto the aggregates.
aggregates The mapping of aggregates to vertices.

template<typename T>
static T* Dune::Amg::ConstructionTraits< T >::construct ( Arguments args  )  [inline, static, inherited]

Construct an object with the specified arguments.

In the default implementation the copy constructor is called.

Parameters:
args The arguments for the construction.

template<class T>
int Dune::Amg::AggregationCriterion< T >::debugLevel (  )  const [inline, inherited]

Get the debugging Level.

Returns:
0 if no debugging output will be generated.

template<typename T>
static void Dune::Amg::ConstructionTraits< T >::deconstruct ( T *  t  )  [inline, static, inherited]

Destroys an object.

Parameters:
t Pointer to the object to destroy.

bool Dune::Amg::EdgeProperties::depends (  )  const [inline, inherited]

Checks wether the vertex the edge points to depends on the vertex the edge starts.

Returns:
True if it depends on the starting point.

template<class G, class T>
const G::VertexDescriptor & Dune::Amg::SubGraph< G, T >::VertexIterator::dereference (  )  const [inline, inherited]

Get the descriptor of the current vertex.

Returns:
The index of the currently referenced vertex.

template<class G, class T>
Dune::Amg::SubGraph< G, T >::EdgeIterator::EdgeIterator ( const EdgeDescriptor &  edge  )  [inline, explicit, inherited]

Constructor for the end iterator.

Only operator== or operator!= can be called safely on an iterator constructed this way!

Parameters:
edge Pointer to the end of the graph's edge array.

template<class G, class T>
Dune::Amg::SubGraph< G, T >::EdgeIterator::EdgeIterator ( const VertexDescriptor source,
const EdgeDescriptor &  edge 
) [inline, explicit, inherited]

Constructor.

Parameters:
source The source vertex of the edge.
edge Pointer to the edge the iterator should point to.

template<class G, class V, class E, class VM, class EM>
template<class C>
template<class C1>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::EdgeIteratorT< C >::EdgeIteratorT ( const EdgeIteratorT< C1 > &  other  )  [inline, inherited]

Copy constructor.

Parameters:
other the iterator to copy.

template<class G, class V, class E, class VM, class EM>
template<class C>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::EdgeIteratorT< C >::EdgeIteratorT ( const Father &  iter  )  [inline, explicit, inherited]

Constructor for the end iterator.

Only operator== or operator!= should be called on an iterator constructed this way.

Parameters:
iter The iterator of the underlying graph.

template<class G, class V, class E, class VM, class EM>
template<class C>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::EdgeIteratorT< C >::EdgeIteratorT ( const Father &  iter,
C *  graph 
) [inline, explicit, inherited]

Constructor.

Parameters:
iter The iterator of the underlying graph.
graph The graph over whose edges we iterate on.

template<class M>
template<class C>
template<class C1>
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::EdgeIteratorT ( const EdgeIteratorT< C1 > &  other  )  [inline, inherited]

Copy Constructor.

Parameters:
other The iterator to copy.

template<class M>
template<class C>
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::EdgeIteratorT ( const ColIterator block  )  [inline, inherited]

Constructor for the end iterator.

Variables not needed by operator== or operator!= will not be initialized.

Parameters:
block The matrix column block the iterator is initialized to.

template<class M>
template<class C>
Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::EdgeIteratorT ( const VertexDescriptor source,
const ColIterator block,
const ColIterator end,
const EdgeDescriptor edge 
) [inline, inherited]

Constructor.

Parameters:
source The source vertex of the edges.
block The matrix column block the iterator is initialized to,
end The end iterator of the matrix row.
edge The edge descriptor of the current edge.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::ConstVertexIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::end (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::VertexIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::end (  )  [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

Referenced by Dune::Amg::visitNeighbours().

template<class G, class V, class E, class VM, class EM>
template<class C>
PropertiesGraph< G, V, E, VM, EM >::EdgeIteratorT< C > Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::VertexIteratorT< C >::end (  )  const [inline, inherited]

Get an iterator over the edges starting from the current vertex.

Returns:
An iterator over the edges starting from the current vertex positioned after the last edge.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::ConstVertexIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::end (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::VertexIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::end (  )  [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

template<class G, class V, class VM>
template<class C>
SelectType< is_same< typename remove_const< C >::type, C >::value, typename G::EdgeIterator, typename G::ConstEdgeIterator >::Type Dune::Amg::VertexPropertiesGraph< G, V, VM >::VertexIteratorT< C >::end (  )  const [inline, inherited]

Get an iterator over the edges starting from the current vertex.

Returns:
An iterator over the edges starting from the current vertex positioned after the last edge.

template<class G, class T>
SubGraph< G, T >::VertexIterator Dune::Amg::SubGraph< G, T >::end (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

template<class G, class T>
SubGraph< G, T >::EdgeIterator Dune::Amg::SubGraph< G, T >::VertexIterator::end (  )  const [inline, inherited]

Get an iterator over all edges starting at the current vertex.

Returns:
Iterator position on the first edge to another vertex.

template<class M>
MatrixGraph< M >::VertexIteratorT< const MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::end (  )  const [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

References Dune::Matrix< T, A >::N().

template<class M>
MatrixGraph< M >::VertexIteratorT< MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::end (  )  [inline, inherited]

Get an iterator over the vertices.

Returns:
A vertex Iterator positioned behind the last vertex.

References Dune::Matrix< T, A >::N().

Referenced by Dune::Amg::MatrixGraph< M >::beginEdges(), and Dune::Amg::MatrixGraph< M >::findEdge().

template<class M>
template<class C>
MatrixGraph< M >::EdgeIteratorT< C > Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::end (  )  const [inline, inherited]

Get an iterator over all edges starting at the current vertex.

Returns:
Iterator position on the first edge to another vertex.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::ConstEdgeIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::endEdges ( const VertexDescriptor source  )  const [inline, inherited]

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.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::EdgeIterator Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::endEdges ( const VertexDescriptor source  )  [inline, inherited]

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.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::ConstEdgeIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::endEdges ( const VertexDescriptor source  )  const [inline, inherited]

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.

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::EdgeIterator Dune::Amg::VertexPropertiesGraph< G, V, VM >::endEdges ( const VertexDescriptor source  )  [inline, inherited]

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.

template<class G, class T>
SubGraph< G, T >::EdgeIterator Dune::Amg::SubGraph< G, T >::endEdges ( const VertexDescriptor source  )  const [inline, inherited]

Get an iterator over the edges starting at a vertex.

Parameters:
source The vertex where the edges should start.
Returns:
An edge iterator positioned behind the last edge starting from vertex source.

template<class M>
MatrixGraph< M >::EdgeIteratorT< const MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::endEdges ( const VertexDescriptor source  )  const [inline, inherited]

Get an iterator over the edges starting at a vertex.

Parameters:
source The vertex where the edges should start.
Returns:
An edge iterator positioned behind the last edge starting from vertex source.

References Dune::Matrix< T, A >::end().

template<class M>
MatrixGraph< M >::EdgeIteratorT< MatrixGraph< M > > Dune::Amg::MatrixGraph< M >::endEdges ( const VertexDescriptor source  )  [inline, inherited]

Get an iterator over the edges starting at a vertex.

Parameters:
source The vertex where the edges should start.
Returns:
An edge iterator positioned behind the last edge starting from vertex source.

References Dune::Matrix< T, A >::end().

Referenced by Dune::Amg::Aggregate< G >::add().

bool Dune::Amg::VertexProperties::excluded (  )  const [inherited]

Tests whether the vertex is excluded from the aggregation.

Returns:
True if the vertex is excluded from the aggregation process.

template<class G, class T>
const SubGraph< G, T >::EdgeDescriptor & Dune::Amg::SubGraph< G, T >::findEdge ( const VertexDescriptor source,
const VertexDescriptor target 
) const [inline, inherited]

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.

template<class M>
MatrixGraph< M >::EdgeDescriptor Dune::Amg::MatrixGraph< M >::findEdge ( const VertexDescriptor source,
const VertexDescriptor target 
) const [inline, inherited]

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.

References Dune::Amg::MatrixGraph< M >::end(), Dune::Matrix< T, A >::exists(), and Dune::Amg::MatrixGraph< M >::noEdges().

template<class T, class A>
Hierarchy< T, A >::ConstIterator Dune::Amg::Hierarchy< T, A >::finest (  )  const [inline, inherited]

Get an iterator positioned at the finest level.

Returns:
An iterator positioned at the finest level.

template<class T, class A>
Hierarchy< T, A >::Iterator Dune::Amg::Hierarchy< T, A >::finest (  )  [inline, inherited]

template<class G>
Dune::Amg::Aggregator< G >::FrontMarker::FrontMarker ( VertexList &  front,
MatrixGraph graph 
) [inline, inherited]

Constructor.

Parameters:
front The list to store the front vertices in.
graph The matrix graph we work on.

template<class G>
Dune::Amg::Aggregator< G >::FrontNeighbourCounter::FrontNeighbourCounter ( const MatrixGraph front  )  [inline, inherited]

Constructor.

Parameters:
front The vertices of the front.

template<class G, class T>
SubGraph< G, T >::EdgeIndexMap Dune::Amg::SubGraph< G, T >::getEdgeIndexMap (  )  [inline, inherited]

Get an edge index map for the graph.

Returns:
An edge index map for the graph.

template<class G, class V, class E, class VM, class EM>
const E & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::getEdgeProperties ( const VertexDescriptor source,
const VertexDescriptor target 
) const [inline, inherited]

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.

template<class G, class V, class E, class VM, class EM>
E & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::getEdgeProperties ( const VertexDescriptor source,
const VertexDescriptor target 
) [inline, inherited]

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.

template<class G, class V, class E, class VM, class EM>
const E & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::getEdgeProperties ( const EdgeDescriptor edge  )  const [inline, inherited]

Get the properties associated with a edge.

Parameters:
edge The descriptor identifying the edge.
Returns:
The properties of the edge.

template<class G, class V, class E, class VM, class EM>
E & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::getEdgeProperties ( const EdgeDescriptor edge  )  [inline, inherited]

Get the properties associated with a edge.

Parameters:
edge The descriptor identifying the edge.
Returns:
The properties of the edge.

template<class G, class V, class E, class VM, class EM>
const V & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::getVertexProperties ( const VertexDescriptor vertex  )  const [inline, inherited]

Get the properties associated with a vertex.

Parameters:
vertex The descriptor identifying the vertex.
Returns:
The properties of the vertex.

template<class G, class V, class E, class VM, class EM>
V & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::getVertexProperties ( const VertexDescriptor vertex  )  [inline, inherited]

Get the properties associated with a vertex.

Parameters:
vertex The descriptor identifying the vertex.
Returns:
The properties of the vertex.

template<class G, class V, class VM>
const V & Dune::Amg::VertexPropertiesGraph< G, V, VM >::getVertexProperties ( const VertexDescriptor vertex  )  const [inline, inherited]

Get the properties associated with a vertex.

Parameters:
vertex The descriptor identifying the vertex.
Returns:
The properties of the vertex.

template<class G, class V, class VM>
V & Dune::Amg::VertexPropertiesGraph< G, V, VM >::getVertexProperties ( const VertexDescriptor vertex  )  [inline, inherited]

Get the properties associated with a vertex.

Parameters:
vertex The descriptor identifying the vertex.
Returns:
The properties of the vertex.

template<class G, class V, class E, class VM, class EM>
const G & Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::graph (  )  const [inline, inherited]

Get the graph the properties are attached to.

Returns:
The underlying graph.

template<class G, class V, class VM>
const G & Dune::Amg::VertexPropertiesGraph< G, V, VM >::graph (  )  const [inline, inherited]

Get the graph the properties are attached to.

Returns:
The underlying graph.

template<class T, class A>
Dune::Amg::Hierarchy< T, A >::Hierarchy ( MemberType first  )  [inline, inherited]

Construct a new hierarchy.

Parameters:
first The first element in the hierarchy.

bool Dune::Amg::EdgeProperties::influences (  )  const [inline, inherited]

Checks wether the start vertex is influenced by the end vertex.

Returns:
True if it is influenced.

template<class M, class IS, class A>
bool Dune::Amg::MatrixHierarchy< M, IS, A >::isBuilt (  )  const [inline, inherited]

Whether the hierarchy wis built.

Returns:
true if the coarsen method was called.

Referenced by Dune::Amg::AMG< M, X, S, PI, A >::AMG().

template<class T, class A>
int Dune::Amg::Hierarchy< T, A >::levels (  )  const [inline, inherited]

Get the number of levels in the hierarchy.

Returns:
The number of levels.

Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenSmoother(), and Dune::Amg::MatrixHierarchy< M, PI, A >::levels().

template<class M, class IS, class A>
int Dune::Amg::MatrixHierarchy< M, IS, A >::levels (  )  const [inline, inherited]

Get the number of levels in the hierarchy.

Returns:
The number of levels.

References Dune::Amg::Hierarchy< T, A >::levels().

template<class M, class IS, class A>
const MatrixHierarchy< M, IS, A >::ParallelMatrixHierarchy & Dune::Amg::MatrixHierarchy< M, IS, A >::matrices (  )  const [inline, inherited]

Get the matrix hierarchy.

Returns:
The matrix hierarchy.

template<class M>
const M & Dune::Amg::MatrixGraph< M >::matrix (  )  const [inline, inherited]

Get the underlying matrix.

Returns:
The matrix of the graph.

template<class M>
M & Dune::Amg::MatrixGraph< M >::matrix (  )  [inline, inherited]

Get the underlying matrix.

Returns:
The matrix of the graph.

template<class M, class IS, class A>
Dune::Amg::MatrixHierarchy< M, IS, A >::MatrixHierarchy ( const MatrixOperator fineMatrix,
const ParallelInformation pinfo = ParallelInformation() 
) [inline, inherited]

Constructor.

Parameters:
fineMatrix The matrix to coarsen.
pinfo The information about the parallel data decomposition at the first level.

References Dune::SolverCategory::overlapping, and Dune::SolverCategory::sequential.

template<class T>
std::size_t Dune::Amg::AggregationCriterion< T >::maxAggregateSize (  )  const [inline, inherited]

Get the maximum number of nodes a aggregate is allowed to have.

Returns:
The maximum number of nodes.

template<class T>
std::size_t Dune::Amg::AggregationCriterion< T >::maxConnectivity (  )  const [inline, inherited]

Get the maximum number of connections a aggregate is allowed to have.

This limit exists to achieve sparsity of the coarse matrix. the default value is 15.

Returns:
The maximum number of connections a aggregate is allowed to have.

template<class T>
std::size_t Dune::Amg::AggregationCriterion< T >::maxDistance (  )  const [inline, inherited]

Get the maximal distance allowed between to nodes in a aggregate.

The distance between two nodes in a aggregate is the minimal number of edges it takes to travel from one node to the other without leaving the aggregate.

Returns:
The maximum distance allowed.

template<class G, class V, class E, class VM, class EM>
PropertiesGraph< G, V, E, VM, EM >::VertexDescriptor Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::maxVertex (  )  const [inline, inherited]

Get the maximal vertex descriptor.

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

template<class G, class V, class VM>
VertexPropertiesGraph< G, V, VM >::VertexDescriptor Dune::Amg::VertexPropertiesGraph< G, V, VM >::maxVertex (  )  const [inline, inherited]

Get the maximal vertex descriptor.

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

template<class G, class T>
SubGraph< G, T >::VertexDescriptor Dune::Amg::SubGraph< G, T >::maxVertex (  )  const [inline, inherited]

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>
MatrixGraph< M >::VertexDescriptor Dune::Amg::MatrixGraph< M >::maxVertex (  )  const [inline, inherited]

Get the maximal vertex descriptor.

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

References Dune::Matrix< T, A >::N().

template<class T>
std::size_t Dune::Amg::AggregationCriterion< T >::minAggregateSize (  )  const [inline, inherited]

Get the minimum number of nodes a aggregate has to consist of.

Returns:
The minimum number of nodes.

template<class G, class S, class V>
void Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::operator() ( const ConstEdgeIterator edge  )  [inline, inherited]

Process an edge pointing to another aggregate.

Parameters:
edge The iterator positioned at the edge.

template<class G>
template<class V>
void Dune::Amg::Aggregator< G >::AggregateVisitor< V >::operator() ( const typename MatrixGraph::ConstEdgeIterator edge  )  [inline, inherited]

Examine an edge.

The edge will be examined by the adapted visitor if it belongs to the right aggregate.

References Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::target().

template<class M>
template<class C>
const MatrixGraph< M >::VertexDescriptor & Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator* (  )  const [inline, inherited]

Get the descriptor of the current vertex.

Returns:
The index of the currently referenced vertex.

template<class M>
template<class C>
MatrixGraph< M >::VertexIteratorT< C > & Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator++ (  )  [inline, inherited]

Move to the next vertex.

Returns:
This iterator positioned at the next vertex.

template<typename C, typename K, std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
Reference Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::operator[] ( const Key key  )  const [inline, inherited]

Get the property for a key.

Parameters:
key The key.
Returns:
The corresponding property.

References Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::index.

template<typename G, std::size_t i>
Reference Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::operator[] ( const Vertex &  vertex  )  const [inline, inherited]

Get the properties associated to a vertex.

Parameters:
vertex The vertex whose Properties we want.

template<class V>
const AggregatesMap< V >::AggregateDescriptor & Dune::Amg::AggregatesMap< V >::operator[] ( const VertexDescriptor v  )  const [inline, inherited]

Get the aggregate a vertex belongs to.

Parameters:
v The vertex we want to know the aggregate of.
Returns:
The aggregate the vertex is mapped to.

template<class V>
AggregatesMap< V >::AggregateDescriptor & Dune::Amg::AggregatesMap< V >::operator[] ( const VertexDescriptor v  )  [inline, inherited]

Get the aggregate a vertex belongs to.

Parameters:
v The vertex we want to know the aggregate of.
Returns:
The aggregate the vertex is mapped to.

template<class M, class IS, class A>
const MatrixHierarchy< M, IS, A >::ParallelInformationHierarchy & Dune::Amg::MatrixHierarchy< M, IS, A >::parallelInformation (  )  const [inline, inherited]

Get the hierarchy of the parallel data distribution information.

Returns:
The hierarchy of the parallel data distribution information.

template<class M, class X, class S, class P, class A>
void Dune::Amg::AMG< M, X, S, P, A >::post ( Domain x  )  [inline, virtual, inherited]

Clean up.

This method is called after the last apply call for the linear system to be solved. Memory may be deallocated safely here. x is the solution of the linear equation.

Parameters:
x The right hand side of the equation.

Implements Dune::Preconditioner< X, X >.

template<class T>
static void Dune::Amg::SmootherApplier< T >::postSmooth ( Smoother &  smoother,
Domain &  v,
const Range &  d 
) [inline, static, inherited]

apply post smoothing in forward direction

Parameters:
smoother The smoother to use.
d The current defect.
v handle to store the update in.

template<class M, class X, class S, class P, class A>
void Dune::Amg::AMG< M, X, S, P, A >::pre ( Domain x,
Range b 
) [inline, virtual, inherited]

Prepare the preconditioner.

A solver solves a linear operator equation A(x)=b by applying one or several steps of the preconditioner. The method pre() is called before the first apply operation. b and x are right hand side and solution vector of the linear system respectively. It may. e.g., scale the system, allocate memory or compute a (I)LU decomposition. Note: The ILU decomposition could also be computed in the constructor or with a separate method of the derived method if several linear systems with the same matrix are to be solved.

Parameters:
x The left hand side of the equation.
b The right hand side of the equation.

Implements Dune::Preconditioner< X, X >.

References Dune::Amg::DefaultSmootherArgs< T >::iterations.

template<class T>
static void Dune::Amg::SmootherApplier< T >::preSmooth ( Smoother &  smoother,
Domain &  v,
const Range &  d 
) [inline, static, inherited]

apply pre smoothing in forward direction

Parameters:
smoother The smoother to use.
d The current defect.
v handle to store the update in.

template<class G, class V, class E, class VM, class EM>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::PropertiesGraph ( Graph graph,
const VertexMap vmap = VertexMap(),
const EdgeMap emap = EdgeMap() 
) [inline, inherited]

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.

template<typename G, std::size_t i>
Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::PropertyGraphVertexPropertyMap ( G &  g  )  [inline, inherited]

Constructor.

Parameters:
g The graph whose properties we access.

template<typename C, typename K, std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::RandomAccessBundledPropertyMap ( Container container  )  [inline, inherited]

Constructor.

Parameters:
container The container with the property bundle.

template<class M, class IS, class A>
template<class F>
void Dune::Amg::MatrixHierarchy< M, IS, A >::recalculateGalerkin ( const F &  copyFlags  )  [inline, inherited]

Recalculate the galerkin products.

If the data of the fine matrix changes but not its sparsity pattern this will recalculate all coarser level without starting the expensive aggregation process all over again.

References Dune::Amg::Hierarchy< T, A >::coarsest(), and Dune::Amg::Hierarchy< T, A >::finest().

template<class G>
void Dune::Amg::Aggregate< G >::reconstruct ( const Vertex vertex  )  [inline, inherited]

Reconstruct the aggregat from an seed node.

Will determine all vertices of the same agggregate and reference those.

References Dune::Amg::Aggregate< G >::begin(), and Dune::Amg::Aggregate< G >::end().

template<class T>
void Dune::Amg::AggregationCriterion< T >::setDebugLevel ( int  level  )  [inline, inherited]

Set the debugging level.

Parameters:
level If 0 no debugging output will be generated.

void Dune::Amg::VertexProperties::setIsolated (  )  [inline, inherited]

Marks that node as being isolated.

A node is isolated if it ha not got any strong connections to other nodes in the matrix graph.

template<class T>
void Dune::Amg::AggregationCriterion< T >::setMaxAggregateSize ( std::size_t  size  )  [inline, inherited]

Set the maximum number of nodes a aggregate is allowed to have.

The default values is 6.

Parameters:
size The maximum number of nodes.

template<class T>
void Dune::Amg::AggregationCriterion< T >::setMaxConnectivity ( std::size_t  connectivity  )  [inline, inherited]

Set the maximum number of connections a aggregate is allowed to have.

This limit exists to achieve sparsity of the coarse matrix. the default value is 15.

Parameters:
connectivity The maximum number of connections a aggregate is allowed to have.

template<class T>
void Dune::Amg::AggregationCriterion< T >::setMaxDistance ( std::size_t  distance  )  [inline, inherited]

Set the maximal distance allowed between to nodes in a aggregate.

The distance between two nodes in a aggregate is the minimal number of edges it takes to travel from one node to the other without leaving the aggregate. The default value is 2.

Parameters:
distance The maximum distance allowed.

template<class T>
void Dune::Amg::AggregationCriterion< T >::setMinAggregateSize ( std::size_t  size  )  [inline, inherited]

Set the minimum number of nodes a aggregate has to consist of.

the default value is 4.

Returns:
The minimum number of nodes.

template<class M, class V>
Dune::Amg::SparsityBuilder< M, V >::SparsityBuilder ( M &  matrix,
const AggregatesMap< V > &  aggregates 
) [inline, inherited]

Constructor.

Parameters:
matrix The matrix whose sparsity pattern we should set up.
aggregates THe mapping of the vertices onto the aggregates.

template<class G, class T>
Dune::Amg::SubGraph< G, T >::SubGraph ( const Graph graph,
const T &  excluded 
) [inline, inherited]

Constructor.

Parameters:
graph The graph we are a sub graph for.
excluded If excluded[i] is true then vertex i will not appear in the sub graph.

template<class G, class T>
Dune::Amg::SubGraph< G, T >::VertexIterator::VertexIterator ( const VertexDescriptor current  )  [inline, explicit, inherited]

Constructor for end iterator.

Use with care! All operations except operator== or operator!= will fail!

Parameters:
current The position of the iterator.

template<class G, class T>
Dune::Amg::SubGraph< G, T >::VertexIterator::VertexIterator ( const SubGraph< G, T > *  graph,
const VertexDescriptor current,
const VertexDescriptor end 
) [inline, explicit, inherited]

Constructor.

Parameters:
graph The graph over whose vertices to iterate.
current The position of the iterator.
end The last vertex of the graph.

template<class G, class V, class E, class VM, class EM>
template<class C>
template<class C1>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::VertexIteratorT< C >::VertexIteratorT ( const VertexIteratorT< C1 > &  other  )  [inline, inherited]

Copy Constructor.

Parameters:
other The iterator to copy.

template<class G, class V, class E, class VM, class EM>
template<class C>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::VertexIteratorT< C >::VertexIteratorT ( const Father &  iter  )  [inline, explicit, inherited]

Constructor for the end iterator.

Only operator!= or operator== can be called safely on an iterator constructed this way.

Parameters:
iter The iterator of the underlying graph.

template<class G, class V, class E, class VM, class EM>
template<class C>
Dune::Amg::PropertiesGraph< G, V, E, VM, EM >::VertexIteratorT< C >::VertexIteratorT ( const Father &  iter,
C *  graph 
) [inline, explicit, inherited]

Constructor.

Parameters:
iter The iterator of the underlying graph.
graph The property graph over whose vertices we iterate.

template<class G, class V, class VM>
template<class C>
template<class C1>
Dune::Amg::VertexPropertiesGraph< G, V, VM >::VertexIteratorT< C >::VertexIteratorT ( const VertexIteratorT< C1 > &  other  )  [inline, inherited]

Copy Constructor.

Parameters:
other The iterator to copy.

template<class G, class V, class VM>
template<class C>
Dune::Amg::VertexPropertiesGraph< G, V, VM >::VertexIteratorT< C >::VertexIteratorT ( const Father &  iter  )  [inline, explicit, inherited]

Constructor for the end iterator.

Only operator!= or operator== can be calles safely on an iterator constructed this way.

Parameters:
iter The iterator of the underlying graph.

template<class G, class V, class VM>
template<class C>
Dune::Amg::VertexPropertiesGraph< G, V, VM >::VertexIteratorT< C >::VertexIteratorT ( const Father &  iter,
C *  graph 
) [inline, explicit, inherited]

Constructor.

Parameters:
iter The iterator of the underlying graph.
graph The property graph over whose vertices we iterate.

template<class M>
template<class C>
Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::VertexIteratorT ( const VertexDescriptor current  )  [inline, explicit, inherited]

Constructor for the end iterator.

only operator== or operator!= may be called safely on an iterator constructed this way.

Parameters:
current The current vertex to position on.

template<class M>
template<class C>
Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::VertexIteratorT ( C *  graph,
const VertexDescriptor current 
) [inline, explicit, inherited]

Constructor.

Parameters:
graph The graph we are a vertex iterator for.
current The current vertex to position on.

template<class G, class V, class VM>
Dune::Amg::VertexPropertiesGraph< G, V, VM >::VertexPropertiesGraph ( Graph graph,
const VertexMap  vmap = VertexMap() 
) [inline, inherited]

Constructor.

Parameters:
graph The graph we attach properties to.
vmap The vertex map.

template<class G, class V>
int Dune::Amg::visitNeighbours ( const G &  graph,
const typename G::VertexDescriptor &  vertex,
V &  visitor 
) [inline]

Visit all neighbour vertices of a vertex in a graph.

Parameters:
graph The graph whose vertices to visit.
vertex The vertex whose neighbours we want to visit.
visitor The visitor evaluated for each EdgeIterator (by its method operator()(const ConstEdgeIterator& edge)
Returns:
The number of neighbours of the vertex.

References Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::end().

Generated on 6 Nov 2008 with Doxygen (ver 1.5.6) [logfile].