dune-istl  2.4
Files | Namespaces | Classes | Typedefs | Enumerations | Enumerator | Functions | Variables | Friends

A Parallel Algebraic Multigrid based on Agglomeration. More...

Collaboration diagram for Parallel Algebraic Multigrid:

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  globalaggregates.hh
 Provdes class for identifying aggregates globally.
 
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  kamg.hh
 Provides an algebraic multigrid using a Krylov cycle.
 
file  parameters.hh
 Parameter classes for customizing AMG.
 
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.
 
file  twolevelmethod.hh
 Algebraic twolevel methods.
 

Namespaces

 Dune
 
 Dune::Amg
 

Classes

class  Dune::Amg::AggregationCriterion< T >
 Base class of all aggregation criterions. More...
 
class  Dune::Amg::SymmetricMatrixDependency< M, N >
 Dependency policy for symmetric matrices. 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::Diagonal< N >
 Norm that uses only the [N][N] entry of the block to determine couplings. 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...
 
struct  Dune::Amg::FrobeniusNorm
 
struct  Dune::Amg::AlwaysOneNorm
 
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::Aggregator< G >
 Class for building the aggregates. More...
 
class  Dune::Amg::AggregatesMap< V >::DummyEdgeVisitor
 A Dummy visitor that does nothing for each visited edge. More...
 
class  Dune::Amg::AggregatesMap< V >
 Class providing information about the mapping of the vertices onto aggregates. More...
 
class  Dune::Amg::Aggregate< G, S >
 A class for temporarily storing the vertices of an aggregate in. More...
 
class  Dune::Amg::KAMG< M, X, S, PI, K, A >
 an algebraic multigrid method using a Krylov-cycle. More...
 
class  Dune::Amg::KAmgTwoGrid< AMG >
 Two grid operator for AMG with Krylov cycle. 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::ConstructionTraits< BlockVector< T, A > >
 
struct  Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >
 
struct  Dune::Amg::NonoverlappingOperatorArgs< M, C >
 
struct  Dune::Amg::OwnerOverlapCopyCommunicationArgs
 
struct  Dune::Amg::SequentialCommunicationArgs
 
class  Dune::Amg::ConstructionTraits< OverlappingSchwarzOperator< M, X, Y, C > >
 
class  Dune::Amg::ConstructionTraits< NonoverlappingSchwarzOperator< M, X, Y, C > >
 
struct  Dune::Amg::MatrixAdapterArgs< M, X, Y >
 
class  Dune::Amg::ConstructionTraits< MatrixAdapter< M, X, Y > >
 
class  Dune::Amg::ConstructionTraits< SequentialInformation >
 
class  Dune::Amg::ConstructionTraits< OwnerOverlapCopyCommunication< T1, T2 > >
 
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::PropertyGraphVertexPropertyMap< G, i >
 
struct  Dune::Amg::OverlapVertex< T >
 
class  Dune::Amg::SparsityBuilder< M >
 Functor for building the sparsity pattern of the matrix using examineConnectivity. More...
 
class  Dune::Amg::BaseGalerkinProduct
 
class  Dune::Amg::GalerkinProduct< T >
 
class  Dune::Amg::GalerkinProduct< SequentialInformation >
 
class  Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >
 Visitor for identifying connected aggregates during a breadthFirstSearch. More...
 
struct  Dune::Amg::BaseConnectivityConstructor
 
struct  Dune::Amg::ConnectivityConstructor< G, T >
 
struct  Dune::Amg::ConnectivityConstructor< G, SequentialInformation >
 
struct  Dune::Amg::DirichletBoundarySetter< T >
 
struct  Dune::Amg::DirichletBoundarySetter< SequentialInformation >
 
class  Dune::Amg::GlobalAggregatesMap< T, TI >::Proxy
 
struct  Dune::Amg::GlobalAggregatesMap< T, TI >
 
struct  Dune::Amg::AggregatesGatherScatter< T, TI >
 
struct  Dune::Amg::AggregatesPublisher< T, O, OwnerOverlapCopyCommunication< T1, T2 > >
 Utility class for publishing the aggregate number of the DOFs in the overlap to other processors and convert them to local indices. More...
 
struct  Dune::Amg::AggregatesPublisher< T, O, SequentialInformation >
 
struct  Dune::CommPolicy< Amg::GlobalAggregatesMap< T, TI > >
 
class  Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >
 Iterator over all edges starting from a vertex. More...
 
class  Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >
 The vertex iterator type of the graph. More...
 
class  Dune::Amg::MatrixGraph< M >
 The (undirected) graph of a matrix. More...
 
class  Dune::Amg::SubGraph< G, T >::EdgeIndexMap
 An index map for mapping the edges to indices. More...
 
class  Dune::Amg::SubGraph< G, T >::EdgeIterator
 The edge iterator of the graph. More...
 
class  Dune::Amg::SubGraph< G, T >::VertexIterator
 The vertex iterator of the graph. More...
 
class  Dune::Amg::SubGraph< G, T >
 A subgraph of a graph. More...
 
class  Dune::Amg::VertexPropertiesGraph< G, VP, VM >::VertexIteratorT< C >
 
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 >::EdgeIteratorT< C >
 
class  Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::VertexIteratorT< C >
 
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 >::LevelIterator< C, T1 >
 Iterator over the levels in the hierarchy. More...
 
class  Dune::Amg::Hierarchy< T, A >
 A hierarchy of coantainers (e.g. matrices or vectors) More...
 
struct  Dune::Amg::MatrixHierarchy< M, PI, A >::MatrixStats< Matrix, true >::calc
 
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< T, E >
 
class  Dune::Amg::ParallelIndicesCoarsener< T, E >
 
class  Dune::Amg::IndicesCoarsener< OwnerOverlapCopyCommunication< G, L >, E >
 Coarsen Indices in the parallel case. More...
 
class  Dune::Amg::IndicesCoarsener< SequentialInformation, E >
 Coarsen Indices in the sequential case. More...
 
class  Dune::Amg::DependencyParameters
 Parameters needed to check whether a node depends on another. More...
 
class  Dune::Amg::AggregationParameters
 Parameters needed for the aggregation process,. More...
 
class  Dune::Amg::CoarseningParameters
 Parameters for the complete coarsening process. More...
 
class  Dune::Amg::Parameters
 All parameters for AMG. 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...
 
struct  Dune::Amg::SmootherTraits< BlockPreconditioner< X, Y, C, T > >
 
struct  Dune::Amg::SmootherTraits< NonoverlappingBlockPreconditioner< C, T > >
 
class  Dune::Amg::DefaultConstructionArgs< T >
 Construction Arguments for the default smoothers. More...
 
struct  Dune::Amg::ConstructionArgs< T >
 
class  Dune::Amg::DefaultParallelConstructionArgs< T, C >
 
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...
 
class  Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >
 
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::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >
 
struct  Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >
 
struct  Dune::Amg::SmootherApplier< T >
 Helper class for applying the smoothers. More...
 
struct  Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >
 
struct  Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >
 
struct  Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >
 
struct  Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >
 
struct  Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >
 
struct  Dune::Amg::SmootherTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >
 
class  Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >
 
struct  Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >
 
class  Dune::Amg::Transfer< V1, V2, T >
 
class  Dune::Amg::Transfer< V, V1, SequentialInformation >
 
class  Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >
 
class  Dune::Amg::LevelTransferPolicy< FO, CO >
 Abstract base class for transfer between levels and creation of the coarse level system. More...
 
class  Dune::Amg::AggregationLevelTransferPolicy< O, C >
 A LeveTransferPolicy that used aggregation to construct the coarse level system. More...
 
class  Dune::Amg::OneStepAMGCoarseSolverPolicy< O, S, C >
 A policy class for solving the coarse level system using one step of AMG. More...
 
class  Dune::Amg::TwoLevelMethod< FO, CSP, S >
 

Typedefs

typedef T Dune::Amg::AggregationCriterion< T >::DependencyPolicy
 The policy for calculating the dependency graph. More...
 
typedef M Dune::Amg::SymmetricMatrixDependency< M, N >::Matrix
 The matrix type we build the dependency of. More...
 
typedef N Dune::Amg::SymmetricMatrixDependency< M, N >::Norm
 The norm to use for examining the matrix entries. More...
 
typedef Matrix::row_type Dune::Amg::SymmetricMatrixDependency< M, N >::Row
 Constant Row iterator of the matrix. More...
 
typedef Matrix::ConstColIterator Dune::Amg::SymmetricMatrixDependency< M, N >::ColIter
 Constant column iterator of the matrix. More...
 
typedef Matrix::field_type Dune::Amg::SymmetricMatrixDependency< M, N >::field_type
 The current max value. More...
 
typedef FieldTraits< field_type >::real_type Dune::Amg::SymmetricMatrixDependency< M, N >::real_type
 
typedef M Dune::Amg::Dependency< M, N >::Matrix
 The matrix type we build the dependency of. More...
 
typedef N Dune::Amg::Dependency< M, N >::Norm
 The norm to use for examining the matrix entries. More...
 
typedef Matrix::row_type Dune::Amg::Dependency< M, N >::Row
 Constant Row iterator of the matrix. More...
 
typedef Matrix::ConstColIterator Dune::Amg::Dependency< M, N >::ColIter
 Constant column iterator of the matrix. More...
 
typedef Matrix::field_type Dune::Amg::Dependency< M, N >::field_type
 The current max value. More...
 
typedef FieldTraits< field_type >::real_type Dune::Amg::Dependency< M, N >::real_type
 
typedef M Dune::Amg::SymmetricDependency< M, N >::Matrix
 The matrix type we build the dependency of. More...
 
typedef N Dune::Amg::SymmetricDependency< M, N >::Norm
 The norm to use for examining the matrix entries. More...
 
typedef Matrix::row_type Dune::Amg::SymmetricDependency< M, N >::Row
 Constant Row iterator of the matrix. More...
 
typedef Matrix::ConstColIterator Dune::Amg::SymmetricDependency< M, N >::ColIter
 Constant column iterator of the matrix. More...
 
typedef Matrix::field_type Dune::Amg::SymmetricDependency< M, N >::field_type
 The current max value. More...
 
typedef FieldTraits< field_type >::real_type Dune::Amg::SymmetricDependency< M, N >::real_type
 
typedef V Dune::Amg::AggregatesMap< V >::VertexDescriptor
 The vertex descriptor type. More...
 
typedef V Dune::Amg::AggregatesMap< V >::AggregateDescriptor
 The aggregate descriptor type. More...
 
typedef PoolAllocator< VertexDescriptor, 100 > Dune::Amg::AggregatesMap< V >::Allocator
 The allocator we use for our lists and the set. More...
 
typedef SLList< VertexDescriptor, Allocator > Dune::Amg::AggregatesMap< V >::VertexList
 The type of a single linked list of vertex descriptors. More...
 
typedef const AggregateDescriptor * Dune::Amg::AggregatesMap< V >::const_iterator
 
typedef AggregateDescriptor * Dune::Amg::AggregatesMap< V >::iterator
 
typedef G Dune::Amg::Aggregate< G, S >::MatrixGraph
 
typedef MatrixGraph::VertexDescriptor Dune::Amg::Aggregate< G, S >::Vertex
 The vertex descriptor type. More...
 
typedef PoolAllocator< Vertex, 100 > Dune::Amg::Aggregate< G, S >::Allocator
 The allocator we use for our lists and the set. More...
 
typedef S Dune::Amg::Aggregate< G, S >::VertexSet
 The type of a single linked list of vertex descriptors. More...
 
typedef VertexSet::const_iterator Dune::Amg::Aggregate< G, S >::const_iterator
 Const iterator over a vertex list. More...
 
typedef std::size_t * Dune::Amg::Aggregate< G, S >::SphereMap
 Type of the mapping of aggregate members onto distance spheres. More...
 
typedef G Dune::Amg::Aggregator< G >::MatrixGraph
 The matrix graph type used. More...
 
typedef MatrixGraph::VertexDescriptor Dune::Amg::Aggregator< G >::Vertex
 The vertex identifier. More...
 
typedef MatrixGraph::VertexDescriptor Dune::Amg::Aggregator< G >::AggregateDescriptor
 The type of the aggregate descriptor. More...
 
typedef V Dune::Amg::Aggregator< G >::AggregateVisitor< V >::Visitor
 The type of the adapted visitor. More...
 
typedef M Dune::Amg::AMG< M, X, S, PI, A >::Operator
 The matrix operator type. More...
 
typedef PI Dune::Amg::AMG< M, X, S, PI, A >::ParallelInformation
 The type of the parallel information. Either OwnerOverlapCommunication or another type describing the parallel data distribution and providing communication methods. More...
 
typedef MatrixHierarchy< M, ParallelInformation, ADune::Amg::AMG< M, X, S, PI, A >::OperatorHierarchy
 The operator hierarchy type. More...
 
typedef OperatorHierarchy::ParallelInformationHierarchy Dune::Amg::AMG< M, X, S, PI, A >::ParallelInformationHierarchy
 The parallal data distribution hierarchy type. More...
 
typedef X Dune::Amg::AMG< M, X, S, PI, A >::Domain
 The domain type. More...
 
typedef X Dune::Amg::AMG< M, X, S, PI, A >::Range
 The range type. More...
 
typedef InverseOperator< X, X > Dune::Amg::AMG< M, X, S, PI, A >::CoarseSolver
 the type of the coarse solver. More...
 
typedef S Dune::Amg::AMG< M, X, S, PI, A >::Smoother
 The type of the smoother. More...
 
typedef SmootherTraits< Smoother >::Arguments Dune::Amg::AMG< M, X, S, PI, A >::SmootherArgs
 The argument type for the construction of the smoother. More...
 
typedef Smoother Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::SmootherType
 
typedef const void * Dune::Amg::ConstructionTraits< T >::Arguments
 A type holding all the arguments needed to call the constructor. More...
 
typedef const int Dune::Amg::ConstructionTraits< BlockVector< T, A > >::Arguments
 
typedef ReadWritePropertyMapTag Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Category
 
typedef G Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Graph
 The type of the graph with internal properties. More...
 
typedef std::bitset< VertexProperties::SIZE > Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::BitSet
 The type of the bitset. More...
 
typedef BitSet::reference Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Reference
 The reference type. More...
 
typedef bool Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::ValueType
 The value type. More...
 
typedef G::VertexDescriptor Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Vertex
 The vertex descriptor. More...
 
typedef Amg::PropertyGraphVertexPropertyMap< Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM >, Amg::VertexProperties::VISITED > Dune::PropertyMapTypeSelector< Amg::VertexVisitedTag, Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > >::Type
 
typedef T Dune::Amg::OverlapVertex< T >::Aggregate
 The aggregate descriptor. More...
 
typedef T Dune::Amg::OverlapVertex< T >::Vertex
 The vertex descriptor. More...
 
typedef T Dune::Amg::GalerkinProduct< T >::ParallelInformation
 
typedef G Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::Graph
 The type of the graph. More...
 
typedef Graph::ConstEdgeIterator Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::ConstEdgeIterator
 The constant edge iterator. More...
 
typedef S Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::Set
 The type of the connected set. More...
 
typedef V Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::VisitedMap
 The type of the map for marking vertices as visited. More...
 
typedef Graph::VertexDescriptor Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::Vertex
 The vertex descriptor of the graph. More...
 
typedef G::VertexDescriptor Dune::Amg::ConnectivityConstructor< G, T >::Vertex
 
typedef G::VertexDescriptor Dune::Amg::ConnectivityConstructor< G, SequentialInformation >::Vertex
 
typedef E Dune::Amg::ParallelIndicesCoarsener< T, E >::ExcludedAttributes
 The set of excluded attributes. More...
 
typedef T Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelInformation
 The type of the parallel information. More...
 
typedef ParallelInformation::ParallelIndexSet Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelIndexSet
 
typedef ParallelIndexSet::GlobalIndex Dune::Amg::ParallelIndicesCoarsener< T, E >::GlobalIndex
 The type of the global index. More...
 
typedef ParallelIndexSet::LocalIndex Dune::Amg::ParallelIndicesCoarsener< T, E >::LocalIndex
 The type of the local index. More...
 
typedef LocalIndex::Attribute Dune::Amg::ParallelIndicesCoarsener< T, E >::Attribute
 The type of the attribute. More...
 
typedef Dune::RemoteIndices< ParallelIndexSet > Dune::Amg::ParallelIndicesCoarsener< T, E >::RemoteIndices
 The type of the remote indices. More...
 
typedef C Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Container
 The container that holds the properties. More...
 
typedef R Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Reference
 The reference type of the container. More...
 
typedef K Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Key
 The key of the property map. More...
 
typedef LvaluePropertyMapTag Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Category
 The category of the property map. More...
 
typedef T Dune::Amg::DefaultSmootherArgs< T >::RelaxationFactor
 The type of the relaxation factor. More...
 
typedef DefaultSmootherArgs< typename T::matrix_type::field_type > Dune::Amg::SmootherTraits< T >::Arguments
 
typedef DefaultSmootherArgs< typename T::matrix_type::field_type > Dune::Amg::SmootherTraits< BlockPreconditioner< X, Y, C, T > >::Arguments
 
typedef DefaultSmootherArgs< typename T::matrix_type::field_type > Dune::Amg::SmootherTraits< NonoverlappingBlockPreconditioner< C, T > >::Arguments
 
typedef DefaultConstructionArgs< SeqSSOR< M, X, Y, l > > Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >::Arguments
 
typedef DefaultConstructionArgs< SeqSOR< M, X, Y, l > > Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >::Arguments
 
typedef DefaultConstructionArgs< SeqJac< M, X, Y, l > > Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >::Arguments
 
typedef DefaultConstructionArgs< SeqILU0< M, X, Y > > Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >::Arguments
 
typedef ConstructionArgs< SeqILUn< M, X, Y > > Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >::Arguments
 
typedef DefaultParallelConstructionArgs< M, C > Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >::Arguments
 
typedef DefaultParallelConstructionArgs< T, C > Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::Arguments
 
typedef ConstructionTraits< T > Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::SeqConstructionTraits
 
typedef DefaultParallelConstructionArgs< T, C > Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::Arguments
 
typedef ConstructionTraits< T > Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::SeqConstructionTraits
 
typedef T Dune::Amg::SmootherApplier< T >::Smoother
 
typedef Smoother::range_type Dune::Amg::SmootherApplier< T >::Range
 
typedef Smoother::domain_type Dune::Amg::SmootherApplier< T >::Domain
 
typedef SeqSOR< M, X, Y, l > Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::Smoother
 
typedef Smoother::range_type Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::Range
 
typedef Smoother::domain_type Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::Domain
 
typedef BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::Smoother
 
typedef Smoother::range_type Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::Range
 
typedef Smoother::domain_type Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::Domain
 
typedef NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::Smoother
 
typedef Smoother::range_type Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::Range
 
typedef Smoother::domain_type Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::Domain
 
typedef SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::Smoother
 
typedef Smoother::range_type Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::Range
 
typedef Smoother::domain_type Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::Domain
 
typedef SeqOverlappingSchwarzSmootherArgs< typename M::field_type > Dune::Amg::SmootherTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Arguments
 
typedef MatrixGraph< M >::VertexDescriptor Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexDescriptor
 
typedef Dune::Amg::AggregatesMap< VertexDescriptor > Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregatesMap
 
typedef AggregatesMap::AggregateDescriptor Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateDescriptor
 
typedef SeqOverlappingSchwarz< M, X, TM, TS, TA >::subdomain_vector Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Vector
 
typedef Vector::value_type Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Subdomain
 
typedef ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > > Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Arguments
 

Enumerations

enum  { Dune::Amg::Diagonal< N >::is_sign_preserving = true }
 
enum  { Dune::Amg::RowSum::is_sign_preserving = false }
 
enum  { Dune::Amg::FrobeniusNorm::is_sign_preserving = false }
 
enum  { Dune::Amg::AlwaysOneNorm::is_sign_preserving = false }
 
enum  { Dune::Amg::AMG< M, X, S, PI, A >::category = S::category }
 
enum  { Dune::Amg::EdgeProperties::INFLUENCE, Dune::Amg::EdgeProperties::DEPEND, Dune::Amg::EdgeProperties::SIZE }
 Flags of the link. More...
 
enum  {
  Dune::Amg::VertexProperties::ISOLATED, Dune::Amg::VertexProperties::VISITED, Dune::Amg::VertexProperties::FRONT, Dune::Amg::VertexProperties::BORDER,
  Dune::Amg::VertexProperties::SIZE
}
 
enum  { Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::index = i }
 
enum  { Dune::Amg::MatrixGraph< M >::mutableMatrix = is_same<M, typename remove_const<M>::type>::value }
 
enum  { Dune::Amg::MatrixGraph< M >::EdgeIteratorT< C >::isMutable = is_same<C, MutableContainer>::value }
 
enum  { Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::isMutable = is_same<C, MutableContainer>::value }
 
enum  { Dune::Amg::MAX_PROCESSES = 72000 }
 
enum  { Dune::Amg::KAmgTwoGrid< AMG >::category = AMG::category }
 
enum  { Dune::Amg::KAMG< M, X, S, PI, K, A >::category = Amg::category }
 
enum  Dune::Amg::AccumulationMode { Dune::Amg::noAccu = 0, Dune::Amg::atOnceAccu =1, Dune::Amg::successiveAccu =2 }
 Identifiers for the different accumulation modes. More...
 
enum  { Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::index = i }
 
enum  Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::Overlap { Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::vertex, Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::aggregate, Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::pairwise, Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::none }
 
enum  { Dune::Amg::TwoLevelMethod< FO, CSP, S >::category =SolverCategory::sequential }
 

Functions

 Dune::Amg::AggregationCriterion< T >::AggregationCriterion ()
 Constructor. More...
 
 Dune::Amg::AggregationCriterion< T >::AggregationCriterion (const Parameters &parms)
 
void Dune::Amg::AggregationCriterion< T >::setDefaultValuesIsotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an isotropic problem. More...
 
void Dune::Amg::AggregationCriterion< T >::setDefaultValuesAnisotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an aisotropic problem. More...
 
template<class T >
std::ostream & Dune::Amg::operator<< (std::ostream &os, const AggregationCriterion< T > &criterion)
 
void Dune::Amg::SymmetricMatrixDependency< M, N >::init (const Matrix *matrix)
 
void Dune::Amg::SymmetricMatrixDependency< M, N >::initRow (const Row &row, int index)
 
void Dune::Amg::SymmetricMatrixDependency< M, N >::examine (const ColIter &col)
 
template<class G >
void Dune::Amg::SymmetricMatrixDependency< M, N >::examine (G &graph, const typename G::EdgeIterator &edge, const ColIter &col)
 
bool Dune::Amg::SymmetricMatrixDependency< M, N >::isIsolated ()
 
 Dune::Amg::SymmetricMatrixDependency< M, N >::SymmetricMatrixDependency (const Parameters &parms)
 
 Dune::Amg::SymmetricMatrixDependency< M, N >::SymmetricMatrixDependency ()
 
void Dune::Amg::Dependency< M, N >::init (const Matrix *matrix)
 
void Dune::Amg::Dependency< M, N >::initRow (const Row &row, int index)
 
void Dune::Amg::Dependency< M, N >::examine (const ColIter &col)
 
template<class G >
void Dune::Amg::Dependency< M, N >::examine (G &graph, const typename G::EdgeIterator &edge, const ColIter &col)
 
bool Dune::Amg::Dependency< M, N >::isIsolated ()
 
 Dune::Amg::Dependency< M, N >::Dependency (const Parameters &parms)
 
 Dune::Amg::Dependency< M, N >::Dependency ()
 
void Dune::Amg::SymmetricDependency< M, N >::init (const Matrix *matrix)
 
void Dune::Amg::SymmetricDependency< M, N >::initRow (const Row &row, int index)
 
void Dune::Amg::SymmetricDependency< M, N >::examine (const ColIter &col)
 
template<class G >
void Dune::Amg::SymmetricDependency< M, N >::examine (G &graph, const typename G::EdgeIterator &edge, const ColIter &col)
 
bool Dune::Amg::SymmetricDependency< M, N >::isIsolated ()
 
 Dune::Amg::SymmetricDependency< M, N >::SymmetricDependency (const Parameters &parms)
 
 Dune::Amg::SymmetricDependency< M, N >::SymmetricDependency ()
 
template<class M >
FieldTraits< typename M::field_type >::real_type Dune::Amg::Diagonal< N >::operator() (const M &m) const
 compute the norm of a matrix. More...
 
template<class M >
FieldTraits< typename M::field_type >::real_type Dune::Amg::RowSum::operator() (const M &m) const
 compute the norm of a matrix. More...
 
template<class M >
FieldTraits< typename M::field_type >::real_type Dune::Amg::FrobeniusNorm::operator() (const M &m) const
 compute the norm of a matrix. More...
 
template<class M >
FieldTraits< typename M::field_type >::real_type Dune::Amg::AlwaysOneNorm::operator() (const M &m) const
 compute the norm of a matrix. More...
 
 Dune::Amg::SymmetricCriterion< M, Norm >::SymmetricCriterion (const Parameters &parms)
 
 Dune::Amg::SymmetricCriterion< M, Norm >::SymmetricCriterion ()
 
 Dune::Amg::UnSymmetricCriterion< M, Norm >::UnSymmetricCriterion (const Parameters &parms)
 
 Dune::Amg::UnSymmetricCriterion< M, Norm >::UnSymmetricCriterion ()
 
template<class EdgeIterator >
void Dune::Amg::AggregatesMap< V >::DummyEdgeVisitor::operator() (const EdgeIterator &edge) const
 
 Dune::Amg::AggregatesMap< V >::AggregatesMap ()
 Constructs without allocating memory. More...
 
 Dune::Amg::AggregatesMap< V >::AggregatesMap (std::size_t noVertices)
 Constructs with allocating memory. More...
 
 Dune::Amg::AggregatesMap< V >::~AggregatesMap ()
 Destructor. More...
 
template<class M , class G , class C >
tuple< int, int, int, int > Dune::Amg::AggregatesMap< V >::buildAggregates (const M &matrix, G &graph, const C &criterion, bool finestLevel)
 Build the aggregates. More...
 
template<bool reset, class G , class F , class VM >
std::size_t Dune::Amg::AggregatesMap< V >::breadthFirstSearch (const VertexDescriptor &start, const AggregateDescriptor &aggregate, const G &graph, F &aggregateVisitor, VM &visitedMap) const
 Breadth first search within an aggregate. More...
 
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, const G &graph, L &visited, F1 &aggregateVisitor, F2 &nonAggregateVisitor, VM &visitedMap) const
 Breadth first search within an aggregate. More...
 
void Dune::Amg::AggregatesMap< V >::allocate (std::size_t noVertices)
 Allocate memory for holding the information. More...
 
std::size_t Dune::Amg::AggregatesMap< V >::noVertices () const
 Get the number of vertices. More...
 
void Dune::Amg::AggregatesMap< V >::free ()
 Free the allocated memory. More...
 
AggregateDescriptor & Dune::Amg::AggregatesMap< V >::operator[] (const VertexDescriptor &v)
 Get the aggregate a vertex belongs to. More...
 
const AggregateDescriptor & Dune::Amg::AggregatesMap< V >::operator[] (const VertexDescriptor &v) const
 Get the aggregate a vertex belongs to. More...
 
const_iterator Dune::Amg::AggregatesMap< V >::begin () const
 
const_iterator Dune::Amg::AggregatesMap< V >::end () const
 
iterator Dune::Amg::AggregatesMap< V >::begin ()
 
iterator Dune::Amg::AggregatesMap< V >::end ()
 
template<class G , class C >
void Dune::Amg::buildDependency (G &graph, const typename C::Matrix &matrix, C criterion, bool finestLevel)
 Build the dependency of the matrix graph. More...
 
 Dune::Amg::Aggregate< G, S >::Aggregate (MatrixGraph &graph, AggregatesMap< Vertex > &aggregates, VertexSet &connectivity, std::vector< Vertex > &front_)
 Constructor. More...
 
void Dune::Amg::Aggregate< G, S >::invalidate ()
 
void Dune::Amg::Aggregate< G, S >::reconstruct (const Vertex &vertex)
 Reconstruct the aggregat from an seed node. More...
 
void Dune::Amg::Aggregate< G, S >::seed (const Vertex &vertex)
 Initialize the aggregate with one vertex. More...
 
void Dune::Amg::Aggregate< G, S >::add (const Vertex &vertex)
 Add a vertex to the aggregate. More...
 
void Dune::Amg::Aggregate< G, S >::add (std::vector< Vertex > &vertex)
 
void Dune::Amg::Aggregate< G, S >::clear ()
 Clear the aggregate. More...
 
VertexSet::size_type Dune::Amg::Aggregate< G, S >::size ()
 Get the size of the aggregate. More...
 
VertexSet::size_type Dune::Amg::Aggregate< G, S >::connectSize ()
 Get tne number of connections to other aggregates. More...
 
int Dune::Amg::Aggregate< G, S >::id ()
 Get the id identifying the aggregate. More...
 
const_iterator Dune::Amg::Aggregate< G, S >::begin () const
 get an iterator over the vertices of the aggregate. More...
 
const_iterator Dune::Amg::Aggregate< G, S >::end () const
 get an iterator over the vertices of the aggregate. More...
 
 Dune::Amg::Aggregator< G >::Aggregator ()
 Constructor. More...
 
 Dune::Amg::Aggregator< G >::~Aggregator ()
 Destructor. More...
 
template<class M , class C >
tuple< int, int, int, int > Dune::Amg::Aggregator< G >::build (const M &m, G &graph, AggregatesMap< Vertex > &aggregates, const C &c, bool finestLevel)
 Build the aggregates. More...
 
 Dune::Amg::Aggregator< G >::Stack::Stack (const MatrixGraph &graph, const Aggregator< G > &aggregatesBuilder, const AggregatesMap< Vertex > &aggregates)
 
 Dune::Amg::Aggregator< G >::Stack::~Stack ()
 
Vertex Dune::Amg::Aggregator< G >::Stack::pop ()
 
 Dune::Amg::Aggregator< G >::AggregateVisitor< V >::AggregateVisitor (const AggregatesMap< Vertex > &aggregates, const AggregateDescriptor &aggregate, Visitor &visitor)
 Constructor. More...
 
void Dune::Amg::Aggregator< G >::AggregateVisitor< V >::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 Examine an edge. More...
 
 Dune::Amg::Aggregator< G >::Counter::Counter ()
 Constructor. More...
 
int Dune::Amg::Aggregator< G >::Counter::value ()
 Access the current count. More...
 
void Dune::Amg::Aggregator< G >::Counter::increment ()
 Increment counter. More...
 
void Dune::Amg::Aggregator< G >::Counter::decrement ()
 Decrement counter. More...
 
 Dune::Amg::Aggregator< G >::FrontNeighbourCounter::FrontNeighbourCounter (const MatrixGraph &front)
 Constructor. More...
 
void Dune::Amg::Aggregator< G >::FrontNeighbourCounter::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 
void Dune::Amg::Aggregator< G >::TwoWayCounter::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 
void Dune::Amg::Aggregator< G >::OneWayCounter::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 
 Dune::Amg::Aggregator< G >::ConnectivityCounter::ConnectivityCounter (const VertexSet &connected, const AggregatesMap< Vertex > &aggregates)
 Constructor. More...
 
void Dune::Amg::Aggregator< G >::ConnectivityCounter::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 
 Dune::Amg::Aggregator< G >::DependencyCounter::DependencyCounter ()
 Constructor. More...
 
void Dune::Amg::Aggregator< G >::DependencyCounter::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 
 Dune::Amg::Aggregator< G >::FrontMarker::FrontMarker (std::vector< Vertex > &front, MatrixGraph &graph)
 Constructor. More...
 
void Dune::Amg::Aggregator< G >::FrontMarker::operator() (const typename MatrixGraph::ConstEdgeIterator &edge)
 
template<class V >
void Dune::Amg::printAggregates2d (const AggregatesMap< V > &aggregates, int n, int m, std::ostream &os)
 
 Dune::Amg::AMG< M, X, S, PI, 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)
 Construct a new amg with a specific coarse solver. More...
 
 Dune::Amg::AMG< M, X, S, PI, A >::AMG (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, const Parameters &parms)
 Construct a new amg with a specific coarse solver. More...
 
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, std::size_t preSmoothingSteps, std::size_t postSmoothingSteps, bool additive=false, const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother. More...
 
template<class C >
 Dune::Amg::AMG< M, X, S, PI, A >::AMG (const Operator &fineOperator, const C &criterion, const SmootherArgs &smootherArgs=SmootherArgs(), const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother. More...
 
 Dune::Amg::AMG< M, X, S, PI, A >::AMG (const AMG &amg)
 Copy constructor. More...
 
 Dune::Amg::AMG< M, X, S, PI, A >::~AMG ()
 
void Dune::Amg::AMG< M, X, S, PI, A >::pre (Domain &x, Range &b)
 Prepare the preconditioner. More...
 
void Dune::Amg::AMG< M, X, S, PI, A >::apply (Domain &v, const Range &d)
 Apply one step of the preconditioner to the system A(v)=d. More...
 
void Dune::Amg::AMG< M, X, S, PI, A >::post (Domain &x)
 Clean up. More...
 
template<class A1 >
void Dune::Amg::AMG< M, X, S, PI, A >::getCoarsestAggregateNumbers (std::vector< std::size_t, A1 > &cont)
 Get the aggregate number of each unknown on the coarsest level. More...
 
std::size_t Dune::Amg::AMG< M, X, S, PI, A >::levels ()
 
std::size_t Dune::Amg::AMG< M, X, S, PI, A >::maxlevels ()
 
void Dune::Amg::AMG< M, X, S, PI, A >::recalculateHierarchy ()
 Recalculate the matrix hierarchy. More...
 
bool Dune::Amg::AMG< M, X, S, PI, A >::usesDirectCoarseLevelSolver () const
 Check whether the coarse solver used is a direct solver. More...
 
static T * Dune::Amg::ConstructionTraits< T >::construct (Arguments &args)
 Construct an object with the specified arguments. More...
 
static void Dune::Amg::ConstructionTraits< T >::deconstruct (T *t)
 Destroys an object. More...
 
static BlockVector< T, A > * Dune::Amg::ConstructionTraits< BlockVector< T, A > >::construct (Arguments &n)
 
static void Dune::Amg::ConstructionTraits< BlockVector< T, A > >::deconstruct (BlockVector< T, A > *t)
 
 Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >::OverlappingSchwarzOperatorArgs (M &matrix, C &comm)
 
 Dune::Amg::NonoverlappingOperatorArgs< M, C >::NonoverlappingOperatorArgs (M &matrix, C &comm)
 
 Dune::Amg::OwnerOverlapCopyCommunicationArgs::OwnerOverlapCopyCommunicationArgs (MPI_Comm comm, SolverCategory::Category cat)
 
 Dune::Amg::SequentialCommunicationArgs::SequentialCommunicationArgs (CollectiveCommunication< void * > comm, int cat)
 
 Dune::Amg::EdgeProperties::EdgeProperties ()
 Constructor. More...
 
std::bitset< SIZE >::reference Dune::Amg::EdgeProperties::operator[] (std::size_t v)
 Access the bits directly. More...
 
bool Dune::Amg::EdgeProperties::operator[] (std::size_t v) const
 Acess the bits directly. More...
 
bool Dune::Amg::EdgeProperties::depends () const
 Checks wether the vertex the edge points to depends on the vertex the edge starts. More...
 
void Dune::Amg::EdgeProperties::setDepends ()
 Marks the edge as one of which the end point depends on the starting point. More...
 
void Dune::Amg::EdgeProperties::resetDepends ()
 Resets the depends flag. More...
 
bool Dune::Amg::EdgeProperties::influences () const
 Checks wether the start vertex is influenced by the end vertex. More...
 
void Dune::Amg::EdgeProperties::setInfluences ()
 Marks the edge as one of which the start vertex by the end vertex. More...
 
void Dune::Amg::EdgeProperties::resetInfluences ()
 Resets the influence flag. More...
 
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. More...
 
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. More...
 
bool Dune::Amg::EdgeProperties::isStrong () const
 Checks wether the edge is strong. I.e. the influence or depends flag is set. More...
 
void Dune::Amg::EdgeProperties::reset ()
 Reset all flags. More...
 
void Dune::Amg::EdgeProperties::printFlags () const
 Prints the attributes of the edge for debugging. More...
 
 Dune::Amg::VertexProperties::VertexProperties ()
 Constructor. More...
 
std::bitset< SIZE >::reference Dune::Amg::VertexProperties::operator[] (std::size_t v)
 Access the bits directly. More...
 
bool Dune::Amg::VertexProperties::operator[] (std::size_t v) const
 Acess the bits directly. More...
 
void Dune::Amg::VertexProperties::setIsolated ()
 Marks that node as being isolated. More...
 
bool Dune::Amg::VertexProperties::isolated () const
 Checks wether the node is isolated. More...
 
void Dune::Amg::VertexProperties::resetIsolated ()
 Resets the isolated flag. More...
 
void Dune::Amg::VertexProperties::setVisited ()
 Mark the node as already visited. More...
 
bool Dune::Amg::VertexProperties::visited () const
 Checks wether the node is marked as visited. More...
 
void Dune::Amg::VertexProperties::resetVisited ()
 Resets the visited flag. More...
 
void Dune::Amg::VertexProperties::setFront ()
 Marks the node as belonging to the current clusters front. More...
 
bool Dune::Amg::VertexProperties::front () const
 Checks wether the node is marked as a front node. More...
 
void Dune::Amg::VertexProperties::resetFront ()
 Resets the front node flag. More...
 
void Dune::Amg::VertexProperties::setExcludedBorder ()
 Marks the vertex as excluded from the aggregation. More...
 
bool Dune::Amg::VertexProperties::excludedBorder () const
 Tests whether the vertex is excluded from the aggregation. More...
 
void Dune::Amg::VertexProperties::resetExcludedBorder ()
 Marks the vertex as included in the aggregation. More...
 
void Dune::Amg::VertexProperties::reset ()
 Reset all flags. More...
 
 Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::PropertyGraphVertexPropertyMap (G &g)
 Constructor. More...
 
 Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::PropertyGraphVertexPropertyMap ()
 Default constructor. More...
 
Reference Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::operator[] (const Vertex &vertex) const
 Get the properties associated to a vertex. More...
 
std::ostream & Dune::Amg::operator<< (std::ostream &os, const EdgeProperties &props)
 
std::ostream & Dune::Amg::operator<< (std::ostream &os, const VertexProperties &props)
 
 Dune::Amg::SparsityBuilder< M >::SparsityBuilder (M &matrix)
 Constructor. More...
 
void Dune::Amg::SparsityBuilder< M >::insert (const typename M::size_type &index)
 
void Dune::Amg::SparsityBuilder< M >::operator++ ()
 
std::size_t Dune::Amg::SparsityBuilder< M >::minRowSize ()
 
std::size_t Dune::Amg::SparsityBuilder< M >::maxRowSize ()
 
std::size_t Dune::Amg::SparsityBuilder< M >::sumRowSize ()
 
std::size_t Dune::Amg::SparsityBuilder< M >::index ()
 
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. More...
 
template<class G , class V , class Set >
G::MutableMatrix * Dune::Amg::GalerkinProduct< T >::build (G &fineGraph, V &visitedMap, const ParallelInformation &pinfo, AggregatesMap< typename G::VertexDescriptor > &aggregates, const typename G::Matrix::size_type &size, const Set &copy)
 Calculates the coarse matrix via a Galerkin product. More...
 
bool Dune::Amg::GalerkinProduct< T >::OVLess< A >::operator() (const OverlapVertex< A > &o1, const OverlapVertex< A > &o2)
 
template<class G , class V , class Set >
G::MutableMatrix * Dune::Amg::GalerkinProduct< SequentialInformation >::build (G &fineGraph, V &visitedMap, const SequentialInformation &pinfo, const AggregatesMap< typename G::VertexDescriptor > &aggregates, const typename G::Matrix::size_type &size, const Set &copy)
 Calculates the coarse matrix via a Galerkin product. More...
 
template<class R , class G , class V >
static void Dune::Amg::BaseConnectivityConstructor::constructOverlapConnectivity (R &row, G &graph, V &visitedMap, const AggregatesMap< typename G::VertexDescriptor > &aggregates, const OverlapVertex< typename G::VertexDescriptor > *&seed, const OverlapVertex< typename G::VertexDescriptor > *overlapEnd)
 
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. More...
 
 Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::ConnectedBuilder (const AggregatesMap< Vertex > &aggregates, Graph &graph, VisitedMap &visitedMap, Set &connected)
 Constructor. More...
 
void Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::operator() (const ConstEdgeIterator &edge)
 Process an edge pointing to another aggregate. More...
 
template<class V , class O , class R >
static void Dune::Amg::ConnectivityConstructor< G, T >::examine (G &graph, V &visitedMap, const T &pinfo, const AggregatesMap< Vertex > &aggregates, const O &overlap, const OverlapVertex< Vertex > *overlapVertices, const OverlapVertex< Vertex > *overlapEnd, R &row)
 
template<class V , class R >
static void Dune::Amg::ConnectivityConstructor< G, SequentialInformation >::examine (G &graph, V &visitedMap, const SequentialInformation &pinfo, const AggregatesMap< Vertex > &aggregates, R &row)
 
template<class M , class O >
static void Dune::Amg::DirichletBoundarySetter< T >::set (M &coarse, const T &pinfo, const O &copy)
 
template<class M , class O >
static void Dune::Amg::DirichletBoundarySetter< SequentialInformation >::set (M &coarse, const SequentialInformation &pinfo, const O &copy)
 
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. More...
 
template<typename M , typename C1 >
bool Dune::Amg::repartitionAndDistributeMatrix (const M &origMatrix, M &newMatrix, SequentialInformation &origSequentialInformationomm, SequentialInformation *&newComm, RedistributeInformation< SequentialInformation > &ri, int nparts, C1 &criterion)
 
template<typename M , typename C , typename C1 >
bool Dune::Amg::repartitionAndDistributeMatrix (const M &origMatrix, M &newMatrix, C &origComm, C *&newComm, RedistributeInformation< C > &ri, int nparts, C1 &criterion)
 
template<typename M >
bool Dune::Amg::repartitionAndDistributeMatrix (M &origMatrix, M &newMatrix, SequentialInformation &origComm, SequentialInformation &newComm, RedistributeInformation< SequentialInformation > &ri)
 
template<typename Graph , typename VM >
static Graph::VertexDescriptor Dune::Amg::ParallelIndicesCoarsener< T, E >::coarsen (ParallelInformation &fineInfo, Graph &fineGraph, VM &visitedMap, AggregatesMap< typename Graph::VertexDescriptor > &aggregates, ParallelInformation &coarseInfo, typename Graph::VertexDescriptor noAggregates)
 Build the coarse index set after the aggregatio. More...
 
 Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::ParallelAggregateRenumberer (AggregatesMap< Vertex > &aggregates, const I &lookup)
 
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::operator() (const typename G::ConstEdgeIterator &edge)
 
Vertex Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::operator() (const GlobalIndex &global)
 
bool Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::isPublic ()
 
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::isPublic (bool b)
 
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::reset ()
 
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::attribute (const Attribute &attribute)
 
Attribute Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::attribute ()
 
const GlobalIndex & Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::globalIndex () const
 
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::globalIndex (const GlobalIndex &global)
 
template<typename Graph , typename VM >
static Graph::VertexDescriptor Dune::Amg::IndicesCoarsener< SequentialInformation, E >::coarsen (const SequentialInformation &fineInfo, Graph &fineGraph, VM &visitedMap, AggregatesMap< typename Graph::VertexDescriptor > &aggregates, SequentialInformation &coarseInfo, typename Graph::VertexDescriptor noAggregates)
 
 Dune::Amg::DependencyParameters::DependencyParameters ()
 Constructor. More...
 
void Dune::Amg::DependencyParameters::setBeta (double b)
 Set threshold for marking nodes as isolated. The default value is 1.0E-5. More...
 
double Dune::Amg::DependencyParameters::beta () const
 Get the threshold for marking nodes as isolated. The default value is 1.0E-5. More...
 
void Dune::Amg::DependencyParameters::setAlpha (double a)
 Set the scaling value for marking connections as strong. Default value is 1/3. More...
 
double Dune::Amg::DependencyParameters::alpha () const
 Get the scaling value for marking connections as strong. Default value is 1/3. More...
 
 Dune::Amg::AggregationParameters::AggregationParameters ()
 Constructor. More...
 
void Dune::Amg::AggregationParameters::setDefaultValuesIsotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an isotropic problem. More...
 
void Dune::Amg::AggregationParameters::setDefaultValuesAnisotropic (std::size_t dim, std::size_t diameter=2)
 Sets reasonable default values for an aisotropic problem. More...
 
std::size_t Dune::Amg::AggregationParameters::maxDistance () const
 Get the maximal distance allowed between to nodes in a aggregate. More...
 
void Dune::Amg::AggregationParameters::setMaxDistance (std::size_t distance)
 Set the maximal distance allowed between to nodes in a aggregate. More...
 
bool Dune::Amg::AggregationParameters::skipIsolated () const
 Whether isolated aggregates will not be represented on the coarse level. More...
 
void Dune::Amg::AggregationParameters::setSkipIsolated (bool skip)
 Set whether isolated aggregates will not be represented on the coarse level. More...
 
std::size_t Dune::Amg::AggregationParameters::minAggregateSize () const
 Get the minimum number of nodes a aggregate has to consist of. More...
 
void Dune::Amg::AggregationParameters::setMinAggregateSize (std::size_t size)
 Set the minimum number of nodes a aggregate has to consist of. More...
 
std::size_t Dune::Amg::AggregationParameters::maxAggregateSize () const
 Get the maximum number of nodes a aggregate is allowed to have. More...
 
void Dune::Amg::AggregationParameters::setMaxAggregateSize (std::size_t size)
 Set the maximum number of nodes a aggregate is allowed to have. More...
 
std::size_t Dune::Amg::AggregationParameters::maxConnectivity () const
 Get the maximum number of connections a aggregate is allowed to have. More...
 
void Dune::Amg::AggregationParameters::setMaxConnectivity (std::size_t connectivity)
 Set the maximum number of connections a aggregate is allowed to have. More...
 
void Dune::Amg::CoarseningParameters::setMaxLevel (int l)
 Set the maximum number of levels allowed in the hierarchy. More...
 
int Dune::Amg::CoarseningParameters::maxLevel () const
 Get the maximum number of levels allowed in the hierarchy. More...
 
void Dune::Amg::CoarseningParameters::setCoarsenTarget (int nodes)
 Set the maximum number of unknowns allowed on the coarsest level. More...
 
int Dune::Amg::CoarseningParameters::coarsenTarget () const
 Get the maximum number of unknowns allowed on the coarsest level. More...
 
void Dune::Amg::CoarseningParameters::setMinCoarsenRate (double rate)
 Set the minimum coarsening rate to be achieved in each coarsening. More...
 
double Dune::Amg::CoarseningParameters::minCoarsenRate () const
 Get the minimum coarsening rate to be achieved. More...
 
AccumulationMode Dune::Amg::CoarseningParameters::accumulate () const
 Whether the data should be accumulated on fewer processes on coarser levels. More...
 
void Dune::Amg::CoarseningParameters::setAccumulate (AccumulationMode accu)
 Set whether he data should be accumulated on fewer processes on coarser levels. More...
 
void Dune::Amg::CoarseningParameters::setAccumulate (bool accu)
 
void Dune::Amg::CoarseningParameters::setProlongationDampingFactor (double d)
 Set the damping factor for the prolongation. More...
 
double Dune::Amg::CoarseningParameters::getProlongationDampingFactor () const
 Get the damping factor for the prolongation. More...
 
 Dune::Amg::CoarseningParameters::CoarseningParameters (int maxLevel=100, int coarsenTarget=1000, double minCoarsenRate=1.2, double prolongDamp=1.6, AccumulationMode accumulate=successiveAccu)
 Constructor. More...
 
void Dune::Amg::Parameters::setDebugLevel (int level)
 Set the debugging level. More...
 
int Dune::Amg::Parameters::debugLevel () const
 Get the debugging Level. More...
 
void Dune::Amg::Parameters::setNoPreSmoothSteps (std::size_t steps)
 Set the number of presmoothing steps to apply. More...
 
std::size_t Dune::Amg::Parameters::getNoPreSmoothSteps () const
 Get the number of presmoothing steps to apply. More...
 
void Dune::Amg::Parameters::setNoPostSmoothSteps (std::size_t steps)
 Set the number of postsmoothing steps to apply. More...
 
std::size_t Dune::Amg::Parameters::getNoPostSmoothSteps () const
 Get the number of postsmoothing steps to apply. More...
 
void Dune::Amg::Parameters::setGamma (std::size_t gamma)
 Set the value of gamma; 1 for V-cycle, 2 for W-cycle. More...
 
std::size_t Dune::Amg::Parameters::getGamma () const
 Get the value of gamma; 1 for V-cycle, 2 for W-cycle. More...
 
void Dune::Amg::Parameters::setAdditive (bool additive)
 Set whether to use additive multigrid. More...
 
bool Dune::Amg::Parameters::getAdditive () const
 Get whether to use additive multigrid. More...
 
 Dune::Amg::Parameters::Parameters (int maxLevel=100, int coarsenTarget=1000, double minCoarsenRate=1.2, double prolongDamp=1.6, AccumulationMode accumulate=successiveAccu)
 Constructor. More...
 
Reference Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::operator[] (const Key &key) const
 Get the property for a key. More...
 
 Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::RandomAccessBundledPropertyMap (Container &container)
 Constructor. More...
 
 Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::RandomAccessBundledPropertyMap ()
 The default constructor. More...
 
 Dune::Amg::DefaultSmootherArgs< T >::DefaultSmootherArgs ()
 Default constructor. More...
 
virtual Dune::Amg::DefaultConstructionArgs< T >::~DefaultConstructionArgs ()
 
void Dune::Amg::DefaultConstructionArgs< T >::setMatrix (const Matrix &matrix)
 
virtual void Dune::Amg::DefaultConstructionArgs< T >::setMatrix (const Matrix &matrix, const AggregatesMap &amap)
 
const Matrix & Dune::Amg::DefaultConstructionArgs< T >::getMatrix () const
 
void Dune::Amg::DefaultConstructionArgs< T >::setArgs (const SmootherArgs &args)
 
template<class T1 >
void Dune::Amg::DefaultConstructionArgs< T >::setComm (T1 &comm)
 
const SequentialInformation & Dune::Amg::DefaultConstructionArgs< T >::getComm ()
 
const SmootherArgs Dune::Amg::DefaultConstructionArgs< T >::getArgs () const
 
virtual Dune::Amg::DefaultParallelConstructionArgs< T, C >::~DefaultParallelConstructionArgs ()
 
void Dune::Amg::DefaultParallelConstructionArgs< T, C >::setComm (const C &comm)
 
const C & Dune::Amg::DefaultParallelConstructionArgs< T, C >::getComm () const
 
static SeqSSOR< M, X, Y, l > * Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >::deconstruct (SeqSSOR< M, X, Y, l > *ssor)
 
static SeqSOR< M, X, Y, l > * Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >::deconstruct (SeqSOR< M, X, Y, l > *sor)
 
static SeqJac< M, X, Y, l > * Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >::deconstruct (SeqJac< M, X, Y, l > *jac)
 
static SeqILU0< M, X, Y > * Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >::deconstruct (SeqILU0< M, X, Y > *ilu)
 
 Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >::ConstructionArgs (int n=1)
 
void Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >::setN (int n)
 
int Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >::getN ()
 
static SeqILUn< M, X, Y > * Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >::deconstruct (SeqILUn< M, X, Y > *ilu)
 
static ParSSOR< M, X, Y, C > * Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >::deconstruct (ParSSOR< M, X, Y, C > *ssor)
 
static BlockPreconditioner< X, Y, C, T > * Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::deconstruct (BlockPreconditioner< X, Y, C, T > *bp)
 
static NonoverlappingBlockPreconditioner< C, T > * Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::deconstruct (NonoverlappingBlockPreconditioner< C, T > *bp)
 
static void Dune::Amg::SmootherApplier< T >::preSmooth (Smoother &smoother, Domain &v, const Range &d)
 apply pre smoothing in forward direction More...
 
static void Dune::Amg::SmootherApplier< T >::postSmooth (Smoother &smoother, Domain &v, const Range &d)
 apply post smoothing in forward direction More...
 
template<typename LevelContext >
void Dune::Amg::presmooth (LevelContext &levelContext, size_t steps)
 Apply pre smoothing on the current level. More...
 
template<typename LevelContext >
void Dune::Amg::postsmooth (LevelContext &levelContext, size_t steps)
 Apply post smoothing on the current level. More...
 
static void Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::preSmooth (Smoother &smoother, Domain &v, Range &d)
 
static void Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::postSmooth (Smoother &smoother, Domain &v, Range &d)
 
static void Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::preSmooth (Smoother &smoother, Domain &v, Range &d)
 
static void Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::postSmooth (Smoother &smoother, Domain &v, Range &d)
 
static void Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::preSmooth (Smoother &smoother, Domain &v, Range &d)
 
static void Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::postSmooth (Smoother &smoother, Domain &v, Range &d)
 
static void Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::preSmooth (Smoother &smoother, Domain &v, const Range &d)
 
static void Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::postSmooth (Smoother &smoother, Domain &v, const Range &d)
 
 Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::SeqOverlappingSchwarzSmootherArgs (Overlap overlap_=vertex, bool onthefly_=false)
 
virtual void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::setMatrix (const M &matrix, const AggregatesMap &amap)
 
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::setMatrix (const M &matrix)
 
const Vector & Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::getSubDomains ()
 
 Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::VertexAdder (Vector &subdomains_, const AggregatesMap &aggregates_)
 
template<class T >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::operator() (const T &edge)
 
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::setAggregate (const AggregateDescriptor &aggregate_)
 
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::noSubdomains () const
 
template<class T >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::NoneAdder::operator() (const T &edge)
 
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::NoneAdder::setAggregate (const AggregateDescriptor &aggregate_)
 
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::NoneAdder::noSubdomains () const
 
 Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::AggregateAdder (Vector &subdomains_, const AggregatesMap &aggregates_, const MatrixGraph< const M > &graph_, VM &visitedMap_)
 
template<class T >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::operator() (const T &edge)
 
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::setAggregate (const AggregateDescriptor &aggregate_)
 
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::noSubdomains () const
 
static SeqOverlappingSchwarz< M, X, TM, TS, TA > * Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::construct (Arguments &args)
 
static void Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::deconstruct (SeqOverlappingSchwarz< M, X, TM, TS, TA > *schwarz)
 
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)
 
 Dune::Amg::MatrixHierarchy< M, PI, A >::MatrixHierarchy (const MatrixOperator &fineMatrix, const ParallelInformation &pinfo=ParallelInformation())
 Constructor. More...
 
template<typename O , typename T >
void Dune::Amg::MatrixHierarchy< M, PI, A >::build (const T &criterion)
 Build the matrix hierarchy using aggregation. More...
 
const ParallelMatrixHierarchy & Dune::Amg::MatrixHierarchy< M, PI, A >::matrices () const
 Get the matrix hierarchy. More...
 
const ParallelInformationHierarchy & Dune::Amg::MatrixHierarchy< M, PI, A >::parallelInformation () const
 Get the hierarchy of the parallel data distribution information. More...
 
void Dune::Amg::MatrixHierarchy< M, PI, A >::getCoarsestAggregatesOnFinest (std::vector< std::size_t > &data) const
 Get the mapping of fine level unknowns to coarse level aggregates. More...
 
const AggregatesMapList & Dune::Amg::MatrixHierarchy< M, PI, A >::aggregatesMaps () const
 Get the hierarchy of the mappings of the nodes onto aggregates. More...
 
const RedistributeInfoList & Dune::Amg::MatrixHierarchy< M, PI, A >::redistributeInformation () const
 Get the hierachy of the information about redistributions,. More...
 
 Dune::Amg::MatrixHierarchy< M, PI, A >::~MatrixHierarchy ()
 
template<class V , class TA >
void Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenVector (Hierarchy< BlockVector< V, TA > > &hierarchy) const
 Coarsen the vector hierarchy according to the matrix hierarchy. More...
 
template<class S , class TA >
void Dune::Amg::MatrixHierarchy< M, PI, A >::coarsenSmoother (Hierarchy< S, TA > &smoothers, const typename SmootherTraits< S >::Arguments &args) const
 Coarsen the smoother hierarchy according to the matrix hierarchy. More...
 
template<class F >
void Dune::Amg::MatrixHierarchy< M, PI, A >::recalculateGalerkin (const F &copyFlags)
 Recalculate the galerkin products. More...
 
std::size_t Dune::Amg::MatrixHierarchy< M, PI, A >::levels () const
 Get the number of levels in the hierarchy. More...
 
std::size_t Dune::Amg::MatrixHierarchy< M, PI, A >::maxlevels () const
 Get the max number of levels in the hierarchy of processors. More...
 
bool Dune::Amg::MatrixHierarchy< M, PI, A >::hasCoarsest () const
 
bool Dune::Amg::MatrixHierarchy< M, PI, A >::isBuilt () const
 Whether the hierarchy was built. More...
 
 Dune::Amg::Hierarchy< T, A >::Hierarchy ()
 Construct a new empty hierarchy. More...
 
 Dune::Amg::Hierarchy< T, A >::Hierarchy (MemberType &first)
 Construct a new hierarchy. More...
 
 Dune::Amg::Hierarchy< T, A >::Hierarchy (MemberType *first)
 Construct a new hierarchy. More...
 
 Dune::Amg::Hierarchy< T, A >::~Hierarchy ()
 Destructor. More...
 
 Dune::Amg::Hierarchy< T, A >::Hierarchy (const Hierarchy &other)
 Copy constructor. More...
 
std::size_t Dune::Amg::Hierarchy< T, A >::levels () const
 Get the number of levels in the hierarchy. More...
 
void Dune::Amg::Hierarchy< T, A >::addRedistributedOnCoarsest (Arguments &args)
 
void Dune::Amg::Hierarchy< T, A >::addCoarser (Arguments &args)
 Add an element on a coarser level. More...
 
void Dune::Amg::Hierarchy< T, A >::addFiner (Arguments &args)
 Add an element on a finer level. More...
 
Iterator Dune::Amg::Hierarchy< T, A >::finest ()
 Get an iterator positioned at the finest level. More...
 
Iterator Dune::Amg::Hierarchy< T, A >::coarsest ()
 Get an iterator positioned at the coarsest level. More...
 
ConstIterator Dune::Amg::Hierarchy< T, A >::finest () const
 Get an iterator positioned at the finest level. More...
 
ConstIterator Dune::Amg::Hierarchy< T, A >::coarsest () const
 Get an iterator positioned at the coarsest level. More...
 
 Dune::Amg::KAMG< M, X, S, PI, K, A >::KAMG (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, std::size_t gamma, std::size_t preSmoothingSteps=1, std::size_t postSmoothingSteps=1, std::size_t maxLevelKrylovSteps=3, double minDefectReduction=1e-1)
 Construct a new amg with a specific coarse solver. More...
 
template<class C >
 Dune::Amg::KAMG< M, X, S, PI, K, A >::KAMG (const Operator &fineOperator, const C &criterion, const SmootherArgs &smootherArgs, std::size_t gamma=1, std::size_t preSmoothingSteps=1, std::size_t postSmoothingSteps=1, std::size_t maxLevelKrylovSteps=3, double minDefectReduction=1e-1, const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother. More...
 
void Dune::Amg::KAMG< M, X, S, PI, K, A >::pre (Domain &x, Range &b)
 Prepare the preconditioner. More...
 
void Dune::Amg::KAMG< M, X, S, PI, K, A >::post (Domain &x)
 Clean up. More...
 
void Dune::Amg::KAMG< M, X, S, PI, K, A >::apply (Domain &v, const Range &d)
 Apply one step of the preconditioner to the system A(v)=d. More...
 
std::size_t Dune::Amg::KAMG< M, X, S, PI, K, A >::maxlevels ()
 
template<typename T >
void Dune::Amg::Transfer< V, V1, SequentialInformation >::prolongateVector (const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, Vector &fineRedist, T damp, const SequentialInformation &comm, const Redist &redist)
 
template<typename T >
void Dune::Amg::Transfer< V, V1, SequentialInformation >::prolongateVector (const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, T damp, const SequentialInformation &comm)
 
static void Dune::Amg::Transfer< V, V1, SequentialInformation >::restrictVector (const AggregatesMap< Vertex > &aggregates, Vector &coarse, const Vector &fine, const SequentialInformation &comm)
 
template<typename T3 >
static void Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >::prolongateVector (const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, Vector &fineRedist, T3 damp, OwnerOverlapCopyCommunication< T1, T2 > &comm, const Redist &redist)
 
template<typename T3 >
static void Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >::prolongateVector (const AggregatesMap< Vertex > &aggregates, Vector &coarse, Vector &fine, T3 damp, OwnerOverlapCopyCommunication< T1, T2 > &comm)
 
static void Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >::restrictVector (const AggregatesMap< Vertex > &aggregates, Vector &coarse, const Vector &fine, OwnerOverlapCopyCommunication< T1, T2 > &comm)
 

Variables

const Matrix * Dune::Amg::SymmetricMatrixDependency< M, N >::matrix_
 The matrix we work on. More...
 
real_type Dune::Amg::SymmetricMatrixDependency< M, N >::maxValue_
 
Norm Dune::Amg::SymmetricMatrixDependency< M, N >::norm_
 The functor for calculating the norm. More...
 
int Dune::Amg::SymmetricMatrixDependency< M, N >::row_
 index of the currently evaluated row. More...
 
real_type Dune::Amg::SymmetricMatrixDependency< M, N >::diagonal_
 The norm of the current diagonal. More...
 
std::vector< real_type > Dune::Amg::SymmetricMatrixDependency< M, N >::vals_
 
std::vector< real_type >::iterator Dune::Amg::SymmetricMatrixDependency< M, N >::valIter_
 
const Matrix * Dune::Amg::Dependency< M, N >::matrix_
 The matrix we work on. More...
 
real_type Dune::Amg::Dependency< M, N >::maxValue_
 
Norm Dune::Amg::Dependency< M, N >::norm_
 The functor for calculating the norm. More...
 
int Dune::Amg::Dependency< M, N >::row_
 index of the currently evaluated row. More...
 
real_type Dune::Amg::Dependency< M, N >::diagonal_
 The norm of the current diagonal. More...
 
const Matrix * Dune::Amg::SymmetricDependency< M, N >::matrix_
 The matrix we work on. More...
 
real_type Dune::Amg::SymmetricDependency< M, N >::maxValue_
 
Norm Dune::Amg::SymmetricDependency< M, N >::norm_
 The functor for calculating the norm. More...
 
int Dune::Amg::SymmetricDependency< M, N >::row_
 index of the currently evaluated row. More...
 
real_type Dune::Amg::SymmetricDependency< M, N >::diagonal_
 The norm of the current diagonal. More...
 
static const V Dune::Amg::AggregatesMap< V >::UNAGGREGATED
 Identifier of not yet aggregated vertices. More...
 
static const V Dune::Amg::AggregatesMap< V >::ISOLATED
 Identifier of isolated vertices. More...
 
static const Vertex Dune::Amg::Aggregator< G >::Stack::NullEntry
 
Hierarchy< Smoother, A >::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::smoother
 The iterator over the smoothers. More...
 
OperatorHierarchy::ParallelMatrixHierarchy::ConstIterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::matrix
 The iterator over the matrices. More...
 
ParallelInformationHierarchy::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::pinfo
 The iterator over the parallel information. More...
 
OperatorHierarchy::RedistributeInfoList::const_iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::redist
 The iterator over the redistribution information. More...
 
OperatorHierarchy::AggregatesMapList::const_iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::aggregates
 The iterator over the aggregates maps. More...
 
Hierarchy< Domain, A >::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::lhs
 The iterator over the left hand side. More...
 
Hierarchy< Domain, A >::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::update
 The iterator over the updates. More...
 
Hierarchy< Range, A >::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::rhs
 The iterator over the right hand sided. More...
 
std::size_t Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::level
 The level index. More...
 
M * Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >::matrix_
 
C * Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >::comm_
 
M * Dune::Amg::NonoverlappingOperatorArgs< M, C >::matrix_
 
C * Dune::Amg::NonoverlappingOperatorArgs< M, C >::comm_
 
MPI_Comm Dune::Amg::OwnerOverlapCopyCommunicationArgs::comm_
 
SolverCategory::Category Dune::Amg::OwnerOverlapCopyCommunicationArgs::cat_
 
CollectiveCommunication< void * > Dune::Amg::SequentialCommunicationArgs::comm_
 
Aggregate * Dune::Amg::OverlapVertex< T >::aggregate
 The aggregate the vertex belongs to. More...
 
Vertex Dune::Amg::OverlapVertex< T >::vertex
 The vertex descriptor. More...
 
int Dune::Amg::DefaultSmootherArgs< T >::iterations
 The numbe of iterations to perform. More...
 
RelaxationFactor Dune::Amg::DefaultSmootherArgs< T >::relaxationFactor
 The relaxation factor to use. More...
 
const Matrix * Dune::Amg::DefaultConstructionArgs< T >::matrix_
 
Overlap Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::overlap
 
bool Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::onthefly
 

Friends

std::ostream & Dune::Amg::EdgeProperties::operator<< (std::ostream &os, const EdgeProperties &props)
 
std::ostream & Dune::Amg::VertexProperties::operator<< (std::ostream &os, const VertexProperties &props)
 

Detailed Description

A Parallel Algebraic Multigrid based on Agglomeration.

Typedef Documentation

template<class T>
typedef T Dune::Amg::OverlapVertex< T >::Aggregate

The aggregate descriptor.

template<class V>
typedef V Dune::Amg::AggregatesMap< V >::AggregateDescriptor

The aggregate descriptor type.

template<class M , class X , class TM , class TS , class TA >
typedef AggregatesMap::AggregateDescriptor Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateDescriptor
template<class G >
typedef MatrixGraph::VertexDescriptor Dune::Amg::Aggregator< G >::AggregateDescriptor

The type of the aggregate descriptor.

template<class M , class X , class TM , class TS , class TA >
typedef Dune::Amg::AggregatesMap<VertexDescriptor> Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregatesMap
template<class V>
typedef PoolAllocator<VertexDescriptor,100> Dune::Amg::AggregatesMap< V >::Allocator

The allocator we use for our lists and the set.

template<class G, class S>
typedef PoolAllocator<Vertex,100> Dune::Amg::Aggregate< G, S >::Allocator

The allocator we use for our lists and the set.

template<typename T>
typedef const void* Dune::Amg::ConstructionTraits< T >::Arguments

A type holding all the arguments needed to call the constructor.

template<class T>
typedef DefaultSmootherArgs<typename T::matrix_type::field_type> Dune::Amg::SmootherTraits< T >::Arguments
template<class X , class Y , class C , class T >
typedef DefaultSmootherArgs<typename T::matrix_type::field_type> Dune::Amg::SmootherTraits< BlockPreconditioner< X, Y, C, T > >::Arguments
template<class T , class A >
typedef const int Dune::Amg::ConstructionTraits< BlockVector< T, A > >::Arguments
template<class C , class T >
typedef DefaultSmootherArgs<typename T::matrix_type::field_type> Dune::Amg::SmootherTraits< NonoverlappingBlockPreconditioner< C, T > >::Arguments
template<class M , class X , class Y , int l>
typedef DefaultConstructionArgs<SeqSSOR<M,X,Y,l> > Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >::Arguments
template<class M , class X , class Y , int l>
typedef DefaultConstructionArgs<SeqSOR<M,X,Y,l> > Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >::Arguments
template<class M , class X , class Y , int l>
typedef DefaultConstructionArgs<SeqJac<M,X,Y,l> > Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >::Arguments
template<class M , class X , class Y >
typedef DefaultConstructionArgs<SeqILU0<M,X,Y> > Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >::Arguments
template<class M , class X , class Y >
typedef ConstructionArgs<SeqILUn<M,X,Y> > Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >::Arguments
template<class M , class X , class Y , class C >
typedef DefaultParallelConstructionArgs<M,C> Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >::Arguments
template<class X , class Y , class C , class T >
typedef DefaultParallelConstructionArgs<T,C> Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::Arguments
template<class C , class T >
typedef DefaultParallelConstructionArgs<T,C> Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::Arguments
template<class M , class X , class TM , class TS , class TA >
typedef SeqOverlappingSchwarzSmootherArgs<typename M::field_type> Dune::Amg::SmootherTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Arguments
template<class M , class X , class TM , class TS , class TA >
typedef ConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TS,TA> > Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Arguments
template<typename T, typename E>
typedef LocalIndex::Attribute Dune::Amg::ParallelIndicesCoarsener< T, E >::Attribute

The type of the attribute.

template<typename G , std::size_t i>
typedef std::bitset<VertexProperties::SIZE> Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::BitSet

The type of the bitset.

template<typename C , typename K , std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
typedef LvaluePropertyMapTag Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Category

The category of the property map.

template<typename G , std::size_t i>
typedef ReadWritePropertyMapTag Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Category
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef InverseOperator<X,X> Dune::Amg::AMG< M, X, S, PI, A >::CoarseSolver

the type of the coarse solver.

template<class M , class N >
typedef Matrix::ConstColIterator Dune::Amg::SymmetricMatrixDependency< M, N >::ColIter

Constant column iterator of the matrix.

template<class M, class N>
typedef Matrix::ConstColIterator Dune::Amg::Dependency< M, N >::ColIter

Constant column iterator of the matrix.

template<class M, class N>
typedef Matrix::ConstColIterator Dune::Amg::SymmetricDependency< M, N >::ColIter

Constant column iterator of the matrix.

template<class V>
typedef const AggregateDescriptor* Dune::Amg::AggregatesMap< V >::const_iterator
template<class G, class S>
typedef VertexSet::const_iterator Dune::Amg::Aggregate< G, S >::const_iterator

Const iterator over a vertex list.

template<class G, class S, class V>
typedef Graph::ConstEdgeIterator Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::ConstEdgeIterator

The constant edge iterator.

template<typename C , typename K , std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
typedef C Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Container

The container that holds the properties.

template<class T>
typedef T Dune::Amg::AggregationCriterion< T >::DependencyPolicy

The policy for calculating the dependency graph.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef X Dune::Amg::AMG< M, X, S, PI, A >::Domain

The domain type.

template<class T >
typedef Smoother::domain_type Dune::Amg::SmootherApplier< T >::Domain
template<class M , class X , class Y , int l>
typedef Smoother::domain_type Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::Domain
template<class M , class X , class Y , class C , int l>
typedef Smoother::domain_type Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::Domain
template<class M , class X , class Y , class C , int l>
typedef Smoother::domain_type Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::Domain
template<class M , class X , class MS , class TA >
typedef Smoother::domain_type Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::Domain
template<typename T, typename E>
typedef E Dune::Amg::ParallelIndicesCoarsener< T, E >::ExcludedAttributes

The set of excluded attributes.

template<class M , class N >
typedef Matrix::field_type Dune::Amg::SymmetricMatrixDependency< M, N >::field_type
protected

The current max value.

template<class M, class N>
typedef Matrix::field_type Dune::Amg::Dependency< M, N >::field_type
protected

The current max value.

template<class M, class N>
typedef Matrix::field_type Dune::Amg::SymmetricDependency< M, N >::field_type
protected

The current max value.

template<typename T, typename E>
typedef ParallelIndexSet::GlobalIndex Dune::Amg::ParallelIndicesCoarsener< T, E >::GlobalIndex

The type of the global index.

template<class G, class S, class V>
typedef G Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::Graph

The type of the graph.

template<typename G , std::size_t i>
typedef G Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Graph

The type of the graph with internal properties.

template<class V>
typedef AggregateDescriptor* Dune::Amg::AggregatesMap< V >::iterator
template<typename C , typename K , std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
typedef K Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Key

The key of the property map.

template<typename T, typename E>
typedef ParallelIndexSet::LocalIndex Dune::Amg::ParallelIndicesCoarsener< T, E >::LocalIndex

The type of the local index.

template<class M , class N >
typedef M Dune::Amg::SymmetricMatrixDependency< M, N >::Matrix

The matrix type we build the dependency of.

template<class M, class N>
typedef M Dune::Amg::Dependency< M, N >::Matrix

The matrix type we build the dependency of.

template<class M, class N>
typedef M Dune::Amg::SymmetricDependency< M, N >::Matrix

The matrix type we build the dependency of.

template<class G, class S>
typedef G Dune::Amg::Aggregate< G, S >::MatrixGraph
template<class G >
typedef G Dune::Amg::Aggregator< G >::MatrixGraph

The matrix graph type used.

template<class M , class N >
typedef N Dune::Amg::SymmetricMatrixDependency< M, N >::Norm

The norm to use for examining the matrix entries.

template<class M, class N>
typedef N Dune::Amg::Dependency< M, N >::Norm

The norm to use for examining the matrix entries.

template<class M, class N>
typedef N Dune::Amg::SymmetricDependency< M, N >::Norm

The norm to use for examining the matrix entries.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef M Dune::Amg::AMG< M, X, S, PI, A >::Operator

The matrix operator type.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef MatrixHierarchy<M, ParallelInformation, A> Dune::Amg::AMG< M, X, S, PI, A >::OperatorHierarchy

The operator hierarchy type.

template<typename T, typename E>
typedef ParallelInformation::ParallelIndexSet Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelIndexSet
template<typename T, typename E>
typedef T Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelInformation

The type of the parallel information.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef PI Dune::Amg::AMG< M, X, S, PI, A >::ParallelInformation

The type of the parallel information. Either OwnerOverlapCommunication or another type describing the parallel data distribution and providing communication methods.

template<class T>
typedef T Dune::Amg::GalerkinProduct< T >::ParallelInformation
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef OperatorHierarchy::ParallelInformationHierarchy Dune::Amg::AMG< M, X, S, PI, A >::ParallelInformationHierarchy

The parallal data distribution hierarchy type.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef X Dune::Amg::AMG< M, X, S, PI, A >::Range

The range type.

template<class T >
typedef Smoother::range_type Dune::Amg::SmootherApplier< T >::Range
template<class M , class X , class Y , int l>
typedef Smoother::range_type Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::Range
template<class M , class X , class Y , class C , int l>
typedef Smoother::range_type Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::Range
template<class M , class X , class Y , class C , int l>
typedef Smoother::range_type Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::Range
template<class M , class X , class MS , class TA >
typedef Smoother::range_type Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::Range
template<class M , class N >
typedef FieldTraits<field_type>::real_type Dune::Amg::SymmetricMatrixDependency< M, N >::real_type
protected
template<class M, class N>
typedef FieldTraits<field_type>::real_type Dune::Amg::Dependency< M, N >::real_type
protected
template<class M, class N>
typedef FieldTraits<field_type>::real_type Dune::Amg::SymmetricDependency< M, N >::real_type
protected
template<typename C , typename K , std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
typedef R Dune::Amg::RandomAccessBundledPropertyMap< C, K, i, T, R >::Reference

The reference type of the container.

template<typename G , std::size_t i>
typedef BitSet::reference Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Reference

The reference type.

template<class T >
typedef T Dune::Amg::DefaultSmootherArgs< T >::RelaxationFactor

The type of the relaxation factor.

template<typename T, typename E>
typedef Dune::RemoteIndices<ParallelIndexSet> Dune::Amg::ParallelIndicesCoarsener< T, E >::RemoteIndices

The type of the remote indices.

template<class M , class N >
typedef Matrix::row_type Dune::Amg::SymmetricMatrixDependency< M, N >::Row

Constant Row iterator of the matrix.

template<class M, class N>
typedef Matrix::row_type Dune::Amg::Dependency< M, N >::Row

Constant Row iterator of the matrix.

template<class M, class N>
typedef Matrix::row_type Dune::Amg::SymmetricDependency< M, N >::Row

Constant Row iterator of the matrix.

template<class X , class Y , class C , class T >
typedef ConstructionTraits<T> Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::SeqConstructionTraits
template<class C , class T >
typedef ConstructionTraits<T> Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::SeqConstructionTraits
template<class G, class S, class V>
typedef S Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::Set

The type of the connected set.

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

The type of the smoother.

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

template<class T >
typedef T Dune::Amg::SmootherApplier< T >::Smoother
template<class M , class X , class Y , int l>
typedef SeqSOR<M,X,Y,l> Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::Smoother
template<class M , class X , class Y , class C , int l>
typedef BlockPreconditioner<X,Y,C,SeqSOR<M,X,Y,l> > Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::Smoother
template<class M , class X , class Y , class C , int l>
typedef NonoverlappingBlockPreconditioner<C,SeqSOR<M,X,Y,l> > Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::Smoother
template<class M , class X , class MS , class TA >
typedef SeqOverlappingSchwarz<M,X,MultiplicativeSchwarzMode,MS,TA> Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::Smoother
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef SmootherTraits<Smoother>::Arguments Dune::Amg::AMG< M, X, S, PI, A >::SmootherArgs

The argument type for the construction of the smoother.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
typedef Smoother Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::SmootherType
template<class G, class S>
typedef std::size_t* Dune::Amg::Aggregate< G, S >::SphereMap

Type of the mapping of aggregate members onto distance spheres.

template<class M , class X , class TM , class TS , class TA >
typedef Vector::value_type Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Subdomain
template<typename G , typename EP , typename VM , typename EM >
typedef Amg::PropertyGraphVertexPropertyMap<Amg::PropertiesGraph<G,Amg::VertexProperties,EP,VM,EM>, Amg::VertexProperties::VISITED> Dune::PropertyMapTypeSelector< Amg::VertexVisitedTag, Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > >::Type
template<typename G , std::size_t i>
typedef bool Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::ValueType

The value type.

template<class M , class X , class TM , class TS , class TA >
typedef SeqOverlappingSchwarz<M,X,TM,TS,TA>::subdomain_vector Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::Vector
template<class T>
typedef T Dune::Amg::OverlapVertex< T >::Vertex

The vertex descriptor.

template<class G, class S, class V>
typedef Graph::VertexDescriptor Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::Vertex

The vertex descriptor of the graph.

template<typename G , std::size_t i>
typedef G::VertexDescriptor Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::Vertex

The vertex descriptor.

template<class G , class T >
typedef G::VertexDescriptor Dune::Amg::ConnectivityConstructor< G, T >::Vertex
template<class G >
typedef G::VertexDescriptor Dune::Amg::ConnectivityConstructor< G, SequentialInformation >::Vertex
template<class G, class S>
typedef MatrixGraph::VertexDescriptor Dune::Amg::Aggregate< G, S >::Vertex

The vertex descriptor type.

template<class G >
typedef MatrixGraph::VertexDescriptor Dune::Amg::Aggregator< G >::Vertex

The vertex identifier.

template<class V>
typedef V Dune::Amg::AggregatesMap< V >::VertexDescriptor

The vertex descriptor type.

template<class M , class X , class TM , class TS , class TA >
typedef MatrixGraph<M>::VertexDescriptor Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexDescriptor
template<class V>
typedef SLList<VertexDescriptor,Allocator> Dune::Amg::AggregatesMap< V >::VertexList

The type of a single linked list of vertex descriptors.

template<class G, class S>
typedef S Dune::Amg::Aggregate< G, S >::VertexSet

The type of a single linked list of vertex descriptors.

template<class G, class S, class V>
typedef V Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::VisitedMap

The type of the map for marking vertices as visited.

template<class G >
template<class V >
typedef V Dune::Amg::Aggregator< G >::AggregateVisitor< V >::Visitor

The type of the adapted visitor.

Enumeration Type Documentation

template<int N>
anonymous enum
Enumerator
is_sign_preserving 
anonymous enum
Enumerator
is_sign_preserving 
anonymous enum
Enumerator
is_sign_preserving 
anonymous enum
Enumerator
is_sign_preserving 
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
anonymous enum
Enumerator
category 

The solver category.

anonymous enum

Flags of the link.

Enumerator
INFLUENCE 
DEPEND 
SIZE 
anonymous enum
Enumerator
ISOLATED 
VISITED 
FRONT 
BORDER 
SIZE 
template<typename G , std::size_t i>
anonymous enum
Enumerator
index 

the index to access in the bitset.

template<class M>
anonymous enum
Enumerator
mutableMatrix 
template<class M>
template<class C>
anonymous enum
Enumerator
isMutable 

whether C is mutable.

template<class M>
template<class C>
anonymous enum
Enumerator
isMutable 

whether C is mutable.

anonymous enum
Enumerator
MAX_PROCESSES 

Hard limit for the number of processes allowed.

This is needed to prevent overflows when calculating the coarsening rate. Currently set 72,000 which is enough for JUGENE.

template<class AMG >
anonymous enum
Enumerator
category 

The solver category.

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
anonymous enum
Enumerator
category 

The solver category.

template<typename C , typename K , std::size_t i, typename T = typename C::ValueType, typename R = typename C::Reference>
anonymous enum
Enumerator
index 

The index of the property in the bundle.

template<class FO , class CSP , class S >
anonymous enum
Enumerator
category 

The category the preconditioner is part of.

Identifiers for the different accumulation modes.

Enumerator
noAccu 

No data accumulution.

The coarse level data will be distributed to all processes.

atOnceAccu 

Accumulate data to on process at once.

Once no further coarsening is possible all data will be accumulated to one process

successiveAccu 

Successively accumulate to fewer processes.

Enumerator
vertex 
aggregate 
pairwise 
none 

Function Documentation

AccumulationMode Dune::Amg::CoarseningParameters::accumulate ( ) const
inline

Whether the data should be accumulated on fewer processes on coarser levels.

template<class G, class S>
void Dune::Amg::Aggregate< G, S >::add ( const Vertex vertex)

Add a vertex to the aggregate.

template<class G, class S>
void Dune::Amg::Aggregate< G, S >::add ( std::vector< Vertex > &  vertex)
template<class T , class A >
void Dune::Amg::Hierarchy< T, A >::addCoarser ( Arguments args)

Add an element on a coarser level.

Parameters
argsThe arguments needed for the construction.

References Dune::Amg::ConstructionTraits< T >::construct().

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

template<class T , class A >
void Dune::Amg::Hierarchy< T, A >::addFiner ( Arguments args)

Add an element on a finer level.

Parameters
argsThe arguments needed for the construction.

References Dune::Amg::ConstructionTraits< T >::construct().

template<class T , class A >
void Dune::Amg::Hierarchy< T, A >::addRedistributedOnCoarsest ( Arguments args)
template<class G, class S>
Dune::Amg::Aggregate< G, S >::Aggregate ( MatrixGraph graph,
AggregatesMap< Vertex > &  aggregates,
VertexSet connectivity,
std::vector< Vertex > &  front_ 
)

Constructor.

Parameters
graphThe matrix graph we work on.
aggregatesThe mapping of vertices onto aggregates.
connectivityThe set of vertices connected to the aggregate. distance spheres.
front_The vertices of the current aggregate front.
template<class M , class X , class TM , class TS , class TA >
template<class VM >
Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::AggregateAdder ( Vector subdomains_,
const AggregatesMap aggregates_,
const MatrixGraph< const M > &  graph_,
VM &  visitedMap_ 
)
inline
template<class V>
Dune::Amg::AggregatesMap< V >::AggregatesMap ( )

Constructs without allocating memory.

template<class V>
Dune::Amg::AggregatesMap< V >::AggregatesMap ( std::size_t  noVertices)

Constructs with allocating memory.

Parameters
noVerticesThe number of vertices we will hold information for.
template<class M , class IS , class A >
const MatrixHierarchy< M, IS, A >::AggregatesMapList & Dune::Amg::MatrixHierarchy< M, IS, A >::aggregatesMaps ( ) const

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 
)

Constructor.

Parameters
aggregatesThe aggregate numbers of the vertices.
aggregateThe id of the aggregate to visit.
visitorThe visitor.
template<class T>
Dune::Amg::AggregationCriterion< T >::AggregationCriterion ( )
inline

Constructor.

The paramters will be initialized with default values suitable for 2D isotropic problems.

If that does not fit your needs either use setDefaultValuesIsotropic setDefaultValuesAnisotropic or setup the values by hand

template<class T>
Dune::Amg::AggregationCriterion< T >::AggregationCriterion ( const Parameters parms)
inline
Dune::Amg::AggregationParameters::AggregationParameters ( )
inline

Constructor.

The paramters will be initialized with default values suitable for 2D isotropic problems.

If that does not fit your needs either use setDefaultValuesIsotropic setDefaultValuesAnisotropic or setup the values by hand

template<class G >
Dune::Amg::Aggregator< G >::Aggregator ( )

Constructor.

template<class V>
void Dune::Amg::AggregatesMap< V >::allocate ( std::size_t  noVertices)

Allocate memory for holding the information.

Parameters
noVerticesThe total number of vertices to be mapped.
double Dune::Amg::DependencyParameters::alpha ( ) const
inline

Get the scaling value for marking connections as strong. Default value is 1/3.

template<class M , class X , class S , class PI , class A >
Dune::Amg::AMG< M, X, S, PI, 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 
)

Construct a new amg with a specific coarse solver.

Parameters
matricesThe already set up matix hierarchy.
coarseSolverThe set up solver to use on the coarse grid, must match the coarse matrix in the matrix hierachy.
smootherArgsThe arguments needed for thesmoother to use for pre and post smoothing
gammaThe number of subcycles. 1 for V-cycle, 2 for W-cycle.
preSmoothingStepsThe number of smoothing steps for premoothing.
postSmoothingStepsThe number of smoothing steps for postmoothing.
additiveWhether to use additive multigrid.
Deprecated:
Use constructor AMG(const OperatorHierarchy&, CoarseSolver&, const SmootherArgs, const Parameters&) instead. All parameters can be set in the criterion!
Deprecated:
template<class M , class X , class S , class PI , class A >
Dune::Amg::AMG< M, X, S, PI, A >::AMG ( const OperatorHierarchy matrices,
CoarseSolver coarseSolver,
const SmootherArgs smootherArgs,
const Parameters parms 
)

Construct a new amg with a specific coarse solver.

Parameters
matricesThe already set up matix hierarchy.
coarseSolverThe set up solver to use on the coarse grid, must match the coarse matrix in the matrix hierachy.
smootherArgsThe arguments needed for thesmoother to use for pre and post smoothing.
parmsThe parameters for the AMG.
template<class M , class X , class S , class PI , class A >
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,
std::size_t  preSmoothingSteps,
std::size_t  postSmoothingSteps,
bool  additive = false,
const ParallelInformation pinfo = ParallelInformation() 
)

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
fineOperatorThe operator on the fine level.
criterionThe criterion describing the coarsening strategy. E. g. SymmetricCriterion or UnsymmetricCriterion.
smootherArgsThe arguments for constructing the smoothers.
gamma1 for V-cycle, 2 for W-cycle
preSmoothingStepsThe number of smoothing steps for premoothing.
postSmoothingStepsThe number of smoothing steps for postmoothing.
additiveWhether to use additive multigrid.
pinfoThe information about the parallel distribution of the data.
Deprecated:
Use AMG(const Operator&, const C&, const SmootherArgs, const ParallelInformation) instead. All parameters can be set in the criterion!
Deprecated:
template<class M , class X , class S , class PI , class A >
template<class C >
Dune::Amg::AMG< M, X, S, PI, A >::AMG ( const Operator fineOperator,
const C &  criterion,
const SmootherArgs smootherArgs = SmootherArgs(),
const ParallelInformation pinfo = ParallelInformation() 
)

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
fineOperatorThe operator on the fine level.
criterionThe criterion describing the coarsening strategy. E. g. SymmetricCriterion or UnsymmetricCriterion, and providing the parameters.
smootherArgsThe arguments for constructing the smoothers.
pinfoThe information about the parallel distribution of the data.
template<class M , class X , class S , class PI , class A >
Dune::Amg::AMG< M, X, S, PI, A >::AMG ( const AMG< M, X, S, PI, A > &  amg)
inline

Copy constructor.

template<class M , class X , class S , class PI , class A >
void Dune::Amg::AMG< M, X, S, PI, A >::apply ( Domain v,
const Range d 
)
virtual

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]vThe update to be computed
dThe current defect.

Implements Dune::Preconditioner< X, X >.

template<class M , class X , class S , class P , class K , class A >
void Dune::Amg::KAMG< M, X, S, P, K, A >::apply ( Domain v,
const Range d 
)
virtual

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]vThe update to be computed
dThe current defect.

Implements Dune::Preconditioner< X, X >.

template<typename T, typename E>
template<typename G , typename I >
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::attribute ( const Attribute attribute)
inline
template<typename T, typename E>
template<typename G , typename I >
Attribute Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::attribute ( )
inline
template<class V>
const_iterator Dune::Amg::AggregatesMap< V >::begin ( ) const
inline
template<class V>
iterator Dune::Amg::AggregatesMap< V >::begin ( )
inline
template<class G, class S>
const_iterator Dune::Amg::Aggregate< G, S >::begin ( ) const

get an iterator over the vertices of the aggregate.

double Dune::Amg::DependencyParameters::beta ( ) const
inline

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

Returns
beta
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,
const G &  graph,
F &  aggregateVisitor,
VM &  visitedMap 
) const

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
startThe vertex where the search should start from. This does not need to belong to the aggregate.
aggregateThe aggregate id.
graphThe matrix graph to perform the search on.
visitedMapA map to mark the already visited vertices
aggregateVisitorA 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 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,
const G &  graph,
L &  visited,
F1 &  aggregateVisitor,
F2 &  nonAggregateVisitor,
VM &  visitedMap 
) const

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
startThe vertex where the search should start from. This does not need to belong to the aggregate.
aggregateThe aggregate id.
graphThe matrix graph to perform the search on.
visitedA list to store the visited vertices in.
aggregateVisitorA functor that is called with each G::ConstEdgeIterator with an edge pointing to the aggregate. Use DummyVisitor these are of no interest.
nonAggregateVisitorA functor that is called with each G::ConstEdgeIterator with an edge pointing to another aggregate. Use DummyVisitor these are of no interest.
visitedMapA map to mark the already visited vertices
template<class T >
template<class G , class V , class Set >
G::MutableMatrix * Dune::Amg::GalerkinProduct< T >::build ( G &  fineGraph,
V &  visitedMap,
const ParallelInformation pinfo,
AggregatesMap< typename G::VertexDescriptor > &  aggregates,
const typename G::Matrix::size_type &  size,
const Set &  copy 
)

Calculates the coarse matrix via a Galerkin product.

Parameters
fineGraphThe graph of the fine matrix.
visitedMapMap for marking vertices as visited.
pinfoParallel information about the fine level.
aggregatesThe mapping of the fine level unknowns onto aggregates.
sizeThe number of columns and rows of the coarse matrix.
copyThe attribute set identifying the copy nodes of the graph.

References count, Dune::Amg::ConnectivityConstructor< G, T >::examine(), Dune::Amg::SparsityBuilder< M >::maxRowSize(), Dune::Amg::SparsityBuilder< M >::minRowSize(), and Dune::Amg::SparsityBuilder< M >::sumRowSize().

Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::build(), and Dune::Amg::AggregationLevelTransferPolicy< O, C >::createCoarseLevelSystem().

template<class G , class V , class Set >
G::MutableMatrix * Dune::Amg::GalerkinProduct< SequentialInformation >::build ( G &  fineGraph,
V &  visitedMap,
const SequentialInformation pinfo,
const AggregatesMap< typename G::VertexDescriptor > &  aggregates,
const typename G::Matrix::size_type &  size,
const Set &  copy 
)

Calculates the coarse matrix via a Galerkin product.

Parameters
fineGraphThe graph of the fine matrix.
visitedMapMap for marking vertices as visited.
pinfoParallel information about the fine level.
aggregatesThe mapping of the fine level unknowns onto aggregates.
sizeThe number of columns and rows of the coarse matrix.
copyThe attribute set identifying the copy nodes of the graph.

References Dune::Amg::ConnectivityConstructor< G, T >::examine(), Dune::Amg::SparsityBuilder< M >::maxRowSize(), Dune::Amg::SparsityBuilder< M >::minRowSize(), and Dune::Amg::SparsityBuilder< M >::sumRowSize().

template<class M , class IS , class A >
template<typename O , typename T >
void Dune::Amg::MatrixHierarchy< M, IS, A >::build ( const T &  criterion)
template<class G >
template<class M , class C >
tuple<int,int,int,int> Dune::Amg::Aggregator< G >::build ( const M &  m,
G &  graph,
AggregatesMap< Vertex > &  aggregates,
const C &  c,
bool  finestLevel 
)

Build the aggregates.

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

Parameters
mThe matrix to build the aggregates accordingly.
graphA (sub) graph of the matrix.
aggregatesAggregate map we will build. All entries should be initialized to UNAGGREGATED!
cThe coarsening criterion to use.
finestLevelWhether this the finest level. In that case rows representing Dirichlet boundaries will be detected and ignored during aggregation.
Returns
A tuple of the total number of aggregates, the number of isolated aggregates, the number of isolated aggregates, the number of aggregates consisting only of one vertex, and the number of skipped aggregates built.
template<class V>
template<class M , class G , class C >
tuple<int,int,int,int> Dune::Amg::AggregatesMap< V >::buildAggregates ( const M &  matrix,
G &  graph,
const C &  criterion,
bool  finestLevel 
)

Build the aggregates.

Parameters
matrixThe matrix describing the dependency.
graphThe graph corresponding to the matrix.
criterionThe aggregation criterion.
finestLevelWhether this the finest level. In that case rows representing Dirichlet boundaries will be detected and ignored during aggregation.
Returns
A tuple of the total number of aggregates, the number of isolated aggregates, the number of isolated aggregates, the number of aggregates consisting only of one vertex, and the number of skipped aggregates built.

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

template<class G , class C >
void Dune::Amg::buildDependency ( G &  graph,
const typename C::Matrix &  matrix,
criterion,
bool  finestLevel 
)

Build the dependency of the matrix graph.

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

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.

Parameters
fineThe fine matrix.
aggregatesThe aggregate mapping.
coarseThe coarse Matrix.
pinfoParallel information about the fine level.
copyThe attribute set identifying the copy nodes of the graph.

Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::build(), Dune::Amg::AggregationLevelTransferPolicy< O, C >::createCoarseLevelSystem(), and Dune::Amg::MatrixHierarchy< M, PI, A >::recalculateGalerkin().

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 
)

References col, and row.

template<class G, class S>
void Dune::Amg::Aggregate< G, S >::clear ( )

Clear the aggregate.

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,
typename Graph::VertexDescriptor  noAggregates 
)
inlinestatic

Build the coarse index set after the aggregatio.

Parameters
fineInfoThe parallel information at the fine level.
fineGraphThe graph of the fine lecel,
visitedMapMap for marking vertices as visited.
aggregatesThe mapping of unknowns onto aggregates.
coarseInfoThe information about the parallel data decomposition on the coarse level.
Returns
The number of unknowns on the coarse level.
template<typename E >
template<typename Graph , typename VM >
Graph::VertexDescriptor Dune::Amg::IndicesCoarsener< SequentialInformation, E >::coarsen ( const SequentialInformation fineInfo,
Graph &  fineGraph,
VM &  visitedMap,
AggregatesMap< typename Graph::VertexDescriptor > &  aggregates,
SequentialInformation coarseInfo,
typename Graph::VertexDescriptor  noAggregates 
)
static
Dune::Amg::CoarseningParameters::CoarseningParameters ( int  maxLevel = 100,
int  coarsenTarget = 1000,
double  minCoarsenRate = 1.2,
double  prolongDamp = 1.6,
AccumulationMode  accumulate = successiveAccu 
)
inline

Constructor.

Parameters
maxLevelThe maximum number of levels allowed in the matrix hierarchy (default: 100).
coarsenTargetIf the number of nodes in the matrix is below this threshold the coarsening will stop (default: 1000).
minCoarsenRateIf the coarsening rate falls below this threshold the coarsening will stop (default: 1.2)
prolongDampThe damping factor to apply to the prolongated update (default: 1.6)
accumulateWhether to accumulate the data onto fewer processors on coarser levels.
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

Coarsen the smoother hierarchy according to the matrix hierarchy.

Parameters
smoothersThe smoother hierarchy to coarsen.
argsThe arguments for the construction of the coarse level smoothers.

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

int Dune::Amg::CoarseningParameters::coarsenTarget ( ) const
inline

Get the maximum number of unknowns allowed on the coarsest level.

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

Coarsen the vector hierarchy according to the matrix hierarchy.

Parameters
hierarchyThe vector hierarchy to coarsen.
template<class T , class A >
Hierarchy< T, A >::Iterator Dune::Amg::Hierarchy< T, A >::coarsest ( )

Get an iterator positioned at the coarsest level.

Returns
An iterator positioned at the coarsest level.

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

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

Get an iterator positioned at the coarsest level.

Returns
An iterator positioned at the coarsest level.
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 
)

Constructor.

Parameters
aggregatesThe mapping of the vertices onto the aggregates.
graphThe graph to work on.
visitedMapThe map for marking vertices as visited
connectedThe set to added the connected aggregates to.
template<class G >
Dune::Amg::Aggregator< G >::ConnectivityCounter::ConnectivityCounter ( const VertexSet &  connected,
const AggregatesMap< Vertex > &  aggregates 
)

Constructor.

Parameters
connectedThe set of connected aggregates.
aggregatesMapping of the vertices onto the aggregates.
aggregatesThe mapping of aggregates to vertices.
template<class G, class S>
VertexSet::size_type Dune::Amg::Aggregate< G, S >::connectSize ( )

Get tne number of connections to other aggregates.

template<typename T>
static T* Dune::Amg::ConstructionTraits< T >::construct ( Arguments args)
inlinestatic

Construct an object with the specified arguments.

In the default implementation the copy constructor is called.

Parameters
argsThe arguments for the construction.

Referenced by Dune::Amg::Hierarchy< T, A >::addCoarser(), Dune::Amg::Hierarchy< T, A >::addFiner(), and Dune::Amg::Hierarchy< T, A >::addRedistributedOnCoarsest().

template<class T , class A >
static BlockVector<T,A>* Dune::Amg::ConstructionTraits< BlockVector< T, A > >::construct ( Arguments n)
inlinestatic
template<class M , class X , class Y , int l>
static SeqSSOR<M,X,Y,l>* Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class Y , int l>
static SeqSOR<M,X,Y,l>* Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class Y , int l>
static SeqJac<M,X,Y,l>* Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class Y >
static SeqILU0<M,X,Y>* Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class Y >
static SeqILUn<M,X,Y>* Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class Y , class C >
static ParSSOR<M,X,Y,C>* Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >::construct ( Arguments args)
inlinestatic
template<class X , class Y , class C , class T >
static BlockPreconditioner<X,Y,C,T>* Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::construct ( Arguments args)
inlinestatic
template<class C , class T >
static NonoverlappingBlockPreconditioner<C,T>* Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class TM , class TS , class TA >
static SeqOverlappingSchwarz<M,X,TM,TS,TA>* Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::construct ( Arguments args)
inlinestatic
template<class M , class X , class Y >
Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >::ConstructionArgs ( int  n = 1)
inline
template<class R , class G , class V >
void Dune::Amg::BaseConnectivityConstructor::constructNonOverlapConnectivity ( R &  row,
G &  graph,
V &  visitedMap,
const AggregatesMap< typename G::VertexDescriptor > &  aggregates,
const typename G::VertexDescriptor &  seed 
)
static
template<class R , class G , class V >
void Dune::Amg::BaseConnectivityConstructor::constructOverlapConnectivity ( R &  row,
G &  graph,
V &  visitedMap,
const AggregatesMap< typename G::VertexDescriptor > &  aggregates,
const OverlapVertex< typename G::VertexDescriptor > *&  seed,
const OverlapVertex< typename G::VertexDescriptor > *  overlapEnd 
)
static
template<class G >
Dune::Amg::Aggregator< G >::Counter::Counter ( )

Constructor.

int Dune::Amg::Parameters::debugLevel ( ) const
inline

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)
inlinestatic

Destroys an object.

Parameters
tPointer to the object to destroy.

Referenced by Dune::Amg::Hierarchy< T, A >::~Hierarchy().

template<class T , class A >
static void Dune::Amg::ConstructionTraits< BlockVector< T, A > >::deconstruct ( BlockVector< T, A > *  t)
inlinestatic
template<class M , class X , class Y , int l>
static void Dune::Amg::ConstructionTraits< SeqSSOR< M, X, Y, l > >::deconstruct ( SeqSSOR< M, X, Y, l > *  ssor)
inlinestatic
template<class M , class X , class Y , int l>
static void Dune::Amg::ConstructionTraits< SeqSOR< M, X, Y, l > >::deconstruct ( SeqSOR< M, X, Y, l > *  sor)
inlinestatic
template<class M , class X , class Y , int l>
static void Dune::Amg::ConstructionTraits< SeqJac< M, X, Y, l > >::deconstruct ( SeqJac< M, X, Y, l > *  jac)
inlinestatic
template<class M , class X , class Y >
static void Dune::Amg::ConstructionTraits< SeqILU0< M, X, Y > >::deconstruct ( SeqILU0< M, X, Y > *  ilu)
inlinestatic
template<class M , class X , class Y >
static void Dune::Amg::ConstructionTraits< SeqILUn< M, X, Y > >::deconstruct ( SeqILUn< M, X, Y > *  ilu)
inlinestatic
template<class M , class X , class Y , class C >
static void Dune::Amg::ConstructionTraits< ParSSOR< M, X, Y, C > >::deconstruct ( ParSSOR< M, X, Y, C > *  ssor)
inlinestatic
template<class X , class Y , class C , class T >
static void Dune::Amg::ConstructionTraits< BlockPreconditioner< X, Y, C, T > >::deconstruct ( BlockPreconditioner< X, Y, C, T > *  bp)
inlinestatic
template<class C , class T >
static void Dune::Amg::ConstructionTraits< NonoverlappingBlockPreconditioner< C, T > >::deconstruct ( NonoverlappingBlockPreconditioner< C, T > *  bp)
inlinestatic
template<class M , class X , class TM , class TS , class TA >
static void Dune::Amg::ConstructionTraits< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::deconstruct ( SeqOverlappingSchwarz< M, X, TM, TS, TA > *  schwarz)
inlinestatic
template<class G >
void Dune::Amg::Aggregator< G >::Counter::decrement ( )
protected

Decrement counter.

template<class T >
Dune::Amg::DefaultSmootherArgs< T >::DefaultSmootherArgs ( )
inline

Default constructor.

template<class M, class N>
Dune::Amg::Dependency< M, N >::Dependency ( const Parameters parms)
inline
template<class M, class N>
Dune::Amg::Dependency< M, N >::Dependency ( )
inline
template<class G >
Dune::Amg::Aggregator< G >::DependencyCounter::DependencyCounter ( )

Constructor.

Dune::Amg::DependencyParameters::DependencyParameters ( )
inline

Constructor.

bool Dune::Amg::EdgeProperties::depends ( ) const
inline

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

Returns
True if it depends on the starting point.

References Dune::Amg::EdgeProperties::DEPEND.

Dune::Amg::EdgeProperties::EdgeProperties ( )
inline

Constructor.

template<class V>
const_iterator Dune::Amg::AggregatesMap< V >::end ( ) const
inline
template<class V>
iterator Dune::Amg::AggregatesMap< V >::end ( )
inline
template<class G, class S>
const_iterator Dune::Amg::Aggregate< G, S >::end ( ) const

get an iterator over the vertices of the aggregate.

template<class M , class N >
void Dune::Amg::SymmetricMatrixDependency< M, N >::examine ( const ColIter col)
inline
template<class M , class N >
template<class G >
void Dune::Amg::SymmetricMatrixDependency< M, N >::examine ( G &  graph,
const typename G::EdgeIterator &  edge,
const ColIter col 
)
inline
template<class G , class T >
template<class V , class O , class R >
void Dune::Amg::ConnectivityConstructor< G, T >::examine ( G &  graph,
V &  visitedMap,
const T &  pinfo,
const AggregatesMap< Vertex > &  aggregates,
const O &  overlap,
const OverlapVertex< Vertex > *  overlapVertices,
const OverlapVertex< Vertex > *  overlapEnd,
R &  row 
)
static
template<class M, class N>
void Dune::Amg::Dependency< M, N >::examine ( const ColIter col)
template<class M, class N>
template<class G >
void Dune::Amg::Dependency< M, N >::examine ( G &  graph,
const typename G::EdgeIterator &  edge,
const ColIter col 
)
template<class G >
template<class V , class R >
void Dune::Amg::ConnectivityConstructor< G, SequentialInformation >::examine ( G &  graph,
V &  visitedMap,
const SequentialInformation pinfo,
const AggregatesMap< Vertex > &  aggregates,
R &  row 
)
static
template<class M, class N>
void Dune::Amg::SymmetricDependency< M, N >::examine ( const ColIter col)
template<class M, class N>
template<class G >
void Dune::Amg::SymmetricDependency< M, N >::examine ( G &  graph,
const typename G::EdgeIterator &  edge,
const ColIter col 
)
bool Dune::Amg::VertexProperties::excludedBorder ( ) const
inline

Tests whether the vertex is excluded from the aggregation.

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

References Dune::Amg::VertexProperties::BORDER.

template<class T , class A >
Hierarchy< T, A >::Iterator Dune::Amg::Hierarchy< T, A >::finest ( )

Get an iterator positioned at the finest level.

Returns
An iterator positioned at the finest level.

Referenced by Dune::Amg::FastAMG< M, X, PI, A >::pre().

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

Get an iterator positioned at the finest level.

Returns
An iterator positioned at the finest level.
template<class V>
void Dune::Amg::AggregatesMap< V >::free ( )

Free the allocated memory.

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

bool Dune::Amg::VertexProperties::front ( ) const
inline

Checks wether the node is marked as a front node.

References Dune::Amg::VertexProperties::FRONT.

template<class G >
Dune::Amg::Aggregator< G >::FrontMarker::FrontMarker ( std::vector< Vertex > &  front,
MatrixGraph graph 
)

Constructor.

Parameters
frontThe list to store the front vertices in.
graphThe matrix graph we work on.
template<class G >
Dune::Amg::Aggregator< G >::FrontNeighbourCounter::FrontNeighbourCounter ( const MatrixGraph front)

Constructor.

Parameters
frontThe vertices of the front.
bool Dune::Amg::Parameters::getAdditive ( ) const
inline

Get whether to use additive multigrid.

Returns
True if multigrid should be additive.
template<class T>
const SmootherArgs Dune::Amg::DefaultConstructionArgs< T >::getArgs ( ) const
inline
template<class M , class X , class S , class PI , class A >
template<class A1 >
void Dune::Amg::AMG< M, X, S, PI, A >::getCoarsestAggregateNumbers ( std::vector< std::size_t, A1 > &  cont)

Get the aggregate number of each unknown on the coarsest level.

Parameters
contThe random access container to store the numbers in.
template<class M , class IS , class A >
void Dune::Amg::MatrixHierarchy< M, IS, A >::getCoarsestAggregatesOnFinest ( std::vector< std::size_t > &  data) const

Get the mapping of fine level unknowns to coarse level aggregates.

For each fine level unknown i the correcponding data[i] is the aggregate it belongs to on the coarsest level.

Parameters
[out]dataThe mapping of fine level unknowns to coarse level aggregates.

References Dune::Amg::AggregatesMap< V >::begin(), Dune::Amg::AggregatesMap< V >::end(), and Dune::Amg::AggregatesMap< V >::ISOLATED.

template<class T>
const SequentialInformation& Dune::Amg::DefaultConstructionArgs< T >::getComm ( )
inline
template<class T , class C = SequentialInformation>
const C& Dune::Amg::DefaultParallelConstructionArgs< T, C >::getComm ( ) const
inline
std::size_t Dune::Amg::Parameters::getGamma ( ) const
inline

Get the value of gamma; 1 for V-cycle, 2 for W-cycle.

template<class T>
const Matrix& Dune::Amg::DefaultConstructionArgs< T >::getMatrix ( ) const
inline
template<class M , class X , class Y >
int Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >::getN ( )
inline
std::size_t Dune::Amg::Parameters::getNoPostSmoothSteps ( ) const
inline

Get the number of postsmoothing steps to apply.

Returns
The number of steps:
std::size_t Dune::Amg::Parameters::getNoPreSmoothSteps ( ) const
inline

Get the number of presmoothing steps to apply.

Returns
The number of steps:
double Dune::Amg::CoarseningParameters::getProlongationDampingFactor ( ) const
inline

Get the damping factor for the prolongation.

Returns
d The damping factor.
template<class M , class X , class TM , class TS , class TA >
const Vector& Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::getSubDomains ( )
inline
template<typename T, typename E>
template<typename G , typename I >
const GlobalIndex& Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::globalIndex ( ) const
inline
template<typename T, typename E>
template<typename G , typename I >
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::globalIndex ( const GlobalIndex global)
inline
template<class M , class IS , class A >
bool Dune::Amg::MatrixHierarchy< M, IS, A >::hasCoarsest ( ) const
template<class T , class A >
Dune::Amg::Hierarchy< T, A >::Hierarchy ( MemberType first)

Construct a new hierarchy.

Parameters
firstThe first element in the hierarchy.
template<class T , class A >
Dune::Amg::Hierarchy< T, A >::Hierarchy ( MemberType first)

Construct a new hierarchy.

Parameters
firstPointer to the first element in the hierarchy.
Warning
Hierarchy will be responsible for the memory management of the pointer.
template<class T , class A >
Dune::Amg::Hierarchy< T, A >::Hierarchy ( )

Construct a new empty hierarchy.

template<class T , class A >
Dune::Amg::Hierarchy< T, A >::Hierarchy ( const Hierarchy< T, A > &  other)

Copy constructor.

template<class G, class S>
int Dune::Amg::Aggregate< G, S >::id ( )

Get the id identifying the aggregate.

template<class G >
void Dune::Amg::Aggregator< G >::Counter::increment ( )
protected

Increment counter.

template<class M>
std::size_t Dune::Amg::SparsityBuilder< M >::index ( )
inline
bool Dune::Amg::EdgeProperties::influences ( ) const
inline

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

Returns
True if it is influenced.

References Dune::Amg::EdgeProperties::INFLUENCE.

template<class M , class N >
void Dune::Amg::SymmetricMatrixDependency< M, N >::init ( const Matrix matrix)
inline
template<class M, class N>
void Dune::Amg::Dependency< M, N >::init ( const Matrix matrix)
template<class M, class N>
void Dune::Amg::SymmetricDependency< M, N >::init ( const Matrix matrix)
template<class M , class N >
void Dune::Amg::SymmetricMatrixDependency< M, N >::initRow ( const Row row,
int  index 
)
inline
template<class M, class N>
void Dune::Amg::Dependency< M, N >::initRow ( const Row row,
int  index 
)
template<class M, class N>
void Dune::Amg::SymmetricDependency< M, N >::initRow ( const Row row,
int  index 
)
template<class M >
void Dune::Amg::SparsityBuilder< M >::insert ( const typename M::size_type &  index)
template<class G, class S>
void Dune::Amg::Aggregate< G, S >::invalidate ( )
inline
template<class M , class IS , class A >
bool Dune::Amg::MatrixHierarchy< M, IS, A >::isBuilt ( ) const

Whether the hierarchy was built.

Returns
true if the MatrixHierarchy::build method was called.
template<class M , class N >
bool Dune::Amg::SymmetricMatrixDependency< M, N >::isIsolated ( )
inline
template<class M, class N>
bool Dune::Amg::Dependency< M, N >::isIsolated ( )
template<class M, class N>
bool Dune::Amg::SymmetricDependency< M, N >::isIsolated ( )
bool Dune::Amg::VertexProperties::isolated ( ) const
inline

Checks wether the node is isolated.

References Dune::Amg::VertexProperties::ISOLATED.

bool Dune::Amg::EdgeProperties::isOneWay ( ) const
inline

Checks wether the edge is one way. I.e. either the influence or the depends flag but is set.

References Dune::Amg::EdgeProperties::DEPEND, and Dune::Amg::EdgeProperties::INFLUENCE.

template<typename T, typename E>
template<typename G , typename I >
bool Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::isPublic ( )
inline
template<typename T, typename E>
template<typename G , typename I >
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::isPublic ( bool  b)
inline
bool Dune::Amg::EdgeProperties::isStrong ( ) const
inline

Checks wether the edge is strong. I.e. the influence or depends flag is set.

References Dune::Amg::EdgeProperties::DEPEND, and Dune::Amg::EdgeProperties::INFLUENCE.

bool Dune::Amg::EdgeProperties::isTwoWay ( ) const
inline

Checks wether the edge is two way. I.e. both the influence flag and the depends flag are that.

References Dune::Amg::EdgeProperties::DEPEND, and Dune::Amg::EdgeProperties::INFLUENCE.

template<class M , class X , class S , class P , class K , class A >
Dune::Amg::KAMG< M, X, S, P, K, A >::KAMG ( const OperatorHierarchy matrices,
CoarseSolver coarseSolver,
const SmootherArgs smootherArgs,
std::size_t  gamma,
std::size_t  preSmoothingSteps = 1,
std::size_t  postSmoothingSteps = 1,
std::size_t  maxLevelKrylovSteps = 3,
double  minDefectReduction = 1e-1 
)

Construct a new amg with a specific coarse solver.

Parameters
matricesThe already set up matix hierarchy.
coarseSolverThe set up solver to use on the coarse grid, must match the sparse matrix in the matrix hierachy.
smootherArgsThe arguments needed for thesmoother to use for pre and post smoothing
gammaThe number of subcycles. 1 for V-cycle, 2 for W-cycle.
preSmoothingStepsThe number of smoothing steps for premoothing.
postSmoothingStepsThe number of smoothing steps for postmoothing.
maxLevelKrylovStepsThe maximum number of Krylov steps allowed at each level.
minDefectReductionThe minimal defect reduction to achieve on each Krylov level.
template<class M , class X , class S , class P , class K , class A >
template<class C >
Dune::Amg::KAMG< M, X, S, P, K, A >::KAMG ( const Operator fineOperator,
const C &  criterion,
const SmootherArgs smootherArgs,
std::size_t  gamma = 1,
std::size_t  preSmoothingSteps = 1,
std::size_t  postSmoothingSteps = 1,
std::size_t  maxLevelKrylovSteps = 3,
double  minDefectReduction = 1e-1,
const ParallelInformation pinfo = ParallelInformation() 
)

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
fineOperatorThe operator on the fine level.
criterionThe criterion describing the coarsening strategy. E. g. SymmetricCriterion or UnsymmetricCriterion.
smootherArgsThe arguments for constructing the smoothers.
gamma1 for V-cycle, 2 for W-cycle
preSmoothingStepsThe number of smoothing steps for premoothing.
postSmoothingStepsThe number of smoothing steps for postmoothing.
maxLevelKrylovStepsThe maximum number of Krylov steps allowed at each level.
minDefectReductionThe defect reduction to achieve on each krylov level.
pinfoThe information about the parallel distribution of the data.
template<class M , class X , class S , class PI , class A >
std::size_t Dune::Amg::AMG< M, X, S, PI, A >::levels ( )
template<class T , class A >
std::size_t Dune::Amg::Hierarchy< T, A >::levels ( ) const

Get the number of levels in the hierarchy.

Returns
The number of levels.

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

template<class M , class IS , class A >
std::size_t Dune::Amg::MatrixHierarchy< M, IS, A >::levels ( ) const

Get the number of levels in the hierarchy.

Returns
The number of levels.
template<class M , class IS , class A >
const MatrixHierarchy< M, IS, A >::ParallelMatrixHierarchy & Dune::Amg::MatrixHierarchy< M, IS, A >::matrices ( ) const

Get the matrix hierarchy.

Returns
The matrix hierarchy.
template<class M , class IS , class A >
Dune::Amg::MatrixHierarchy< M, IS, A >::MatrixHierarchy ( const MatrixOperator fineMatrix,
const ParallelInformation pinfo = ParallelInformation() 
)

Constructor.

Parameters
fineMatrixThe matrix to coarsen.
pinfoThe information about the parallel data decomposition at the first level.

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

std::size_t Dune::Amg::AggregationParameters::maxAggregateSize ( ) const
inline

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

Returns
The maximum number of nodes.
std::size_t Dune::Amg::AggregationParameters::maxConnectivity ( ) const
inline

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.
std::size_t Dune::Amg::AggregationParameters::maxDistance ( ) const
inline

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.
int Dune::Amg::CoarseningParameters::maxLevel ( ) const
inline

Get the maximum number of levels allowed in the hierarchy.

template<class M , class X , class S , class PI , class A >
std::size_t Dune::Amg::AMG< M, X, S, PI, A >::maxlevels ( )
template<class M , class X , class S , class P , class K , class A >
std::size_t Dune::Amg::KAMG< M, X, S, P, K, A >::maxlevels ( )
template<class M , class IS , class A >
std::size_t Dune::Amg::MatrixHierarchy< M, IS, A >::maxlevels ( ) const

Get the max number of levels in the hierarchy of processors.

Returns
The maximum number of levels.
template<class M >
std::size_t Dune::Amg::SparsityBuilder< M >::maxRowSize ( )
std::size_t Dune::Amg::AggregationParameters::minAggregateSize ( ) const
inline

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

Returns
The minimum number of nodes.
double Dune::Amg::CoarseningParameters::minCoarsenRate ( ) const
inline

Get the minimum coarsening rate to be achieved.

template<class M >
std::size_t Dune::Amg::SparsityBuilder< M >::minRowSize ( )
template<class M , class C >
Dune::Amg::NonoverlappingOperatorArgs< M, C >::NonoverlappingOperatorArgs ( M &  matrix,
C &  comm 
)
inline
template<class M , class X , class TM , class TS , class TA >
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::noSubdomains ( ) const
inline
template<class M , class X , class TM , class TS , class TA >
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::NoneAdder::noSubdomains ( ) const
inline
template<class M , class X , class TM , class TS , class TA >
template<class VM >
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::noSubdomains ( ) const
inline
template<class V>
std::size_t Dune::Amg::AggregatesMap< V >::noVertices ( ) const
template<typename T, typename E>
template<typename G , typename I >
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::operator() ( const typename G::ConstEdgeIterator &  edge)
inline
template<typename T, typename E>
template<typename G , typename I >
Vertex Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::operator() ( const GlobalIndex global)
inline
template<class T>
template<class A >
bool Dune::Amg::GalerkinProduct< T >::OVLess< A >::operator() ( const OverlapVertex< A > &  o1,
const OverlapVertex< A > &  o2 
)
inline
template<class G , class S , class V >
void Dune::Amg::BaseConnectivityConstructor::ConnectedBuilder< G, S, V >::operator() ( const ConstEdgeIterator edge)

Process an edge pointing to another aggregate.

Parameters
edgeThe iterator positioned at the edge.
template<int N>
template<class M >
FieldTraits<typename M::field_type>::real_type Dune::Amg::Diagonal< N >::operator() ( const M &  m) const
inline

compute the norm of a matrix.

Parameters
mThe matrix ro compute the norm of.
template<class M >
FieldTraits<typename M::field_type>::real_type Dune::Amg::RowSum::operator() ( const M &  m) const
inline

compute the norm of a matrix.

Parameters
mThe matrix row to compute the norm of.
template<class M >
FieldTraits<typename M::field_type>::real_type Dune::Amg::FrobeniusNorm::operator() ( const M &  m) const
inline

compute the norm of a matrix.

Parameters
mThe matrix row to compute the norm of.
template<class M >
FieldTraits<typename M::field_type>::real_type Dune::Amg::AlwaysOneNorm::operator() ( const M &  m) const
inline

compute the norm of a matrix.

Parameters
mThe matrix row to compute the norm of.
template<class V>
template<class EdgeIterator >
void Dune::Amg::AggregatesMap< V >::DummyEdgeVisitor::operator() ( const EdgeIterator &  edge) const
inline
template<class M , class X , class TM , class TS , class TA >
template<class T >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::operator() ( const T &  edge)
inline
template<class M , class X , class TM , class TS , class TA >
template<class T >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::NoneAdder::operator() ( const T &  edge)
inline
template<class M , class X , class TM , class TS , class TA >
template<class VM >
template<class T >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::operator() ( const T &  edge)
inline
template<class G >
template<class V >
void Dune::Amg::Aggregator< G >::AggregateVisitor< V >::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)

Examine an edge.

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

template<class G >
void Dune::Amg::Aggregator< G >::FrontNeighbourCounter::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)
template<class G >
void Dune::Amg::Aggregator< G >::TwoWayCounter::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)
template<class G >
void Dune::Amg::Aggregator< G >::OneWayCounter::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)
template<class G >
void Dune::Amg::Aggregator< G >::ConnectivityCounter::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)
template<class G >
void Dune::Amg::Aggregator< G >::DependencyCounter::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)
template<class G >
void Dune::Amg::Aggregator< G >::FrontMarker::operator() ( const typename MatrixGraph::ConstEdgeIterator edge)
template<class M >
void Dune::Amg::SparsityBuilder< M >::operator++ ( )
template<class T >
std::ostream& Dune::Amg::operator<< ( std::ostream &  os,
const AggregationCriterion< T > &  criterion 
)
std::ostream& Dune::Amg::operator<< ( std::ostream &  os,
const EdgeProperties props 
)
inline
std::ostream& Dune::Amg::operator<< ( std::ostream &  os,
const VertexProperties props 
)
inline
std::bitset< EdgeProperties::SIZE >::reference Dune::Amg::EdgeProperties::operator[] ( std::size_t  v)
inline

Access the bits directly.

bool Dune::Amg::EdgeProperties::operator[] ( std::size_t  v) const
inline

Acess the bits directly.

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

Get the property for a key.

Parameters
keyThe key.
Returns
The corresponding property.

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

std::bitset< VertexProperties::SIZE >::reference Dune::Amg::VertexProperties::operator[] ( std::size_t  v)
inline

Access the bits directly.

bool Dune::Amg::VertexProperties::operator[] ( std::size_t  v) const
inline

Acess the bits directly.

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

Get the properties associated to a vertex.

Parameters
vertexThe vertex whose Properties we want.

References Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::index.

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

Get the aggregate a vertex belongs to.

Parameters
vThe vertex we want to know the aggregate of.
Returns
The aggregate the vertex is mapped to.
template<class V>
const AggregateDescriptor& Dune::Amg::AggregatesMap< V >::operator[] ( const VertexDescriptor v) const

Get the aggregate a vertex belongs to.

Parameters
vThe vertex we want to know the aggregate of.
Returns
The aggregate the vertex is mapped to.
template<class M , class C >
Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >::OverlappingSchwarzOperatorArgs ( M &  matrix,
C &  comm 
)
inline
Dune::Amg::OwnerOverlapCopyCommunicationArgs::OwnerOverlapCopyCommunicationArgs ( MPI_Comm  comm,
SolverCategory::Category  cat 
)
inline
template<typename T, typename E>
template<typename G , typename I >
Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::ParallelAggregateRenumberer ( AggregatesMap< Vertex > &  aggregates,
const I &  lookup 
)
inline
template<class M , class IS , class A >
const MatrixHierarchy< M, IS, A >::ParallelInformationHierarchy & Dune::Amg::MatrixHierarchy< M, IS, A >::parallelInformation ( ) const

Get the hierarchy of the parallel data distribution information.

Returns
The hierarchy of the parallel data distribution information.
Dune::Amg::Parameters::Parameters ( int  maxLevel = 100,
int  coarsenTarget = 1000,
double  minCoarsenRate = 1.2,
double  prolongDamp = 1.6,
AccumulationMode  accumulate = successiveAccu 
)
inline

Constructor.

Parameters
maxLevelThe maximum number of levels allowed in the matrix hierarchy (default: 100).
coarsenTargetIf the number of nodes in the matrix is below this threshold the coarsening will stop (default: 1000).
minCoarsenRateIf the coarsening rate falls below this threshold the coarsening will stop (default: 1.2)
prolongDampThe damping factor to apply to the prolongated update (default: 1.6)
accumulateWhether to accumulate the data onto fewer processors on coarser levels.
template<class G >
Vertex Dune::Amg::Aggregator< G >::Stack::pop ( )
template<class M , class X , class S , class PI , class A >
void Dune::Amg::AMG< M, X, S, PI, A >::post ( Domain x)
virtual

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
xThe right hand side of the equation.

Implements Dune::Preconditioner< X, X >.

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

template<class M , class X , class S , class P , class K , class A >
void Dune::Amg::KAMG< M, X, S, P, K, A >::post ( Domain x)
virtual

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
xThe 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 
)
inlinestatic

apply post smoothing in forward direction

Parameters
smootherThe smoother to use.
dThe current defect.
vhandle to store the update in.

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

template<typename LevelContext >
void Dune::Amg::postsmooth ( LevelContext &  levelContext,
size_t  steps 
)

Apply post smoothing on the current level.

Parameters
levelContextthe iterators of the current level.
stepsThe number of smoothing steps to apply.

References Dune::Amg::SmootherApplier< T >::postSmooth().

Referenced by Dune::Amg::KAmgTwoGrid< AMG >::apply(), and Dune::Amg::TwoLevelMethod< FO, CSP, S >::apply().

template<class M , class X , class Y , int l>
static void Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::postSmooth ( Smoother smoother,
Domain v,
Range d 
)
inlinestatic
template<class M , class X , class Y , class C , int l>
static void Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::postSmooth ( Smoother smoother,
Domain v,
Range d 
)
inlinestatic
template<class M , class X , class Y , class C , int l>
static void Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::postSmooth ( Smoother smoother,
Domain v,
Range d 
)
inlinestatic
template<class M , class X , class MS , class TA >
static void Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::postSmooth ( Smoother smoother,
Domain v,
const Range d 
)
inlinestatic
template<class M , class X , class S , class PI , class A >
void Dune::Amg::AMG< M, X, S, PI, A >::pre ( Domain x,
Range b 
)
virtual

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
xThe left hand side of the equation.
bThe right hand side of the equation.

Implements Dune::Preconditioner< X, X >.

References Dune::Matrix< T, A >::begin(), Dune::Amg::Hierarchy< T, A >::coarsest(), col, Dune::Matrix< T, A >::end(), mat, and row.

template<class M , class X , class S , class P , class K , class A >
void Dune::Amg::KAMG< M, X, S, P, K, A >::pre ( Domain x,
Range b 
)
virtual

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
xThe left hand side of the equation.
bThe right hand side of the equation.

Implements Dune::Preconditioner< X, X >.

template<class T >
static void Dune::Amg::SmootherApplier< T >::preSmooth ( Smoother smoother,
Domain v,
const Range d 
)
inlinestatic

apply pre smoothing in forward direction

Parameters
smootherThe smoother to use.
dThe current defect.
vhandle to store the update in.

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

template<typename LevelContext >
void Dune::Amg::presmooth ( LevelContext &  levelContext,
size_t  steps 
)

Apply pre smoothing on the current level.

Parameters
levelContextthe iterators of the current level.
stepsThe number of smoothing steps to apply.

References Dune::Amg::SmootherApplier< T >::preSmooth().

Referenced by Dune::Amg::KAmgTwoGrid< AMG >::apply(), and Dune::Amg::TwoLevelMethod< FO, CSP, S >::apply().

template<class M , class X , class Y , int l>
static void Dune::Amg::SmootherApplier< SeqSOR< M, X, Y, l > >::preSmooth ( Smoother smoother,
Domain v,
Range d 
)
inlinestatic
template<class M , class X , class Y , class C , int l>
static void Dune::Amg::SmootherApplier< BlockPreconditioner< X, Y, C, SeqSOR< M, X, Y, l > > >::preSmooth ( Smoother smoother,
Domain v,
Range d 
)
inlinestatic
template<class M , class X , class Y , class C , int l>
static void Dune::Amg::SmootherApplier< NonoverlappingBlockPreconditioner< C, SeqSOR< M, X, Y, l > > >::preSmooth ( Smoother smoother,
Domain v,
Range d 
)
inlinestatic
template<class M , class X , class MS , class TA >
static void Dune::Amg::SmootherApplier< SeqOverlappingSchwarz< M, X, MultiplicativeSchwarzMode, MS, TA > >::preSmooth ( Smoother smoother,
Domain v,
const Range d 
)
inlinestatic
template<class V >
void Dune::Amg::printAggregates2d ( const AggregatesMap< V > &  aggregates,
int  n,
int  m,
std::ostream &  os 
)
void Dune::Amg::EdgeProperties::printFlags ( ) const

Prints the attributes of the edge for debugging.

template<class V , class V1 , class T1 , class T2 >
template<typename T3 >
void Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >::prolongateVector ( const AggregatesMap< Vertex > &  aggregates,
Vector coarse,
Vector fine,
Vector fineRedist,
T3  damp,
OwnerOverlapCopyCommunication< T1, T2 > &  comm,
const Redist redist 
)
inlinestatic
template<class V , class V1 , class T1 , class T2 >
template<typename T3 >
void Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >::prolongateVector ( const AggregatesMap< Vertex > &  aggregates,
Vector coarse,
Vector fine,
T3  damp,
OwnerOverlapCopyCommunication< T1, T2 > &  comm 
)
inlinestatic
template<class V , class V1 >
template<typename T >
void Dune::Amg::Transfer< V, V1, SequentialInformation >::prolongateVector ( const AggregatesMap< Vertex > &  aggregates,
Vector coarse,
Vector fine,
Vector fineRedist,
damp,
const SequentialInformation comm,
const Redist redist 
)
inline
template<class V , class V1 >
template<typename T >
void Dune::Amg::Transfer< V, V1, SequentialInformation >::prolongateVector ( const AggregatesMap< Vertex > &  aggregates,
Vector coarse,
Vector fine,
damp,
const SequentialInformation comm 
)
inline
template<typename G , std::size_t i>
Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::PropertyGraphVertexPropertyMap ( G &  g)
inline

Constructor.

Parameters
gThe graph whose properties we access.
template<typename G , std::size_t i>
Dune::Amg::PropertyGraphVertexPropertyMap< G, i >::PropertyGraphVertexPropertyMap ( )
inline

Default constructor.

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

Constructor.

Parameters
containerThe container with the property bundle.
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 ( )
inline

The default constructor.

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

Recalculate the galerkin products.

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

References Dune::Amg::BaseGalerkinProduct::calculate(), and Dune::redistributeMatrixEntries().

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
void Dune::Amg::AMG< M, X, S, PI, A >::recalculateHierarchy ( )
inline

Recalculate the matrix hierarchy.

It is assumed that the coarsening for the changed fine level matrix would yield the same aggregates. In this case it suffices to recalculate all the Galerkin products for the matrices of the coarser levels.

template<class G, class S>
void Dune::Amg::Aggregate< G, S >::reconstruct ( const Vertex vertex)

Reconstruct the aggregat from an seed node.

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

template<class M , class IS , class A >
const MatrixHierarchy< M, IS, A >::RedistributeInfoList & Dune::Amg::MatrixHierarchy< M, IS, A >::redistributeInformation ( ) const

Get the hierachy of the information about redistributions,.

Returns
The hierarchy of the information about redistributions of the data to fewer processes.
template<typename M , typename C1 >
bool Dune::Amg::repartitionAndDistributeMatrix ( const M &  origMatrix,
M &  newMatrix,
SequentialInformation origSequentialInformationomm,
SequentialInformation *&  newComm,
RedistributeInformation< SequentialInformation > &  ri,
int  nparts,
C1 &  criterion 
)
template<typename M , typename C , typename C1 >
bool Dune::Amg::repartitionAndDistributeMatrix ( const M &  origMatrix,
M &  newMatrix,
C &  origComm,
C *&  newComm,
RedistributeInformation< C > &  ri,
int  nparts,
C1 &  criterion 
)
template<typename M >
bool Dune::Amg::repartitionAndDistributeMatrix ( M &  origMatrix,
M &  newMatrix,
SequentialInformation origComm,
SequentialInformation newComm,
RedistributeInformation< SequentialInformation > &  ri 
)
void Dune::Amg::EdgeProperties::reset ( )
inline

Reset all flags.

template<typename T, typename E>
template<typename G , typename I >
void Dune::Amg::ParallelIndicesCoarsener< T, E >::ParallelAggregateRenumberer< G, I >::reset ( )
inline
void Dune::Amg::VertexProperties::reset ( )
inline

Reset all flags.

void Dune::Amg::EdgeProperties::resetDepends ( )
inline

Resets the depends flag.

References Dune::Amg::EdgeProperties::DEPEND.

void Dune::Amg::VertexProperties::resetExcludedBorder ( )
inline

Marks the vertex as included in the aggregation.

References Dune::Amg::VertexProperties::BORDER.

void Dune::Amg::VertexProperties::resetFront ( )
inline

Resets the front node flag.

References Dune::Amg::VertexProperties::FRONT.

void Dune::Amg::EdgeProperties::resetInfluences ( )
inline

Resets the influence flag.

References Dune::Amg::EdgeProperties::INFLUENCE.

void Dune::Amg::VertexProperties::resetIsolated ( )
inline

Resets the isolated flag.

References Dune::Amg::VertexProperties::ISOLATED.

void Dune::Amg::VertexProperties::resetVisited ( )
inline

Resets the visited flag.

References Dune::Amg::VertexProperties::VISITED.

template<class V , class V1 >
void Dune::Amg::Transfer< V, V1, SequentialInformation >::restrictVector ( const AggregatesMap< Vertex > &  aggregates,
Vector coarse,
const Vector fine,
const SequentialInformation comm 
)
inlinestatic
template<class V , class V1 , class T1 , class T2 >
void Dune::Amg::Transfer< V, V1, OwnerOverlapCopyCommunication< T1, T2 > >::restrictVector ( const AggregatesMap< Vertex > &  aggregates,
Vector coarse,
const Vector fine,
OwnerOverlapCopyCommunication< T1, T2 > &  comm 
)
inlinestatic
template<class G, class S>
void Dune::Amg::Aggregate< G, S >::seed ( const Vertex vertex)

Initialize the aggregate with one vertex.

template<class T>
Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::SeqOverlappingSchwarzSmootherArgs ( Overlap  overlap_ = vertex,
bool  onthefly_ = false 
)
inline
Dune::Amg::SequentialCommunicationArgs::SequentialCommunicationArgs ( CollectiveCommunication< void * >  comm,
int  cat 
)
inline
template<class T >
template<class M , class O >
void Dune::Amg::DirichletBoundarySetter< T >::set ( M &  coarse,
const T &  pinfo,
const O &  copy 
)
static

References col, and row.

template<class M , class O >
void Dune::Amg::DirichletBoundarySetter< SequentialInformation >::set ( M &  coarse,
const SequentialInformation pinfo,
const O &  copy 
)
static
void Dune::Amg::CoarseningParameters::setAccumulate ( AccumulationMode  accu)
inline

Set whether he data should be accumulated on fewer processes on coarser levels.

void Dune::Amg::CoarseningParameters::setAccumulate ( bool  accu)
inline
void Dune::Amg::Parameters::setAdditive ( bool  additive)
inline

Set whether to use additive multigrid.

Parameters
additiveTrue if multigrid should be additive.
template<class M , class X , class TM , class TS , class TA >
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::setAggregate ( const AggregateDescriptor aggregate_)
inline
template<class M , class X , class TM , class TS , class TA >
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::NoneAdder::setAggregate ( const AggregateDescriptor aggregate_)
inline
template<class M , class X , class TM , class TS , class TA >
template<class VM >
int Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::AggregateAdder< VM >::setAggregate ( const AggregateDescriptor aggregate_)
inline
void Dune::Amg::DependencyParameters::setAlpha ( double  a)
inline

Set the scaling value for marking connections as strong. Default value is 1/3.

template<class T>
void Dune::Amg::DefaultConstructionArgs< T >::setArgs ( const SmootherArgs args)
inline
void Dune::Amg::DependencyParameters::setBeta ( double  b)
inline

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

void Dune::Amg::CoarseningParameters::setCoarsenTarget ( int  nodes)
inline

Set the maximum number of unknowns allowed on the coarsest level.

template<class T>
template<class T1 >
void Dune::Amg::DefaultConstructionArgs< T >::setComm ( T1 &  comm)
inline
template<class T , class C = SequentialInformation>
void Dune::Amg::DefaultParallelConstructionArgs< T, C >::setComm ( const C &  comm)
inline
void Dune::Amg::Parameters::setDebugLevel ( int  level)
inline

Set the debugging level.

Parameters
levelIf 0 no debugging output will be generated.
Warning
In parallel the level has to be consistent over all procceses.
template<class T>
void Dune::Amg::AggregationCriterion< T >::setDefaultValuesAnisotropic ( std::size_t  dim,
std::size_t  diameter = 2 
)
inline

Sets reasonable default values for an aisotropic problem.

Reasonable means that we should end up with cube aggregates with sides of diameter 2 and sides in one dimension that are longer (e.g. for 3D: 2x2x3).

Parameters
dimThe dimension of the problem.
diameterThe preferred diameter for the aggregation.
void Dune::Amg::AggregationParameters::setDefaultValuesAnisotropic ( std::size_t  dim,
std::size_t  diameter = 2 
)
inline

Sets reasonable default values for an aisotropic problem.

Reasonable means that we should end up with cube aggregates with sides of diameter 2 and sides in one dimension that are longer (e.g. for 3D: 2x2x3).

Parameters
dimThe dimension of the problem.
diameterThe preferred diameter for the aggregation.

References Dune::Amg::AggregationParameters::setDefaultValuesIsotropic().

template<class T>
void Dune::Amg::AggregationCriterion< T >::setDefaultValuesIsotropic ( std::size_t  dim,
std::size_t  diameter = 2 
)
inline

Sets reasonable default values for an isotropic problem.

Reasonable means that we should end up with cube aggregates of diameter 2.

Parameters
dimThe dimension of the problem.
diameterThe preferred diameter for the aggregation.

Referenced by Dune::Amg::AggregationCriterion< SymmetricDependency< M, Norm > >::setDefaultValuesAnisotropic().

void Dune::Amg::AggregationParameters::setDefaultValuesIsotropic ( std::size_t  dim,
std::size_t  diameter = 2 
)
inline

Sets reasonable default values for an isotropic problem.

Reasonable means that we should end up with cube aggregates of diameter 2.

Parameters
dimThe dimension of the problem.
diameterThe preferred diameter for the aggregation.

Referenced by Dune::Amg::AggregationParameters::setDefaultValuesAnisotropic().

void Dune::Amg::EdgeProperties::setDepends ( )
inline

Marks the edge as one of which the end point depends on the starting point.

References Dune::Amg::EdgeProperties::DEPEND.

void Dune::Amg::VertexProperties::setExcludedBorder ( )
inline

Marks the vertex as excluded from the aggregation.

References Dune::Amg::VertexProperties::BORDER.

void Dune::Amg::VertexProperties::setFront ( )
inline

Marks the node as belonging to the current clusters front.

References Dune::Amg::VertexProperties::FRONT.

void Dune::Amg::Parameters::setGamma ( std::size_t  gamma)
inline

Set the value of gamma; 1 for V-cycle, 2 for W-cycle.

void Dune::Amg::EdgeProperties::setInfluences ( )
inline

Marks the edge as one of which the start vertex by the end vertex.

References Dune::Amg::EdgeProperties::INFLUENCE.

void Dune::Amg::VertexProperties::setIsolated ( )
inline

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.

References Dune::Amg::VertexProperties::ISOLATED.

template<class T>
void Dune::Amg::DefaultConstructionArgs< T >::setMatrix ( const Matrix &  matrix)
inline
template<class T>
virtual void Dune::Amg::DefaultConstructionArgs< T >::setMatrix ( const Matrix &  matrix,
const AggregatesMap amap 
)
inlinevirtual
template<class M , class X , class TM , class TS , class TA >
virtual void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::setMatrix ( const M &  matrix,
const AggregatesMap amap 
)
inlinevirtual
template<class M , class X , class TM , class TS , class TA >
void Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::setMatrix ( const M &  matrix)
inline
void Dune::Amg::AggregationParameters::setMaxAggregateSize ( std::size_t  size)
inline

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

The default values is 6.

Parameters
sizeThe maximum number of nodes.
void Dune::Amg::AggregationParameters::setMaxConnectivity ( std::size_t  connectivity)
inline

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
connectivityThe maximum number of connections a aggregate is allowed to have.
void Dune::Amg::AggregationParameters::setMaxDistance ( std::size_t  distance)
inline

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
distanceThe maximum distance allowed.
void Dune::Amg::CoarseningParameters::setMaxLevel ( int  l)
inline

Set the maximum number of levels allowed in the hierarchy.

void Dune::Amg::AggregationParameters::setMinAggregateSize ( std::size_t  size)
inline

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

the default value is 4.

Returns
The minimum number of nodes.
void Dune::Amg::CoarseningParameters::setMinCoarsenRate ( double  rate)
inline

Set the minimum coarsening rate to be achieved in each coarsening.

The default value is 1.2

template<class M , class X , class Y >
void Dune::Amg::ConstructionArgs< SeqILUn< M, X, Y > >::setN ( int  n)
inline
void Dune::Amg::Parameters::setNoPostSmoothSteps ( std::size_t  steps)
inline

Set the number of postsmoothing steps to apply.

Parameters
stepsThe number of steps:
void Dune::Amg::Parameters::setNoPreSmoothSteps ( std::size_t  steps)
inline

Set the number of presmoothing steps to apply.

Parameters
stepsThe number of steps:
void Dune::Amg::CoarseningParameters::setProlongationDampingFactor ( double  d)
inline

Set the damping factor for the prolongation.

Parameters
dThe new damping factor.
void Dune::Amg::AggregationParameters::setSkipIsolated ( bool  skip)
inline

Set whether isolated aggregates will not be represented on the coarse level.

Parameters
skipTrue if these aggregates will be skipped.
void Dune::Amg::VertexProperties::setVisited ( )
inline

Mark the node as already visited.

References Dune::Amg::VertexProperties::VISITED.

template<class G, class S>
VertexSet::size_type Dune::Amg::Aggregate< G, S >::size ( )

Get the size of the aggregate.

bool Dune::Amg::AggregationParameters::skipIsolated ( ) const
inline

Whether isolated aggregates will not be represented on the coarse level.

Returns
True if these aggregates will be skipped.
template<class M >
Dune::Amg::SparsityBuilder< M >::SparsityBuilder ( M &  matrix)

Constructor.

Parameters
matrixThe matrix whose sparsity pattern we should set up.
template<class G >
Dune::Amg::Aggregator< G >::Stack::Stack ( const MatrixGraph graph,
const Aggregator< G > &  aggregatesBuilder,
const AggregatesMap< Vertex > &  aggregates 
)
template<class M >
std::size_t Dune::Amg::SparsityBuilder< M >::sumRowSize ( )
template<class M , class Norm >
Dune::Amg::SymmetricCriterion< M, Norm >::SymmetricCriterion ( const Parameters parms)
inline
template<class M , class Norm >
Dune::Amg::SymmetricCriterion< M, Norm >::SymmetricCriterion ( )
inline
template<class M, class N>
Dune::Amg::SymmetricDependency< M, N >::SymmetricDependency ( const Parameters parms)
inline
template<class M, class N>
Dune::Amg::SymmetricDependency< M, N >::SymmetricDependency ( )
inline
template<class M , class N >
Dune::Amg::SymmetricMatrixDependency< M, N >::SymmetricMatrixDependency ( const Parameters parms)
inline
template<class M , class N >
Dune::Amg::SymmetricMatrixDependency< M, N >::SymmetricMatrixDependency ( )
inline
template<class M , class Norm >
Dune::Amg::UnSymmetricCriterion< M, Norm >::UnSymmetricCriterion ( const Parameters parms)
inline
template<class M , class Norm >
Dune::Amg::UnSymmetricCriterion< M, Norm >::UnSymmetricCriterion ( )
inline
template<class M , class X , class S , class PI , class A >
bool Dune::Amg::AMG< M, X, S, PI, A >::usesDirectCoarseLevelSolver ( ) const

Check whether the coarse solver used is a direct solver.

Returns
True if the coarse level solver is a direct solver.
template<class G >
int Dune::Amg::Aggregator< G >::Counter::value ( )

Access the current count.

template<class M , class X , class TM , class TS , class TA >
Dune::Amg::ConstructionArgs< SeqOverlappingSchwarz< M, X, TM, TS, TA > >::VertexAdder::VertexAdder ( Vector subdomains_,
const AggregatesMap aggregates_ 
)
inline
Dune::Amg::VertexProperties::VertexProperties ( )
inline

Constructor.

bool Dune::Amg::VertexProperties::visited ( ) const
inline

Checks wether the node is marked as visited.

References Dune::Amg::VertexProperties::VISITED.

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.

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

Referenced by Dune::Amg::BaseConnectivityConstructor::constructOverlapConnectivity().

template<class V>
Dune::Amg::AggregatesMap< V >::~AggregatesMap ( )

Destructor.

template<class G >
Dune::Amg::Aggregator< G >::~Aggregator ( )

Destructor.

template<class M , class X , class S , class PI , class A >
Dune::Amg::AMG< M, X, S, PI, A >::~AMG ( )
template<class T>
virtual Dune::Amg::DefaultConstructionArgs< T >::~DefaultConstructionArgs ( )
inlinevirtual
template<class T , class C = SequentialInformation>
virtual Dune::Amg::DefaultParallelConstructionArgs< T, C >::~DefaultParallelConstructionArgs ( )
inlinevirtual
template<class T , class A >
Dune::Amg::Hierarchy< T, A >::~Hierarchy ( )
template<class M , class IS , class A >
Dune::Amg::MatrixHierarchy< M, IS, A >::~MatrixHierarchy ( )
template<class G >
Dune::Amg::Aggregator< G >::Stack::~Stack ( )

Variable Documentation

template<class T>
Aggregate* Dune::Amg::OverlapVertex< T >::aggregate
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
OperatorHierarchy::AggregatesMapList::const_iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::aggregates

The iterator over the aggregates maps.

SolverCategory::Category Dune::Amg::OwnerOverlapCopyCommunicationArgs::cat_
template<class M , class C >
C* Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >::comm_
template<class M , class C >
C* Dune::Amg::NonoverlappingOperatorArgs< M, C >::comm_
MPI_Comm Dune::Amg::OwnerOverlapCopyCommunicationArgs::comm_
CollectiveCommunication<void*> Dune::Amg::SequentialCommunicationArgs::comm_
template<class M , class N >
real_type Dune::Amg::SymmetricMatrixDependency< M, N >::diagonal_
protected

The norm of the current diagonal.

template<class M, class N>
real_type Dune::Amg::Dependency< M, N >::diagonal_
protected

The norm of the current diagonal.

template<class M, class N>
real_type Dune::Amg::SymmetricDependency< M, N >::diagonal_
protected

The norm of the current diagonal.

template<class V>
const V Dune::Amg::AggregatesMap< V >::ISOLATED
static
template<class T >
int Dune::Amg::DefaultSmootherArgs< T >::iterations
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
std::size_t Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::level

The level index.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
Hierarchy<Domain,A>::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::lhs

The iterator over the left hand side.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
OperatorHierarchy::ParallelMatrixHierarchy::ConstIterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::matrix

The iterator over the matrices.

template<class M , class C >
M* Dune::Amg::OverlappingSchwarzOperatorArgs< M, C >::matrix_
template<class M , class C >
M* Dune::Amg::NonoverlappingOperatorArgs< M, C >::matrix_
template<class T>
const Matrix* Dune::Amg::DefaultConstructionArgs< T >::matrix_
protected
template<class M , class N >
const Matrix* Dune::Amg::SymmetricMatrixDependency< M, N >::matrix_
protected

The matrix we work on.

template<class M, class N>
const Matrix* Dune::Amg::Dependency< M, N >::matrix_
protected

The matrix we work on.

template<class M, class N>
const Matrix* Dune::Amg::SymmetricDependency< M, N >::matrix_
protected

The matrix we work on.

template<class M , class N >
real_type Dune::Amg::SymmetricMatrixDependency< M, N >::maxValue_
protected
template<class M, class N>
real_type Dune::Amg::Dependency< M, N >::maxValue_
protected
template<class M, class N>
real_type Dune::Amg::SymmetricDependency< M, N >::maxValue_
protected
template<class M , class N >
Norm Dune::Amg::SymmetricMatrixDependency< M, N >::norm_
protected

The functor for calculating the norm.

template<class M, class N>
Norm Dune::Amg::Dependency< M, N >::norm_
protected

The functor for calculating the norm.

template<class M, class N>
Norm Dune::Amg::SymmetricDependency< M, N >::norm_
protected

The functor for calculating the norm.

template<class G >
const Vertex Dune::Amg::Aggregator< G >::Stack::NullEntry
static
template<class T>
bool Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::onthefly
template<class T>
Overlap Dune::Amg::SeqOverlappingSchwarzSmootherArgs< T >::overlap
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
ParallelInformationHierarchy::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::pinfo

The iterator over the parallel information.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
OperatorHierarchy::RedistributeInfoList::const_iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::redist

The iterator over the redistribution information.

template<class T >
RelaxationFactor Dune::Amg::DefaultSmootherArgs< T >::relaxationFactor
template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
Hierarchy<Range,A>::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::rhs

The iterator over the right hand sided.

template<class M , class N >
int Dune::Amg::SymmetricMatrixDependency< M, N >::row_
protected

index of the currently evaluated row.

template<class M, class N>
int Dune::Amg::Dependency< M, N >::row_
protected

index of the currently evaluated row.

template<class M, class N>
int Dune::Amg::SymmetricDependency< M, N >::row_
protected

index of the currently evaluated row.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
Hierarchy<Smoother,A>::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::smoother

The iterator over the smoothers.

template<class V>
const V Dune::Amg::AggregatesMap< V >::UNAGGREGATED
static

Identifier of not yet aggregated vertices.

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
Hierarchy<Domain,A>::Iterator Dune::Amg::AMG< M, X, S, PI, A >::LevelContext::update

The iterator over the updates.

template<class M , class N >
std::vector<real_type>::iterator Dune::Amg::SymmetricMatrixDependency< M, N >::valIter_
protected
template<class M , class N >
std::vector<real_type> Dune::Amg::SymmetricMatrixDependency< M, N >::vals_
protected
template<class T>
Vertex Dune::Amg::OverlapVertex< T >::vertex

Friends

std::ostream& operator<< ( std::ostream &  os,
const EdgeProperties props 
)
friend
std::ostream& operator<< ( std::ostream &  os,
const VertexProperties props 
)
friend