PFLARE v1.26 Release Notes
This release uses PETSc 3.25.
BREAKING CHANGES / RENAMED OPTIONS
-
-pc_pflareinv_order is renamed to -pc_pflareinv_poly_order to match the AIR
naming convention. The corresponding Get/Set routine names have also been
updated. To restore old behaviour replace -pc_pflareinv_order with
-pc_pflareinv_poly_order . -
-pc_air_max_dd_ratio has been removed and replaced with a new CF splitting
type, diag_dom. The strong_threshold is now used as the max DD ratio, so only
a single parameter is required. To restore old behaviour replace
-pc_air_strong_threshold -pc_air_max_dd_ratio with
-pc_air_cf_splitting_type diag_dom -pc_air_strong_threshold . -
C interface: compute_cf_splitting_c has been renamed to compute_cf_splitting
to match the Fortran interface name.
NEW FEATURES
GPU / Kokkos
- Kokkos GPU implementation of the ISAI approximate inverse and lAIR z-type.
GMRES Polynomial
- Assembled matrix form for the Newton GMRES polynomial inverses, with both
fixed and dynamic sparsity. Previously only a matrix-free form was available. - Harmonic Ritz value computation improved: very small rounding artefacts are
skipped and eigenvalue clusters are deduplicated, giving more robust behaviour
when lower-order polynomials already act as exact inverses. - New option -pc_air_reuse_amount (1/2/3, default 3) to trade memory for setup
cost by controlling sparsity reuse granularity. - New options pc_air_diag_scale_polys and -pc_air_coarsest_diag_scale_polys control
whether polynomial solvers apply diagonal scaling.
Python Interface
- Python bindings added for PCAIR and PCPFLAREINV.
- Get/Set routines for polynomial coefficients exposed in Python and C/Fortran
interfaces, including the ability to reuse coefficients when only the matrix
values change but the sparsity pattern is fixed. - Python tool added for parsing -pc_air_print_stats_timings output.
PERFORMANCE IMPROVEMENTS
- Reduced compile times.
- CPU GMRES polynomial assembly and ISAI/lAIR setup is much faster and scales better.
BUG FIXES
- Fixed Kokkos setup bugs in parallel with GPUs causing intermittent failures.
- Fixed parallel bug with SAI approximate inverse type.
- Fixed GMRES polynomial array overrun.
- Fixed truncation in GMRES Newton residual computation.
- Fixed memory leak in matrix-free Neumann polynomial setup.
- Fixed memory leak in Fortran get-coefficients test.
- Ensured PCReset is called correctly when changing parameters.
DOCUMENTATION & TESTS
- Jupyter notebooks added to help new users.
- Documentation restructured and split into topic-focused pages.
- New tests: upwind DG FEM advection (2D and 3D including twisted meshes),
finite difference, SUPG with curved velocity, and bottom-flow cases.