dune-istl  2.9.0
Public Types | Public Member Functions | List of all members
Dune::Amg::KAMG< M, X, S, PI, K, A > Class Template Reference

an algebraic multigrid method using a Krylov-cycle. More...

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

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

Public Types

typedef AMG< M, X, S, PI, A > Amg
 The type of the underlying AMG. More...
 
typedef K KrylovSolver
 The type of the Krylov solver for the cycle. More...
 
typedef Amg::OperatorHierarchy OperatorHierarchy
 The type of the hierarchy of operators. More...
 
typedef Amg::CoarseSolver CoarseSolver
 The type of the coarse solver. More...
 
typedef Amg::ParallelInformation ParallelInformation
 the type of the parallelinformation to use. More...
 
typedef Amg::SmootherArgs SmootherArgs
 The type of the arguments for construction of the smoothers. More...
 
typedef Amg::Operator Operator
 the type of the lineatr operator. More...
 
typedef Amg::Domain Domain
 the type of the domain. More...
 
typedef Amg::Range Range
 The type of the range. More...
 
typedef Amg::ParallelInformationHierarchy ParallelInformationHierarchy
 The type of the hierarchy of parallel information. More...
 
typedef Amg::ScalarProduct ScalarProduct
 The type of the scalar product. 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

virtual SolverCategory::Category category () const
 Category of the preconditioner (see SolverCategory::Category) More...
 
 KAMG (OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, const Parameters &parms, std::size_t maxLevelKrylovSteps=3, double minDefectReduction=1e-1)
 Construct a new amg with a specific coarse solver. More...
 
template<class C >
 KAMG (const Operator &fineOperator, const C &criterion, const SmootherArgs &smootherArgs=SmootherArgs(), std::size_t maxLevelKrylovSteps=3, double minDefectReduction=1e-1, const ParallelInformation &pinfo=ParallelInformation())
 Construct an AMG with an inexact coarse solver based on the smoother. More...
 
void pre (Domain &x, Range &b)
 Prepare the preconditioner. More...
 
void post (Domain &x)
 Clean up. More...
 
void apply (Domain &v, const Range &d)
 Apply one step of the preconditioner to the system A(v)=d. More...
 
std::size_t maxlevels ()
 

Detailed Description

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

an algebraic multigrid method using a Krylov-cycle.

The implementation is based on the paper [Notay and Vassilevski, 2007]

Template Parameters
MThe type of the linear operator.
XThe type of the range and domain.
PIThe parallel information object. Use SequentialInformation (default) for a sequential AMG, OwnerOverlapCopyCommunication for the parallel case.
KThe type of the Krylov method to use for the cycle.
AThe type of the allocator to use.

Member Typedef Documentation

◆ Amg

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

The type of the underlying AMG.

◆ CoarseSolver

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::CoarseSolver Dune::Amg::KAMG< M, X, S, PI, K, A >::CoarseSolver

The type of the coarse solver.

◆ Domain

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::Domain Dune::Amg::KAMG< M, X, S, PI, K, A >::Domain

the type of the domain.

◆ 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.

◆ KrylovSolver

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef K Dune::Amg::KAMG< M, X, S, PI, K, A >::KrylovSolver

The type of the Krylov solver for the cycle.

◆ Operator

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::Operator Dune::Amg::KAMG< M, X, S, PI, K, A >::Operator

the type of the lineatr operator.

◆ OperatorHierarchy

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::OperatorHierarchy Dune::Amg::KAMG< M, X, S, PI, K, A >::OperatorHierarchy

The type of the hierarchy of operators.

◆ ParallelInformation

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::ParallelInformation Dune::Amg::KAMG< M, X, S, PI, K, A >::ParallelInformation

the type of the parallelinformation to use.

◆ ParallelInformationHierarchy

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::ParallelInformationHierarchy Dune::Amg::KAMG< M, X, S, PI, K, A >::ParallelInformationHierarchy

The type of the hierarchy of parallel information.

◆ Range

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::Range Dune::Amg::KAMG< M, X, S, PI, K, A >::Range

The type of the range.

◆ range_type

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

The range type of the preconditioner.

◆ ScalarProduct

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::ScalarProduct Dune::Amg::KAMG< M, X, S, PI, K, A >::ScalarProduct

The type of the scalar product.

◆ SmootherArgs

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
typedef Amg::SmootherArgs Dune::Amg::KAMG< M, X, S, PI, K, A >::SmootherArgs

The type of the arguments for construction of the smoothers.

Member Function Documentation

◆ category()

template<class M , class X , class S , class PI = SequentialInformation, class K = GeneralizedPCGSolver<X>, class A = std::allocator<X>>
virtual SolverCategory::Category Dune::Amg::KAMG< M, X, S, PI, K, A >::category ( ) const
inlinevirtual

Category of the preconditioner (see SolverCategory::Category)

Implements Dune::Preconditioner< X, X >.


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