Skip to content
Commit 016dfb91 authored by Karl Rupp's avatar Karl Rupp
Browse files

AMG: Extended earlier OpenCL-only AMG implementation to CUDA and OpenMP.

Now provides the following:
 - coarsening: classical RS, aggregation
 - smoothing: direct interpolation, aggregation, smoothed-agg
All available for all three backends, no longer requiring uBLAS.
Former RS0 and RS3 dropped due to a lack of fine-grained parallelism.

Implementations mostly based on paper
"Exposing Fine-Grained Parallelism in Algebraic Multigrid Methods"
by Bell et al. Initial implementation in branch
 karlrupp/refurbish-amg
which became too messy over time, hence this cleanup.

New operations available via viennacl/linalg/amg_operations.hpp.
This includes assign_to_dense() and amg_transpose(),
which should at some point become generally available with a nicer API.

Still to be added:
 - diagnostic information from preconditioner object
 - documentation in manual
 - more convenience for amg_tag
parent 45901648
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment