Implementations of several variants of the AMG interpolation operators (setup phase). Experimental. More...
#include <boost/numeric/ublas/vector.hpp>#include <cmath>#include "viennacl/linalg/detail/amg/amg_base.hpp"#include <map>#include "viennacl/linalg/detail/amg/amg_debug.hpp"Go to the source code of this file.
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. | |
| viennacl::linalg::detail::amg | |
| Implementation namespace for algebraic multigrid preconditioner. | |
Functions | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::detail::amg::amg_interpol (unsigned int level, InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag &tag) |
| Calls the right function to build interpolation matrix. More... | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::detail::amg::amg_interpol_direct (unsigned int level, InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag &tag) |
| Direct interpolation. Multi-threaded! (VIENNACL_AMG_INTERPOL_DIRECT) More... | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::detail::amg::amg_interpol_classic (unsigned int level, InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag &tag) |
| Classical interpolation. Don't use with onepass classical coarsening or RS0 (Yang, p.14)! Multi-threaded! (VIENNACL_AMG_INTERPOL_CLASSIC) More... | |
| template<typename SparseMatrixT > | |
| void | viennacl::linalg::detail::amg::amg_truncate_row (SparseMatrixT &P, unsigned int row, amg_tag &tag) |
| Interpolation truncation (for VIENNACL_AMG_INTERPOL_DIRECT and VIENNACL_AMG_INTERPOL_CLASSIC) More... | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::detail::amg::amg_interpol_ag (unsigned int level, InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag) |
| AG (aggregation based) interpolation. Multi-Threaded! (VIENNACL_INTERPOL_SA) More... | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::detail::amg::amg_interpol_sa (unsigned int level, InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag &tag) |
| SA (smoothed aggregate) interpolation. Multi-Threaded! (VIENNACL_INTERPOL_SA) More... | |
Implementations of several variants of the AMG interpolation operators (setup phase). Experimental.
Definition in file amg_interpol.hpp.