All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
amg.hpp File Reference

Main include file for algebraic multigrid (AMG) preconditioners. Experimental. More...

`#include <vector>`
`#include <cmath>`
`#include "viennacl/forwards.h"`
`#include "viennacl/tools/tools.hpp"`
`#include "viennacl/linalg/prod.hpp"`
`#include "viennacl/linalg/direct_solve.hpp"`
`#include "viennacl/compressed_matrix.hpp"`
`#include "viennacl/linalg/detail/amg/amg_base.hpp"`
`#include "viennacl/linalg/sparse_matrix_operations.hpp"`
`#include "viennacl/linalg/amg_operations.hpp"`
`#include "viennacl/tools/timer.hpp"`
`#include "viennacl/linalg/lu.hpp"`
`#include <map>`

Go to the source code of this file.

## Classes

class | viennacl::linalg::amg_coarse_problem_too_large_exception
class | viennacl::linalg::amg_precond< MatrixT >
| AMG preconditioner class, can be supplied to solve()-routines. More...
class | viennacl::linalg::amg_precond< compressed_matrix< NumericT, AlignmentV > >
| AMG preconditioner class, can be supplied to solve()-routines. More...

## Namespaces

| viennacl
| Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
| viennacl::linalg
| Provides all linear algebra operations which are not covered by operator overloads.
| viennacl::linalg::detail
| Namespace holding implementation details for linear algebra routines. Usually not of interest for a library user.

## Macros

#define | VIENNACL_AMG_MAX_LEVELS 20

## Functions

template<typename NumericT >
void | viennacl::linalg::detail::amg_galerkin_prod (compressed_matrix< NumericT > &A_fine, compressed_matrix< NumericT > &P, compressed_matrix< NumericT > &R, compressed_matrix< NumericT > &A_coarse)
| Sparse Galerkin product: Calculates A_coarse = trans(P)*A_fine*P = R*A_fine*P. More...
template<typename NumericT , typename AMGContextListT >
vcl_size_t | viennacl::linalg::detail::amg_setup (std::vector< compressed_matrix< NumericT > > &list_of_A, std::vector< compressed_matrix< NumericT > > &list_of_P, std::vector< compressed_matrix< NumericT > > &list_of_R, AMGContextListT &list_of_amg_level_context, amg_tag &tag)
| Setup AMG preconditioner. More...
template<typename MatrixT , typename InternalT1 , typename InternalT2 >
void | viennacl::linalg::detail::amg_init (MatrixT const &mat, InternalT1 &list_of_A, InternalT1 &list_of_P, InternalT1 &list_of_R, InternalT2 &list_of_amg_level_context, amg_tag &tag)
| Initialize AMG preconditioner. More...
template<typename InternalVectorT , typename SparseMatrixT >
void | viennacl::linalg::detail::amg_setup_apply (InternalVectorT &result, InternalVectorT &result_backup, InternalVectorT &rhs, InternalVectorT &residual, SparseMatrixT const &A, vcl_size_t coarse_levels, amg_tag const &tag)
| Setup data structures for precondition phase for later use on the GPU. More...
template<typename NumericT , typename SparseMatrixT >
void | viennacl::linalg::detail::amg_lu (viennacl::matrix< NumericT > &op, SparseMatrixT const &A, amg_tag const &tag)
| Pre-compute LU factorization for direct solve (ublas library). More...

## Detailed Description

Main include file for algebraic multigrid (AMG) preconditioners. Experimental.

Implementation contributed by Markus Wagner

Definition in file amg.hpp.

## Macro Definition Documentation

#define VIENNACL_AMG_MAX_LEVELS 20

Definition at line 48 of file amg.hpp.