ViennaCL - The Vienna Computing Library  1.6.1
Free open-source GPU-accelerated linear algebra and solver library.
amg.hpp File Reference

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

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_COARSE_LIMIT   50

Definition at line 53 of file amg.hpp.

#define VIENNACL_AMG_MAX_LEVELS   100

Definition at line 54 of file amg.hpp.