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