1: #ifndef PBJACOBI_H
2: #define PBJACOBI_H
4: #include <petsc/private/pcimpl.h>
6: /*
7: Private context (data structure) for the PBJacobi preconditioner.
8: */
9: typedef struct {
10: const MatScalar *diag;
11: PetscInt bs, mbs; /* block size (bs), and number of blocks (mbs) */
12: void *spptr; /* opaque pointer to a device data structure */
13: } PC_PBJacobi;
15: #if defined(PETSC_HAVE_CUDA)
16: PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_CUDA(PC);
17: #endif
19: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
20: PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Kokkos(PC);
21: #endif
23: PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Host(PC);
24: PETSC_INTERN PetscErrorCode PCDestroy_PBJacobi(PC);
26: #endif