Loading...
Searching...
No Matches
Dune::Amg::MatrixHierarchy< M, PI, A > Class Template Reference
Iterative Solvers Template Library (ISTL) » Iterative Solvers » Preconditioners » Parallel Algebraic Multigrid

The hierarchies build by the coarsening process. More...

`#include <dune/istl/paamg/matrixhierarchy.hh>`

Inheritance diagram for Dune::Amg::MatrixHierarchy< M, PI, A >:

## Public Types

typedef M | MatrixOperator
| The type of the matrix operator.
typedef MatrixOperator::matrix_type | Matrix
| The type of the matrix.
typedef PI | ParallelInformation
| The type of the index set.
typedef A | Allocator
| The allocator to use.
typedef Dune::Amg::AggregatesMap< typename MatrixGraph< Matrix >::VertexDescriptor > | AggregatesMap
| The type of the aggregates map we use.
typedef Dune::Amg::Hierarchy< MatrixOperator, Allocator > | ParallelMatrixHierarchy
| The type of the parallel matrix hierarchy.
typedef Dune::Amg::Hierarchy< ParallelInformation, Allocator > | ParallelInformationHierarchy
| The type of the parallel informarion hierarchy.
using | AAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<AggregatesMap*>
| Allocator for pointers.
typedef std::list< AggregatesMap *, AAllocator > | AggregatesMapList
| The type of the aggregates maps list.
typedef RedistributeInformation< ParallelInformation > | RedistributeInfoType
| The type of the redistribute information.
using | RILAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<RedistributeInfoType>
| Allocator for RedistributeInfoType.
typedef std::list< RedistributeInfoType, RILAllocator > | RedistributeInfoList
| The type of the list of redistribute information.

## Public Member Functions

| MatrixHierarchy (std::shared_ptr< MatrixOperator > fineMatrix, std::shared_ptr< ParallelInformation > pinfo=std::make_shared< ParallelInformation >())
| Constructor.
| ~MatrixHierarchy ()
template<typename O, typename T>
void | build (const T &criterion)
| Build the matrix hierarchy using aggregation.
template<class F>
void | recalculateGalerkin (const F &copyFlags)
| Recalculate the galerkin products.
template<class V, class BA, class TA>
void | coarsenVector (Hierarchy< BlockVector< V, BA >, TA > &hierarchy) const
| Coarsen the vector hierarchy according to the matrix hierarchy.
template<class S, class TA>
void | coarsenSmoother (Hierarchy< S, TA > &smoothers, const typename SmootherTraits< S >::Arguments &args) const
| Coarsen the smoother hierarchy according to the matrix hierarchy.
std::size_t | levels () const
| Get the number of levels in the hierarchy.
std::size_t | maxlevels () const
| Get the max number of levels in the hierarchy of processors.
bool | hasCoarsest () const
bool | isBuilt () const
| Whether the hierarchy was built.
const ParallelMatrixHierarchy & | matrices () const
| Get the matrix hierarchy.
const ParallelInformationHierarchy & | parallelInformation () const
| Get the hierarchy of the parallel data distribution information.
const AggregatesMapList & | aggregatesMaps () const
| Get the hierarchy of the mappings of the nodes onto aggregates.
const RedistributeInfoList & | redistributeInformation () const
| Get the hierarchy of the information about redistributions,.
double | getProlongationDampingFactor () const
void | getCoarsestAggregatesOnFinest (std::vector< std::size_t > &data) const
| Get the mapping of fine level unknowns to coarse level aggregates.

## Detailed Description

template<class M, class PI, class A = std::allocator<M>>
class Dune::Amg::MatrixHierarchy< M, PI, A >

The hierarchies build by the coarsening process.

Namely a hierarchy of matrices, index sets, remote indices, interfaces and communicators.

## Member Typedef Documentation

## AAllocator

template<class M, class PI, class A = std::allocator<M>>

using Dune::Amg::MatrixHierarchy< M, PI, A >::AAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<AggregatesMap*>

Allocator for pointers.

## AggregatesMap

template<class M, class PI, class A = std::allocator<M>>

typedef Dune::Amg::AggregatesMap<typename MatrixGraph<Matrix>::VertexDescriptor> Dune::Amg::MatrixHierarchy< M, PI, A >::AggregatesMap

The type of the aggregates map we use.

## AggregatesMapList

template<class M, class PI, class A = std::allocator<M>>

typedef std::list<AggregatesMap*,AAllocator> Dune::Amg::MatrixHierarchy< M, PI, A >::AggregatesMapList

The type of the aggregates maps list.

## Allocator

template<class M, class PI, class A = std::allocator<M>>

typedef A Dune::Amg::MatrixHierarchy< M, PI, A >::Allocator

The allocator to use.

## Matrix

template<class M, class PI, class A = std::allocator<M>>

typedef MatrixOperator::matrix_type Dune::Amg::MatrixHierarchy< M, PI, A >::Matrix

The type of the matrix.

## MatrixOperator

template<class M, class PI, class A = std::allocator<M>>

typedef M Dune::Amg::MatrixHierarchy< M, PI, A >::MatrixOperator

The type of the matrix operator.

## ParallelInformation

template<class M, class PI, class A = std::allocator<M>>

typedef PI Dune::Amg::MatrixHierarchy< M, PI, A >::ParallelInformation

The type of the index set.

## ParallelInformationHierarchy

template<class M, class PI, class A = std::allocator<M>>

typedef Dune::Amg::Hierarchy<ParallelInformation,Allocator> Dune::Amg::MatrixHierarchy< M, PI, A >::ParallelInformationHierarchy

The type of the parallel informarion hierarchy.

## ParallelMatrixHierarchy

template<class M, class PI, class A = std::allocator<M>>

typedef Dune::Amg::Hierarchy<MatrixOperator,Allocator> Dune::Amg::MatrixHierarchy< M, PI, A >::ParallelMatrixHierarchy

The type of the parallel matrix hierarchy.

## RedistributeInfoList

template<class M, class PI, class A = std::allocator<M>>

typedef std::list<RedistributeInfoType,RILAllocator> Dune::Amg::MatrixHierarchy< M, PI, A >::RedistributeInfoList

The type of the list of redistribute information.

## RedistributeInfoType

template<class M, class PI, class A = std::allocator<M>>

typedef RedistributeInformation<ParallelInformation> Dune::Amg::MatrixHierarchy< M, PI, A >::RedistributeInfoType

The type of the redistribute information.

## RILAllocator

template<class M, class PI, class A = std::allocator<M>>

using Dune::Amg::MatrixHierarchy< M, PI, A >::RILAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<RedistributeInfoType>

Allocator for RedistributeInfoType.

## Member Function Documentation

## getProlongationDampingFactor()

template<class M, class PI, class A = std::allocator<M>>

double Dune::Amg::MatrixHierarchy< M, PI, A >::getProlongationDampingFactor | ( |  | ) | const

inline

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

- matrixhierarchy.hh