1 #ifndef PBJACOBI_H 2 #define PBJACOBI_H 3 4 #include <petsc/private/pcimpl.h> 5 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; 14 15 #if defined(PETSC_HAVE_CUDA) 16 PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_CUDA(PC); 17 #endif 18 19 #if defined(PETSC_HAVE_KOKKOS_KERNELS) 20 PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Kokkos(PC); 21 #endif 22 23 PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Host(PC); 24 PETSC_INTERN PetscErrorCode PCDestroy_PBJacobi(PC); 25 26 #endif 27