dune-istl 2.10
Loading...
Searching...
No Matches
Dune::Amg::AMG< M, X, S, PI, A > Class Template Reference

Parallel algebraic multigrid based on agglomeration. More...

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

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

Public Types

typedef M Operator
 The matrix operator type.
 
typedef PI ParallelInformation
 The type of the parallel information. Either OwnerOverlapCommunication or another type describing the parallel data distribution and providing communication methods.
 
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.
 
typedef SmootherTraits< Smoother >::Arguments SmootherArgs
 The argument type for the construction of the smoother.
 
typedef X domain_type
 The domain type of the preconditioner.
 
typedef X range_type
 The range type of the preconditioner.
 
typedef X::field_type field_type
 The field type of the preconditioner.
 

Public Member Functions

 AMG (OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, const Parameters &parms)
 Construct a new amg with a specific coarse solver.
 
template<class C >
 AMG (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.
 
 AMG (std::shared_ptr< const Operator > fineOperator, const ParameterTree &configuration, const ParallelInformation &pinfo=ParallelInformation())
 Constructor an AMG via ParameterTree.
 
 AMG (const AMG &amg)
 Copy constructor.
 
void pre (Domain &x, Range &b)
 Prepare the preconditioner.
 
void apply (Domain &v, const Range &d)
 Apply one step of the preconditioner to the system A(v)=d.
 
virtual SolverCategory::Category category () const
 Category of the preconditioner (see SolverCategory::Category)
 
void post (Domain &x)
 Clean up.
 
template<class A1 >
void getCoarsestAggregateNumbers (std::vector< std::size_t, A1 > &cont)
 Get the aggregate number of each unknown on the coarsest level.
 
std::size_t levels ()
 
std::size_t maxlevels ()
 
void recalculateHierarchy ()
 Recalculate the matrix hierarchy.
 
bool usesDirectCoarseLevelSolver () const
 Check whether the coarse solver used is a direct solver.
 

Detailed Description

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

Parallel algebraic multigrid based on agglomeration.

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

Member Typedef Documentation

◆ domain_type

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

The domain type of the preconditioner.

◆ field_type

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

The field type of the preconditioner.

◆ range_type

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: