ViennaCL - The Vienna Computing Library  1.6.0
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
amg_interpol.hpp File Reference

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...
 

Detailed Description

Implementations of several variants of the AMG interpolation operators (setup phase). Experimental.

Definition in file amg_interpol.hpp.