Data Structures |
class | amg_tag |
| A tag for algebraic multigrid (AMG). Used to transport information from the user to the implementation. More...
|
class | amg_nonzero_scalar< InternalType, IteratorType, ScalarType > |
| A class for a scalar that can be written to the sparse matrix or sparse vector datatypes. More...
|
class | amg_sparsevector_iterator< InternalType > |
| Defines an iterator for the sparse vector type. More...
|
class | amg_sparsevector< ScalarType > |
| A class for the sparse vector type. More...
|
class | amg_sparsematrix< ScalarType > |
| A class for the sparse matrix type. Uses vector of maps as data structure for higher performance and lower memory usage. Uses similar interface as ublas::compressed_matrix. Can deal with transposed of matrix internally: Creation, Storage, Iterators, etc. More...
|
class | amg_point |
| A class for the AMG points. Saves point index and influence measure Holds information whether point is undecided, C or F point. Holds lists of points that are influenced by or influencing this point. More...
|
struct | classcomp |
| Comparison class for the sorted set of points in amg_pointvector. Set is sorted by influence measure from lower to higher with the point-index as tie-breaker. More...
|
class | amg_pointvector |
| A class for the AMG points. Holds pointers of type amg_point in a vector that can be accessed using [point-index]. Additional list of pointers sorted by influence number and index to improve coarsening performance (see amg_coarse_classic_onepass() in amg_coarse.hpp) Constructs indices for C points on the coarse level, needed for interpolation. More...
|
class | amg_slicing< InternalType1, InternalType2 > |
| A class for the matrix slicing for parallel coarsening schemes (RS0/RS3). More...
|
Namespaces |
namespace | viennacl |
namespace | viennacl::linalg |
namespace | viennacl::linalg::detail |
namespace | viennacl::linalg::detail::amg |
Defines |
#define | VIENNACL_AMG_COARSE_RS 1 |
#define | VIENNACL_AMG_COARSE_ONEPASS 2 |
#define | VIENNACL_AMG_COARSE_RS0 3 |
#define | VIENNACL_AMG_COARSE_RS3 4 |
#define | VIENNACL_AMG_COARSE_AG 5 |
#define | VIENNACL_AMG_INTERPOL_DIRECT 1 |
#define | VIENNACL_AMG_INTERPOL_CLASSIC 2 |
#define | VIENNACL_AMG_INTERPOL_AG 3 |
#define | VIENNACL_AMG_INTERPOL_SA 4 |
Functions |
template<typename SparseMatrixType > |
void | amg_mat_prod (SparseMatrixType &A, SparseMatrixType &B, SparseMatrixType &RES) |
| Sparse matrix product. Calculates RES = A*B.
|
template<typename SparseMatrixType > |
void | amg_galerkin_prod (SparseMatrixType &A, SparseMatrixType &P, SparseMatrixType &RES) |
| Sparse Galerkin product: Calculates RES = trans(P)*A*P.
|
template<typename SparseMatrixType > |
void | test_triplematprod (SparseMatrixType &A, SparseMatrixType &P, SparseMatrixType &A_i1) |
| Test triple-matrix product by comparing it to ublas functions. Very slow for large matrices!
|
template<typename SparseMatrixType , typename PointVectorType > |
void | test_interpolation (SparseMatrixType &A, SparseMatrixType &P, PointVectorType &Pointvector) |
| Test if interpolation matrix makes sense. Only vanilla test though! Only checks if basic requirements are met!
|
Helper classes and functions for the AMG preconditioner. Experimental.