dune-istl 2.11
Loading...
Searching...
No Matches
Dune::Amg::MatrixHierarchy< M, PI, A > Class Template Reference

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

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

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

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>

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: