|
typedef M | Dune::Amg::FastAMG< M, X, PI, A >::Operator |
| The matrix operator type. More...
|
|
typedef PI | Dune::Amg::FastAMG< M, X, PI, A >::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 > | Dune::Amg::FastAMG< M, X, PI, A >::OperatorHierarchy |
| The operator hierarchy type. More...
|
|
typedef OperatorHierarchy::ParallelInformationHierarchy | Dune::Amg::FastAMG< M, X, PI, A >::ParallelInformationHierarchy |
| The parallal data distribution hierarchy type. More...
|
|
typedef X | Dune::Amg::FastAMG< M, X, PI, A >::Domain |
| The domain type. More...
|
|
typedef X | Dune::Amg::FastAMG< M, X, PI, A >::Range |
| The range type. More...
|
|
typedef InverseOperator< X, X > | Dune::Amg::FastAMG< M, X, PI, A >::CoarseSolver |
| the type of the coarse solver. More...
|
|
|
| Dune::Amg::FastAMG< M, X, PI, A >::FastAMG (const OperatorHierarchy &matrices, CoarseSolver &coarseSolver, const Parameters &parms, bool symmetric=true) |
| Construct a new amg with a specific coarse solver. More...
|
|
template<class C > |
| Dune::Amg::FastAMG< M, X, PI, A >::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...
|
|
| Dune::Amg::FastAMG< M, X, PI, A >::FastAMG (const FastAMG &amg) |
| Copy constructor. More...
|
|
| Dune::Amg::FastAMG< M, X, PI, A >::~FastAMG () |
|
void | Dune::Amg::FastAMG< M, X, PI, A >::pre (Domain &x, Range &b) |
| Prepare the preconditioner. More...
|
|
void | Dune::Amg::FastAMG< M, X, PI, A >::apply (Domain &v, const Range &d) |
| Apply one step of the preconditioner to the system A(v)=d. More...
|
|
void | Dune::Amg::FastAMG< M, X, PI, A >::post (Domain &x) |
| Clean up. More...
|
|
template<class A1 > |
void | Dune::Amg::FastAMG< M, X, PI, A >::getCoarsestAggregateNumbers (std::vector< std::size_t, A1 > &cont) |
| Get the aggregate number of each unknown on the coarsest level. More...
|
|
std::size_t | Dune::Amg::FastAMG< M, X, PI, A >::levels () |
|
std::size_t | Dune::Amg::FastAMG< M, X, PI, A >::maxlevels () |
|
void | Dune::Amg::FastAMG< M, X, PI, A >::recalculateHierarchy () |
| Recalculate the matrix hierarchy. More...
|
|
bool | Dune::Amg::FastAMG< M, X, PI, A >::usesDirectCoarseLevelSolver () const |
| Check whether the coarse solver used is a direct solver. More...
|
|
|
OperatorHierarchy::ParallelMatrixHierarchy::ConstIterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::matrix |
| The iterator over the matrices. More...
|
|
ParallelInformationHierarchy::Iterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::pinfo |
| The iterator over the parallel information. More...
|
|
OperatorHierarchy::RedistributeInfoList::const_iterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::redist |
| The iterator over the redistribution information. More...
|
|
OperatorHierarchy::AggregatesMapList::const_iterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::aggregates |
| The iterator over the aggregates maps. More...
|
|
Hierarchy< Domain, A >::Iterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::lhs |
| The iterator over the left hand side. More...
|
|
Hierarchy< Domain, A >::Iterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::residual |
| The iterator over the residuals. More...
|
|
Hierarchy< Range, A >::Iterator | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::rhs |
| The iterator over the right hand sided. More...
|
|
std::size_t | Dune::Amg::FastAMG< M, X, PI, A >::LevelContext::level |
| The level index. More...
|
|
An Algebraic Multigrid based on Agglomeration that saves memory bandwidth.
template<class M , class X , class PI , class A >
Apply one step of the preconditioner to the system A(v)=d.
On entry v=0 and d=b-A(x) (although this might not be computed in that way. On exit v contains the update, i.e one step computes
where
is the approximate inverse of the operator
characterizing the preconditioner.
- Parameters
-
[out] | v | The update to be computed |
| d | The current defect. |
Implements Dune::Preconditioner< X, X >.
References Dune::Amg::GaussSeidelPresmoothDefect< level >::apply(), Dune::Amg::GaussSeidelPostsmoothDefect< level >::apply(), Dune::Amg::Hierarchy< T, A >::finest(), Dune::Amg::Transfer< V1, V2, T >::prolongateVector(), and Dune::Amg::Transfer< V1, V2, T >::restrictVector().
template<class M , class X , class PI , class A >
Prepare the preconditioner.
A solver solves a linear operator equation A(x)=b by applying one or several steps of the preconditioner. The method pre() is called before the first apply operation. b and x are right hand side and solution vector of the linear system respectively. It may. e.g., scale the system, allocate memory or compute a (I)LU decomposition. Note: The ILU decomposition could also be computed in the constructor or with a separate method of the derived method if several linear systems with the same matrix are to be solved.
- Parameters
-
x | The left hand side of the equation. |
b | The right hand side of the equation. |
Implements Dune::Preconditioner< X, X >.
References Dune::Matrix< T, A >::begin(), col, Dune::Matrix< T, A >::end(), Dune::Amg::Hierarchy< T, A >::finest(), and mat.
template<class M , class X , class PI = SequentialInformation, class A = std::allocator<X>>