PCPFLAREINV#

Approximate-inverse preconditioner (GMRES/Neumann polynomials, sparse approximate inverses, weighted Jacobi), applied assembled or matrix-free

Options Database Keys#

  • -pc_pflareinv_type (power|arnoldi|newton|newton_no_extra|neumann|sai|isai|wjacobi|jacobi) - approximate inverse type; defaults to arnoldi

  • -pc_pflareinv_poly_order poly_order - polynomial order if using a polynomial inverse type; defaults to 6

  • -pc_pflareinv_matrix_free (true|false) - apply matrix-free instead of assembling the inverse; defaults to false

Notes#

PCPFLAREINV requires configuring PETSc with --download-pflare.

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

PCPFLAREINV 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).

PCPFLAREINV implements PCMatApply(), so a KSPMatSolve() with KSPPREONLY or KSPRICHARDSON applies the approximate inverse (assembled or matrix-free) to a whole dense block of right-hand sides at once; on the GPU backends this keeps a multiple right-hand side solve on the device.

See Also#

KSP: Linear System Solvers, PCCreate(), PCSetType(), PCType, PC, PCAIR, PCGAMG, PCMatApply(), KSPMatSolve()

Level#

intermediate

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