PCAIR#

Reduction-based algebraic multigrid using approximate ideal restriction (AIR), providing the AIRG, nAIR and lAIR methods for nonsymmetric/asymmetric linear systems

Options Database Keys#

  • -pc_air_z_type (product|lair|lair_sai) - grid-transfer operator type

  • -pc_air_inverse_type (power|arnoldi|newton|neumann|sai|isai|wjacobi|jacobi) - approximate inverse used for smoothing

  • -pc_air_poly_order poly_order - polynomial order if using a polynomial inverse type

  • -pc_air_smooth_type smooth_type - type and number of smooths, any sequence of f and c characters (for example ff, fc, fcf)

  • -pc_air_cf_splitting_type (pmisr_ddc|diag_dom|pmis|pmis_dist2|agg|pmis_agg) - CF splitting to use

  • -pc_air_strong_threshold strong_threshold - strong threshold used in the CF splitting

  • -pc_air_r_drop drop_tol - drop tolerance applied to R on each level after it is built

  • -pc_air_a_drop drop_tol - drop tolerance applied to the coarse matrix on each level after it is built

  • -pc_air_print_stats_timings (true|false) - print statistics about the multigrid hierarchy and timings

Notes#

PCAIR requires configuring PETSc with --download-pflare.

The combination of -pc_air_z_type and -pc_air_inverse_type selects the reduction multigrid: product + arnoldi gives AIRG, lair + wjacobi gives lAIR, and so on.

Only the most common options are listed here. See PFLAREProject/PFLARE and its docs/options.md for the complete set, and the many PCAIRSetXXX() routines.

PCAIR can use GPUs in both its setup and solve: configure PETSc with Kokkos and the relevant GPU backend (CUDA, HIP or SYCL), then specify the matrix/vector types as the PETSc Kokkos types (for example -mat_type aijkokkos -vec_type kokkos, or -dm_mat_type aijkokkos -dm_vec_type kokkos if using a DM).

If you use PCAIR please cite S. Dargaville et al., “AIR multigrid with GMRES polynomials (AIRG) and additive preconditioners for Boltzmann transport”, J. Comput. Phys. 518 (2024) 113342.

See Also#

KSP: Linear System Solvers, PCCreate(), PCSetType(), PCType, PC, PCPFLAREINV, PCHYPRE, PCGAMG, PCMG

Level#

intermediate

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages