My Project
Dune::Amg::AMGCPR< M, X, S, PI, A > Class Template Reference

Parallel algebraic multigrid based on agglomeration. More...

#include <amgcpr.hh>

Inheritance diagram for Dune::Amg::AMGCPR< M, X, S, PI, A >:
Dune::PreconditionerWithUpdate< X, X >

Public Types

typedef M Operator
 The matrix operator type.
 
typedef PI ParallelInformation
 The type of the parallel information. More...
 
typedef MatrixHierarchy< M, ParallelInformation, A > OperatorHierarchy
 The operator hierarchy type.
 
typedef OperatorHierarchy::ParallelInformationHierarchy ParallelInformationHierarchy
 The parallal data distribution hierarchy type.
 
typedef X Domain
 The domain type.
 
typedef X Range
 The range type.
 
typedef InverseOperator< X, X > CoarseSolver
 the type of the coarse solver.
 
typedef S Smoother
 The type of the smoother. More...
 
typedef SmootherTraits< Smoother >::Arguments SmootherArgs
 The argument type for the construction of the smoother.
 

Public Member Functions

 AMGCPR (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, const Parameters &parms)
 Construct a new amg with a specific coarse solver. More...
 
template<class C >
 AMGCPR (const Operator &fineOperator, const C &criterion, const SmootherArgs &smootherArgs=SmootherArgs(), const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother. More...
 
 AMGCPR (const AMGCPR &amg)
 Copy constructor.
 
void pre (Domain &x, Range &b)
 
void apply (Domain &v, const Range &d)
 
virtual SolverCategory::Category category () const
 Category of the preconditioner (see SolverCategory::Category)
 
void post (Domain &x)
 
template<class A1 >
void getCoarsestAggregateNumbers (std::vector< std::size_t, A1 > &cont)
 Get the aggregate number of each unknown on the coarsest level. More...
 
std::size_t levels ()
 
std::size_t maxlevels ()
 
void recalculateHierarchy ()
 Recalculate the matrix hierarchy. More...
 
template<class C >
void updateSolver (C &criterion, const Operator &, const PI &pinfo)
 Update the coarse solver and the hierarchies.
 
virtual void update ()
 Update the coarse solver and the hierarchies.
 
bool usesDirectCoarseLevelSolver () const
 Check whether the coarse solver used is a direct solver. More...
 

Friends

template<class M1 , class X1 , class S1 , class P1 , class K1 , class A1 >
class KAMG
 
class KAmgTwoGrid< AMGCPR >
 

Detailed Description

template<class M, class X, class S, class PI = SequentialInformation, class A = std::allocator<X>>
class Dune::Amg::AMGCPR< M, X, S, PI, A >

Parallel algebraic multigrid based on agglomeration.

Template Parameters
MThe matrix type
XThe vector type
SThe smoother type
AAn allocator for X
Todo:
drop the smoother template parameter and replace with dynamic construction

The documentation for this class was generated from the following file: