1: #ifndef VPBJACOBI_H 2: #define VPBJACOBI_H 4: #include <petsc/private/pcimpl.h> 6: /* 7: Private context (data structure) for the VPBJacobi preconditioner. 8: */ 9: typedef struct { 10: PetscInt nblocks, min_bs, max_bs; // Stats recorded during setup for viewing 11: MatScalar *diag; /* on host */ 12: void *spptr; /* offload to devices */ 13: } PC_VPBJacobi; 15: #if defined(PETSC_HAVE_CUDA) 16: PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_CUDA(PC); 17: #endif 19: #if defined(PETSC_HAVE_KOKKOS_KERNELS) 20: PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Kokkos(PC); 21: #endif 23: PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Host(PC); 24: PETSC_INTERN PetscErrorCode PCDestroy_VPBJacobi(PC); 26: #endif