dune-istl 2.9.0
Classes | Public Types | Public Member Functions | List of all members

A fast (sequential) algebraic multigrid based on agglomeration that saves memory bandwidth. More...

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

Inheritance diagram for Dune::Amg::FastAMG< M, X, PI, A >:
Inheritance graph

Public Types

typedef M Operator
 The matrix operator type. More...
 
typedef PI ParallelInformation
 The type of the parallel information. Either OwnerOverlapCommunication or another type describing the parallel data distribution and providing communication methods. More...
 
typedef MatrixHierarchy< M, ParallelInformation, A > OperatorHierarchy
 The operator hierarchy type. More...
 
typedef OperatorHierarchy::ParallelInformationHierarchy ParallelInformationHierarchy
 The parallal data distribution hierarchy type. More...
 
typedef X Domain
 The domain type. More...
 
typedef X Range
 The range type. More...
 
typedef InverseOperator< X, X > CoarseSolver
 the type of the coarse solver. More...
 
typedef X domain_type
 The domain type of the preconditioner. More...
 
typedef X range_type
 The range type of the preconditioner. More...
 
typedef X::field_type field_type
 The field type of the preconditioner. More...
 

Public Member Functions

 FastAMG (OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const Parameters &parms, bool symmetric=true)
 Construct a new amg with a specific coarse solver. More...
 
template<class C >
 FastAMG (const Operator &fineOperator, const C &criterion, const Parameters &parms=Parameters(), bool symmetric=true, const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother. More...
 
 FastAMG (const FastAMG &amg)
 Copy constructor. More...
 
void pre (Domain &x, Range &b)
 Prepare the preconditioner. More...
 
void apply (Domain &v, const Range &d)
 Apply one step of the preconditioner to the system A(v)=d. More...
 
virtual SolverCategory::Category category () const
 Category of the preconditioner (see SolverCategory::Category) More...
 
void post (Domain &x)
 Clean up. More...
 
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...
 
bool usesDirectCoarseLevelSolver () const
 Check whether the coarse solver used is a direct solver. More...
 

Detailed Description

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

A fast (sequential) algebraic multigrid based on agglomeration that saves memory bandwidth.

It combines one Gauss-Seidel smoothing sweep with the defect calculation to reduce memory transfers.

Template Parameters
MThe matrix type
XThe vector type
PICurrently ignored.
AAn allocator for X

Member Typedef Documentation

◆ domain_type

typedef X Dune::Preconditioner< X, X >::domain_type
inherited

The domain type of the preconditioner.

◆ field_type

typedef X::field_type Dune::Preconditioner< X, X >::field_type
inherited

The field type of the preconditioner.

◆ range_type

typedef X Dune::Preconditioner< X, X >::range_type
inherited

The range type of the preconditioner.


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