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
viennacl::linalg::amg_precond< MatrixT > Class Template Reference

AMG preconditioner class, can be supplied to solve()-routines. More...

#include <amg.hpp>

Public Member Functions

 amg_precond ()
 
 amg_precond (MatrixT const &mat, amg_tag const &tag)
 The constructor. Saves system matrix, tag and builds data structures for setup. More...
 
void setup ()
 Start setup phase for this class and copy data structures. More...
 
void init_apply () const
 Prepare data structures for preconditioning: Build data structures for precondition phase. Do LU factorization on coarsest level. More...
 
template<typename VectorT >
NumericType calc_complexity (VectorT &avgstencil)
 Returns complexity measures. More...
 
template<typename VectorT >
void apply (VectorT &vec) const
 Precondition Operation. More...
 
template<typename VectorT >
void smooth_jacobi (int level, int const iterations, VectorT &x, VectorT const &rhs_smooth) const
 (Weighted) Jacobi Smoother (CPU version) More...
 
amg_tagtag ()
 

Detailed Description

template<typename MatrixT>
class viennacl::linalg::amg_precond< MatrixT >

AMG preconditioner class, can be supplied to solve()-routines.

Examples:
amg.cpp.

Definition at line 339 of file amg.hpp.

Constructor & Destructor Documentation

template<typename MatrixT >
viennacl::linalg::amg_precond< MatrixT >::amg_precond ( )
inline

Definition at line 370 of file amg.hpp.

template<typename MatrixT >
viennacl::linalg::amg_precond< MatrixT >::amg_precond ( MatrixT const &  mat,
amg_tag const &  tag 
)
inline

The constructor. Saves system matrix, tag and builds data structures for setup.

Parameters
matSystem matrix
tagThe AMG tag

Definition at line 376 of file amg.hpp.

Member Function Documentation

template<typename MatrixT >
template<typename VectorT >
void viennacl::linalg::amg_precond< MatrixT >::apply ( VectorT &  vec) const
inline

Precondition Operation.

Parameters
vecThe vector to which preconditioning is applied to (ublas version)

Definition at line 445 of file amg.hpp.

template<typename MatrixT >
template<typename VectorT >
NumericType viennacl::linalg::amg_precond< MatrixT >::calc_complexity ( VectorT &  avgstencil)
inline

Returns complexity measures.

Parameters
avgstencilAverage stencil sizes on all levels
Returns
Operator complexity of AMG method

Definition at line 417 of file amg.hpp.

template<typename MatrixT >
void viennacl::linalg::amg_precond< MatrixT >::init_apply ( ) const
inline

Prepare data structures for preconditioning: Build data structures for precondition phase. Do LU factorization on coarsest level.

Definition at line 401 of file amg.hpp.

template<typename MatrixT >
void viennacl::linalg::amg_precond< MatrixT >::setup ( )
inline

Start setup phase for this class and copy data structures.

Definition at line 387 of file amg.hpp.

template<typename MatrixT >
template<typename VectorT >
void viennacl::linalg::amg_precond< MatrixT >::smooth_jacobi ( int  level,
int const  iterations,
VectorT &  x,
VectorT const &  rhs_smooth 
) const
inline

(Weighted) Jacobi Smoother (CPU version)

Parameters
levelCoarse level to which smoother is applied to
iterationsNumber of smoother iterations
xThe vector smoothing is applied to
rhs_smoothThe right hand side of the equation for the smoother

Definition at line 526 of file amg.hpp.

template<typename MatrixT >
amg_tag& viennacl::linalg::amg_precond< MatrixT >::tag ( )
inline

Definition at line 557 of file amg.hpp.


The documentation for this class was generated from the following file: