dune-istl 2.9.1
|
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 ©Flags) |
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. | |
The hierarchies build by the coarsening process.
Namely a hierarchy of matrices, index sets, remote indices, interfaces and communicators.
using Dune::Amg::MatrixHierarchy< M, PI, A >::AAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<AggregatesMap*> |
Allocator for pointers.
typedef Dune::Amg::AggregatesMap<typename MatrixGraph<Matrix>::VertexDescriptor> Dune::Amg::MatrixHierarchy< M, PI, A >::AggregatesMap |
The type of the aggregates map we use.
typedef std::list<AggregatesMap*,AAllocator> Dune::Amg::MatrixHierarchy< M, PI, A >::AggregatesMapList |
The type of the aggregates maps list.
typedef A Dune::Amg::MatrixHierarchy< M, PI, A >::Allocator |
The allocator to use.
typedef MatrixOperator::matrix_type Dune::Amg::MatrixHierarchy< M, PI, A >::Matrix |
The type of the matrix.
typedef M Dune::Amg::MatrixHierarchy< M, PI, A >::MatrixOperator |
The type of the matrix operator.
typedef PI Dune::Amg::MatrixHierarchy< M, PI, A >::ParallelInformation |
The type of the index set.
typedef Dune::Amg::Hierarchy<ParallelInformation,Allocator> Dune::Amg::MatrixHierarchy< M, PI, A >::ParallelInformationHierarchy |
The type of the parallel informarion hierarchy.
typedef Dune::Amg::Hierarchy<MatrixOperator,Allocator> Dune::Amg::MatrixHierarchy< M, PI, A >::ParallelMatrixHierarchy |
The type of the parallel matrix hierarchy.
typedef std::list<RedistributeInfoType,RILAllocator> Dune::Amg::MatrixHierarchy< M, PI, A >::RedistributeInfoList |
The type of the list of redistribute information.
typedef RedistributeInformation<ParallelInformation> Dune::Amg::MatrixHierarchy< M, PI, A >::RedistributeInfoType |
The type of the redistribute information.
using Dune::Amg::MatrixHierarchy< M, PI, A >::RILAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<RedistributeInfoType> |
Allocator for RedistributeInfoType.
|
inline |