dune-istl 2.10
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
Dune::Amg::MatrixHierarchy< M, PI, A > Class Template Reference

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

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

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: