This library contains methods which can be used to solve linear systems in parallel with PETSc, with interfaces in C/Fortran/Python.
It aims to provide fast & scalable iterative methods for asymmetric linear systems, in parallel and on both CPUs and GPUs.
Some examples of asymmetric linear systems that PFLARE can scalably solve include:
- Advection equations
- Streaming operators from Boltzmann applications
- Space-time discretisations
- Heavily anisotropic Poisson/diffusion equations
- Triangle factors from sparse factorisations (e.g. ILU methods)
without requiring Gauss-Seidel methods. This includes time dependent or independent equations, with structured or unstructured grids, with lower triangular structure or without.
PFLARE adds new methods to PETSc, including:
- Polynomial approximate inverses, e.g., GMRES and Neumann polynomials
- Reduction multigrids, e.g., AIRG, nAIR, lAIR and others
- CF splittings, e.g., PMISR DDC
- Methods to extract diagonally dominant submatrices
You can get started with PFLARE in one of five ways:
- PFLARE is available directly through the PETSc configure (from the PETSc 3.25 release) with:
--download-pflare, see docs/installation.md - PFLARE is available in the Spack package repository with:
spack install pflare - To run the Jupyter notebooks in
notebooks/in your browser without requiring a local install, click the Binder badge above - To download a Docker image with PFLARE installed, run
docker run -it stevendargaville/pflare, thenmake checkinside the container - To build from source, see docs/installation.md
The Jupyter notebooks below are the best place to start; they can be run interactively in your browser via the Binder badge above with no local install:
| Path | Contents |
|---|---|
| notebooks/01_getting_started.ipynb | Introduce PFLARE |
| notebooks/02_pcpflareinv.ipynb | Examine some of the approximate inverses found in PCPFLAREINV |
| notebooks/03_cf_splitting.ipynb | Visualise the C/F splitting and explore the PMISR-DDC algorithm |
| notebooks/04_pcair.ipynb | Introduce PCAIR and the AIRG method |
| notebooks/05_parallel.ipynb | Discuss PCAIR, parallelism and GPUs |
| notebooks/06_reuse.ipynb | Discuss PCAIR and reuse |
| Path | Contents |
|---|---|
| docs/new_methods.md | Details on the new methods added by PFLARE |
| docs/installation.md | How to install PFLARE |
| docs/use_pflare.md | How to use PFLARE |
| docs/gpus.md | Using GPUs with PFLARE |
| docs/reuse.md | Re-using components of PFLARE |
| docs/options.md | List of the options available in PFLARE |
| docs/faq.md | Frequently asked questions and help! |
The PFLARE API references are now available in the PETSc manual pages:
For more ways to use the library please see the Fortran/C examples and the Makefile in tests/, along with the Python examples in python/.
Contributions and bug reports are very welcome! Please see CONTRIBUTING.md for how to get involved, and use the issue tracker to report problems or request features. PFLARE is MIT licensed.
Please see the references below for more details. If you use PFLARE in your work, please consider citing [1-3].
- S. Dargaville, R. P. Smedley-Stevenson, P. N. Smith, C. C. Pain, AIR multigrid with GMRES polynomials (AIRG) and additive preconditioners for Boltzmann transport, Journal of Computational Physics 518 (2024) 113342
- S. Dargaville, R. P. Smedley-Stevenson, P. N. Smith, C. C. Pain, Coarsening and parallelism with reduction multigrids for hyperbolic Boltzmann transport, The International Journal of High Performance Computing Applications 39(3) (2025) 364-384
- S. Dargaville, R. P. Smedley-Stevenson, P. N. Smith, C. C. Pain, Solving advection equations with reduction multigrids on GPUs, Journal of Computational Physics 565 (2026) 115177
- T. A. Manteuffel, S. Münzenmaier, J. Ruge, B. Southworth, Nonsymmetric Reduction-Based Algebraic Multigrid, SIAM Journal on Scientific Computing 41 (2019) S242–S268
- T. A. Manteuffel, J. Ruge, B. S. Southworth, Nonsymmetric algebraic multigrid based on local approximate ideal restriction (lAIR), SIAM Journal on Scientific Computing 40 (2018) A4105–A4130
- A. Ali, J. J. Brannick, K. Kahl, O. A. Krzysik, J. B. Schroder, B. S. Southworth, Constrained local approximate ideal restriction for advection-diffusion problems, SIAM Journal on Scientific Computing (2024) S96–S122
- T. Zaman, N. Nytko, A. Taghibakhshi, S. MacLachlan, L. Olson, M. West, Generalizing reduction-based algebraic multigrid, Numerical Linear Algebra with Applications 31(3) (2024) e2543
- Loe, J.A., Morgan, R.B, Toward efficient polynomial preconditioning for GMRES. Numerical Linear Algebra with Applications 29 (2022) e2427
