opm-simulators
Loading...
Searching...
No Matches
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.
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.

Public Member Functions

 AMGCPR (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const SmootherArgs &smootherArgs, const Parameters &parms)
 Construct a new amg with a specific coarse solver.
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.
 AMGCPR (const AMGCPR &amg)
 Copy constructor.
void pre (Domain &x, Range &b) override
void apply (Domain &v, const Range &d) override
SolverCategory::Category category () const override
 Category of the preconditioner (see SolverCategory::Category).
bool hasPerfectUpdate () const override
void post (Domain &x) override
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.
template<class C>
void updateSolver (C &criterion, const Operator &, const PI &pinfo)
 Update the coarse solver and the hierarchies.
void update () override
 Update the coarse solver and the hierarchies.
bool usesDirectCoarseLevelSolver () const
 Check whether the coarse solver used is a direct solver.

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: