PCBJKOKKOS — PETSc 3.23.0 documentation

Skip to main content
`Ctrl`+`K`

# PCBJKOKKOS

A batched Krylov/block Jacobi solver that runs a solve of each diagaonl block of a block diagonal `MATSEQAIJ` in a Kokkos thread group

## Options Database Key

- -pc_bjkokkos_ - options prefix for its `KSP` options

## Note

For use with -ksp_type preonly to bypass any computation on the CPU

## Developer Notes

The entire Krylov (TFQMR or BICG) with diagonal preconditioning for each block of a block diagnaol matrix runs in a Kokkos thread group (eg, one block per SM on NVIDIA). It supports taking a non-block diagonal matrix but this is not tested. One should create an explicit block diagonal matrix and use that as the preconditioning matrix in the outer KSP solver. Variable block size are supported and tested in src/ts/utils/dmplexlandau/tutorials/ex[1|2].c

## See Also

KSP: Linear System Solvers, `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCBJACOBI`, `PCSHELL`, `PCCOMPOSITE`, `PCSetUseAmat()`, `PCBJKOKKOSGetKSP()`

## Level

intermediate

## Location

src/ksp/pc/impls/bjacobi/bjkokkos/bjkokkos.kokkos.cxx

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