Data Structures | Namespaces | Defines | Typedefs | Functions

/data/development/ViennaCL/dev/viennacl/linalg/amg.hpp File Reference

Main include file for algebraic multigrid (AMG) preconditioners. Experimental in 1.2.x. 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.

Data Structures

class  amg_precond< MatrixType >
 AMG preconditioner class, can be supplied to solve()-routines. More...
class  amg_precond< compressed_matrix< ScalarType, MAT_ALIGNMENT > >
 AMG preconditioner class, can be supplied to solve()-routines. More...

Namespaces

namespace  viennacl
namespace  viennacl::linalg

Defines

#define VIENNACL_AMG_COARSE_LIMIT   50
#define VIENNACL_AMG_MAX_LEVELS   100

Typedefs

typedef detail::amg::amg_tag amg_tag

Functions

template<typename InternalType1 , typename InternalType2 >
void amg_setup (InternalType1 &A, InternalType1 &P, InternalType2 &Pointvector, amg_tag &tag)
 Setup AMG preconditioner.
template<typename MatrixType , typename InternalType1 , typename InternalType2 >
void amg_init (MatrixType const &mat, InternalType1 &A, InternalType1 &P, InternalType2 &Pointvector, amg_tag &tag)
 Initialize AMG preconditioner.
template<typename InternalType1 , typename InternalType2 >
void amg_transform_cpu (InternalType1 &A, InternalType1 &P, InternalType1 &R, InternalType2 &A_setup, InternalType2 &P_setup, amg_tag &tag)
 Save operators after setup phase for CPU computation.
template<typename InternalType1 , typename InternalType2 >
void amg_transform_gpu (InternalType1 &A, InternalType1 &P, InternalType1 &R, InternalType2 &A_setup, InternalType2 &P_setup, amg_tag &tag)
 Save operators after setup phase for GPU computation.
template<typename InternalVectorType , typename SparseMatrixType >
void amg_setup_apply (InternalVectorType &result, InternalVectorType &rhs, InternalVectorType &residual, SparseMatrixType const &A, amg_tag const &tag)
 Setup data structures for precondition phase.
template<typename ScalarType , typename SparseMatrixType >
void amg_lu (boost::numeric::ublas::compressed_matrix< ScalarType > &op, boost::numeric::ublas::permutation_matrix< ScalarType > &Permutation, SparseMatrixType const &A)
 Pre-compute LU factorization for direct solve (ublas library).

Detailed Description

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

Implementation contributed by Markus Wagner


Define Documentation

#define VIENNACL_AMG_COARSE_LIMIT   50
#define VIENNACL_AMG_MAX_LEVELS   100