dune-istl 2.10
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>

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, AllocatorParallelMatrixHierarchy
 The type of the parallel matrix hierarchy.
 
typedef Dune::Amg::Hierarchy< ParallelInformation, AllocatorParallelInformationHierarchy
 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 *, AAllocatorAggregatesMapList
 The type of the aggregates maps list.
 
typedef RedistributeInformation< ParallelInformationRedistributeInfoType
 The type of the redistribute information.
 
using RILAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<RedistributeInfoType>
 Allocator for RedistributeInfoType.
 
typedef std::list< RedistributeInfoType, RILAllocatorRedistributeInfoList
 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 ParallelMatrixHierarchymatrices () const
 Get the matrix hierarchy.
 
const ParallelInformationHierarchyparallelInformation () const
 Get the hierarchy of the parallel data distribution information.
 
const AggregatesMapListaggregatesMaps () const
 Get the hierarchy of the mappings of the nodes onto aggregates.
 
const RedistributeInfoListredistributeInformation () 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>>
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>>
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>>
A Dune::Amg::MatrixHierarchy< M, PI, A >::Allocator

The allocator to use.

◆ Matrix

template<class M , class PI , class A = std::allocator<M>>
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>>
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>>
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>>
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>>
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>>
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>>
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: