Skip to content

PFLARE-v1.26.0

Latest

Choose a tag to compare

@stevendargaville stevendargaville released this 26 Mar 00:41
· 19 commits to main since this release
86fee59

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.