Dune Core Modules (unstable)

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. More...
 
template<typename O , typename T >
void build (const T &criterion)
 Build the matrix hierarchy using aggregation. More...
 
template<class F >
void recalculateGalerkin (const F &copyFlags)
 Recalculate the galerkin products. More...
 
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. More...
 
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. More...
 
std::size_t levels () const
 Get the number of levels in the hierarchy. More...
 
std::size_t maxlevels () const
 Get the max number of levels in the hierarchy of processors. More...
 
bool isBuilt () const
 Whether the hierarchy was built. More...
 
const ParallelMatrixHierarchymatrices () const
 Get the matrix hierarchy. More...
 
const ParallelInformationHierarchyparallelInformation () const
 Get the hierarchy of the parallel data distribution information. More...
 
const AggregatesMapListaggregatesMaps () const
 Get the hierarchy of the mappings of the nodes onto aggregates. More...
 
const RedistributeInfoListredistributeInformation () const
 Get the hierarchy of the information about redistributions,. More...
 
void getCoarsestAggregatesOnFinest (std::vector< std::size_t > &data) const
 Get the mapping of fine level unknowns to coarse level aggregates. More...
 

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.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 21, 23:30, 2024)