Main include file for algebraic multigrid (AMG) preconditioners. Experimental. More...
#include <boost/numeric/ublas/matrix.hpp>#include <boost/numeric/ublas/lu.hpp>#include <boost/numeric/ublas/operation.hpp>#include <boost/numeric/ublas/vector_proxy.hpp>#include <boost/numeric/ublas/matrix_proxy.hpp>#include <boost/numeric/ublas/vector.hpp>#include <boost/numeric/ublas/triangular.hpp>#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/linalg/detail/amg/amg_base.hpp"#include "viennacl/linalg/detail/amg/amg_coarse.hpp"#include "viennacl/linalg/detail/amg/amg_interpol.hpp"#include <map>#include "viennacl/linalg/detail/amg/amg_debug.hpp"Go to the source code of this file.
Classes | |
| 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. | |
Macros | |
| #define | VIENNACL_AMG_COARSE_LIMIT 50 |
| #define | VIENNACL_AMG_MAX_LEVELS 100 |
Typedefs | |
| typedef detail::amg::amg_tag | viennacl::linalg::amg_tag |
Functions | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::amg_setup (InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag &tag) |
| Setup AMG preconditioner. More... | |
| template<typename MatrixT , typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::amg_init (MatrixT const &mat, InternalT1 &A, InternalT1 &P, InternalT2 &pointvector, amg_tag &tag) |
| Initialize AMG preconditioner. More... | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::amg_transform_cpu (InternalT1 &A, InternalT1 &P, InternalT1 &R, InternalT2 &A_setup, InternalT2 &P_setup, amg_tag &tag) |
| Save operators after setup phase for CPU computation. More... | |
| template<typename InternalT1 , typename InternalT2 > | |
| void | viennacl::linalg::amg_transform_gpu (InternalT1 &A, InternalT1 &P, InternalT1 &R, InternalT2 &A_setup, InternalT2 &P_setup, amg_tag &tag, viennacl::context ctx) |
| Save operators after setup phase for GPU computation. More... | |
| template<typename InternalVectorT , typename SparseMatrixT > | |
| void | viennacl::linalg::amg_setup_apply (InternalVectorT &result, InternalVectorT &rhs, InternalVectorT &residual, SparseMatrixT const &A, amg_tag const &tag) |
| Setup data structures for precondition phase. More... | |
| template<typename InternalVectorT , typename SparseMatrixT > | |
| void | viennacl::linalg::amg_setup_apply (InternalVectorT &result, InternalVectorT &rhs, InternalVectorT &residual, SparseMatrixT const &A, amg_tag const &tag, viennacl::context ctx) |
| Setup data structures for precondition phase for later use on the GPU. More... | |
| template<typename NumericT , typename SparseMatrixT > | |
| void | viennacl::linalg::amg_lu (boost::numeric::ublas::compressed_matrix< NumericT > &op, boost::numeric::ublas::permutation_matrix<> &permutation, SparseMatrixT const &A) |
| Pre-compute LU factorization for direct solve (ublas library). More... | |
Main include file for algebraic multigrid (AMG) preconditioners. Experimental.
Implementation contributed by Markus Wagner
Definition in file amg.hpp.