CUSP contains various C++ iterative sparse solvers and preconditioners
Documentation and downloads are on the CUSP Google code webpage.
- CUSP includes matrix gallery routines to create diffusion discretisations
template<typename Method, typename MatrixType > void cusp::gallery::diffusion(...)
- The method is either FD (finite difference) or FE (finite element)
- Also cusp::gallery::poisson5pt etc
The CUSP wiki info on benchmarking
- Matrix formats
- DIA and ELL formats generally most efficient for sparse matrix-vector products - therefore fastest for solving with iterative methods (e.g. Conjugate Gradients).
- COO and CSR formats are more flexible than DIA and ELL and easier to manipulate.
- HYB format is hybrid of the ELL and COO a good default
- Krylov solvers
- Conjugate-Gradient (CG)
- Biconjugate Gradient (BiCG)
- Biconjugate Gradient Stabilized (BiCGstab
- Generalized Minimum Residual (GMRES)
- Multi-mass Conjugate-Gradient (CG-M)
- Multi-mass Biconjugate Gradient stabilized (BiCGstab-M)
- Algebraic Multigrid (AMG) based on Smoothed Aggregation
- Approximate Inverse (AINV)