Hitenze / pargemslr

The parGeMSLR is an MPI-based sparse linear system solution/preconditioning package implementation with C++.
GNU Lesser General Public License v2.1
24 stars 7 forks source link

ParGeMSLR: A MPI based parallel hierarchical low-rank preconditioner (Version 1.0.0)

ParGeMSLR (Parallel Generalized Multilevel Schur Low-Rank) is a MPI-based C++ library. \n This is a distributed-memory Multilevel Low-Rank Preconditioning and Solution package for the solution of large and sparse (non)symmetric linear systems of equations. \n The Parallel GeMSLR preconditioner is purely algebraic and is based on a multilevel reordering of the original set of equations/variables. The reordering is implemented by hierarchically ordering the interface degrees of freedom at each level and several reordering schemes are available. At each given level, GeMSLR decouples (via ParMETIS) the solution of the current linear system into one associated with the interior variables and another associated with the interface ones. The first subproblem is block-diagonal and solved in parallel by applying some form of ILU preconditioning. The recursive nature of the preconditioner appears on the second subproblem where the Schur complement linear system is reconditioned by the interface coupling matrix. The latter is applied by descending to the next level until the last level is reached. In the latter case, the user can choose to use either Block Jacobi acceleration or redundantly solve the problem by (I)LU. Low-rank correction terms can be added at each level to further enhance robustness, and these are applied using the Woodbury formula.

ParGeMSLR

For questions/feedback send e-mail to Yousef Saad [saad@umn.edu] or Tianshi Xu [xuxx1180@umn.edu].

DESCRIPTION OF CONTENTS

INSTALLATION

SAMPLE RUNS