Dune Core Modules (2.6.0)

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

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

Public Types

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

virtual SolverCategory::Category category () const
 Category of the preconditioner (see SolverCategory::Category)
 
 KAMG (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, std::size_t gamma, std::size_t preSmoothingSteps=1, std::size_t postSmoothingSteps=1, std::size_t maxLevelKrylovSteps=3, double minDefectReduction=1e-1)
 Construct a new amg with a specific coarse solver. More...
 
 KAMG (const 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, std::size_t gamma, std::size_t preSmoothingSteps=1, std::size_t postSmoothingSteps=1, 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...
 
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...
 

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.

The documentation for this class was generated from the following files:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 19, 22:31, 2024)