ViennaCL - The Vienna Computing Library  1.7.1
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
viennacl::linalg::host_based::amg Namespace Reference

Classes

struct  amg_id_influence
 Helper struct for sequential classical one-pass coarsening. More...
 

Functions

template<typename NumericT >
void amg_influence_trivial (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Routine for taking all connections in the matrix as strong. More...
 
template<typename NumericT >
void amg_influence_advanced (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Routine for extracting strongly connected points considering a user-provided threshold value. More...
 
template<typename NumericT >
void amg_influence (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Dispatcher for influence processing. More...
 
void enumerate_coarse_points (viennacl::linalg::detail::amg::amg_level_context &amg_context)
 Assign IDs to coarse points. More...
 
bool operator> (amg_id_influence const &a, amg_id_influence const &b)
 
template<typename NumericT >
void amg_coarse_classic_onepass (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Classical (RS) one-pass coarsening. Single-Threaded! (VIENNACL_AMG_COARSE_CLASSIC_ONEPASS) More...
 
template<typename NumericT >
void amg_coarse_ag_stage1_sequential (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 AG (aggregation based) coarsening, single-threaded version of stage 1. More...
 
template<typename NumericT >
void amg_coarse_ag_stage1_mis2 (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 AG (aggregation based) coarsening, multi-threaded version of stage 1 using parallel maximum independent sets. More...
 
template<typename NumericT >
void amg_coarse_ag (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 AG (aggregation based) coarsening. Partially single-threaded version (VIENNACL_AMG_COARSE_AG) More...
 
template<typename MatrixT >
void amg_coarse (MatrixT &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Entry point and dispatcher for coarsening procedures. More...
 
template<typename NumericT >
void amg_interpol_direct (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Direct interpolation. Multi-threaded! (VIENNACL_AMG_INTERPOL_DIRECT) More...
 
template<typename NumericT >
void amg_interpol_ag (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 AG (aggregation based) interpolation. Multi-Threaded! (VIENNACL_INTERPOL_AG) More...
 
template<typename NumericT >
void amg_interpol_sa (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Smoothed aggregation interpolation. Multi-Threaded! (VIENNACL_INTERPOL_SA) More...
 
template<typename MatrixT >
void amg_interpol (MatrixT const &A, MatrixT &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag)
 Dispatcher for building the interpolation matrix. More...
 
template<typename NumericT >
void amg_transpose (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &B)
 Computes B = trans(A). More...
 
template<typename NumericT , unsigned int AlignmentV>
void assign_to_dense (viennacl::compressed_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_base< NumericT > &B)
 
template<typename NumericT >
void smooth_jacobi (unsigned int iterations, compressed_matrix< NumericT > const &A, vector< NumericT > &x, vector< NumericT > &x_backup, vector< NumericT > const &rhs_smooth, NumericT weight)
 Damped Jacobi Smoother (CUDA version) More...
 

Function Documentation

template<typename MatrixT >
void viennacl::linalg::host_based::amg::amg_coarse ( MatrixT &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Entry point and dispatcher for coarsening procedures.

Parameters
AOperator matrix for the respective level
amg_contextAMG datastructure object for the grid hierarchy
tagAMG preconditioner tag

Definition at line 697 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_coarse_ag ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

AG (aggregation based) coarsening. Partially single-threaded version (VIENNACL_AMG_COARSE_AG)

Parameters
AOperator matrix for the respective level
amg_contextAMG datastructure object for the grid hierarchy
tagAMG preconditioner tag

Definition at line 604 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_coarse_ag_stage1_mis2 ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

AG (aggregation based) coarsening, multi-threaded version of stage 1 using parallel maximum independent sets.

Parameters
AOperator matrix for the respective level
amg_contextAMG datastructure object for the grid hierarchy
tagAMG preconditioner tag

Definition at line 418 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_coarse_ag_stage1_sequential ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

AG (aggregation based) coarsening, single-threaded version of stage 1.

Parameters
AOperator matrix for the respective level
amg_contextAMG datastructure object for the grid hierarchy
tagAMG preconditioner tag

Definition at line 367 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_coarse_classic_onepass ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Classical (RS) one-pass coarsening. Single-Threaded! (VIENNACL_AMG_COARSE_CLASSIC_ONEPASS)

Parameters
AOperator matrix for the respective level
amg_contextAMG datastructure object for the grid hierarchy
tagAMG preconditioner tag

Definition at line 284 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_influence ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Dispatcher for influence processing.

Definition at line 224 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_influence_advanced ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Routine for extracting strongly connected points considering a user-provided threshold value.

Definition at line 84 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_influence_trivial ( compressed_matrix< NumericT > const &  A,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Routine for taking all connections in the matrix as strong.

Definition at line 50 of file amg_operations.hpp.

template<typename MatrixT >
void viennacl::linalg::host_based::amg::amg_interpol ( MatrixT const &  A,
MatrixT &  P,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Dispatcher for building the interpolation matrix.

Parameters
AOperator matrix
PProlongation matrix
amg_contextAMG hierarchy datastructures
tagAMG configuration tag

Definition at line 952 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_interpol_ag ( compressed_matrix< NumericT > const &  A,
compressed_matrix< NumericT > &  P,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

AG (aggregation based) interpolation. Multi-Threaded! (VIENNACL_INTERPOL_AG)

Parameters
AOperator matrix
PProlongation matrix
amg_contextAMG hierarchy datastructures
tagAMG configuration tag

Definition at line 841 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_interpol_direct ( compressed_matrix< NumericT > const &  A,
compressed_matrix< NumericT > &  P,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Direct interpolation. Multi-threaded! (VIENNACL_AMG_INTERPOL_DIRECT)

Parameters
AOperator matrix
PProlongation matrix
amg_contextAMG hierarchy datastructures
tagAMG preconditioner tag

Definition at line 724 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_interpol_sa ( compressed_matrix< NumericT > const &  A,
compressed_matrix< NumericT > &  P,
viennacl::linalg::detail::amg::amg_level_context amg_context,
viennacl::linalg::amg_tag tag 
)

Smoothed aggregation interpolation. Multi-Threaded! (VIENNACL_INTERPOL_SA)

Parameters
AOperator matrix
PProlongation matrix
amg_contextAMG hierarchy datastructures
tagAMG configuration tag

Definition at line 880 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::amg_transpose ( compressed_matrix< NumericT > const &  A,
compressed_matrix< NumericT > &  B 
)

Computes B = trans(A).

To be replaced by native functionality in ViennaCL.

Definition at line 972 of file amg_operations.hpp.

template<typename NumericT , unsigned int AlignmentV>
void viennacl::linalg::host_based::amg::assign_to_dense ( viennacl::compressed_matrix< NumericT, AlignmentV > const &  A,
viennacl::matrix_base< NumericT > &  B 
)

Assign sparse matrix A to dense matrix B

Definition at line 1042 of file amg_operations.hpp.

void viennacl::linalg::host_based::amg::enumerate_coarse_points ( viennacl::linalg::detail::amg::amg_level_context amg_context)
inline

Assign IDs to coarse points.

Definition at line 235 of file amg_operations.hpp.

bool viennacl::linalg::host_based::amg::operator> ( amg_id_influence const &  a,
amg_id_influence const &  b 
)
inline

Definition at line 268 of file amg_operations.hpp.

template<typename NumericT >
void viennacl::linalg::host_based::amg::smooth_jacobi ( unsigned int  iterations,
compressed_matrix< NumericT > const &  A,
vector< NumericT > &  x,
vector< NumericT > &  x_backup,
vector< NumericT > const &  rhs_smooth,
NumericT  weight 
)

Damped Jacobi Smoother (CUDA version)

Parameters
iterationsNumber of smoother iterations
AOperator matrix for the smoothing
xThe vector smoothing is applied to
x_backup(Different) Vector holding the same values as x
rhs_smoothThe right hand side of the equation for the smoother
weightDamping factor. 0: No effect of smoother. 1: Undamped Jacobi iteration

Definition at line 1074 of file amg_operations.hpp.