ViennaCL - The Vienna Computing Library
1.5.2
|
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.
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 |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
namespace | viennacl::linalg |
Provides all linear algebra operations which are not covered by operator overloads. | |
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, viennacl::context ctx) |
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 InternalVectorType , typename SparseMatrixType > | |
void | amg_setup_apply (InternalVectorType &result, InternalVectorType &rhs, InternalVectorType &residual, SparseMatrixType const &A, amg_tag const &tag, viennacl::context ctx) |
Setup data structures for precondition phase for later use on the GPU. | |
template<typename ScalarType , typename SparseMatrixType > | |
void | amg_lu (boost::numeric::ublas::compressed_matrix< ScalarType > &op, boost::numeric::ublas::permutation_matrix<> &Permutation, SparseMatrixType const &A) |
Pre-compute LU factorization for direct solve (ublas library). |
Main include file for algebraic multigrid (AMG) preconditioners. Experimental.
Implementation contributed by Markus Wagner
#define VIENNACL_AMG_COARSE_LIMIT 50 |
#define VIENNACL_AMG_MAX_LEVELS 100 |