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: MatScalar *diag; /* on host */
11: void *spptr; /* offload to devices */
12: } PC_VPBJacobi;
14: #if defined(PETSC_HAVE_CUDA)
15: PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_CUDA(PC);
16: #endif
18: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
19: PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Kokkos(PC);
20: #endif
22: PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Host(PC);
23: PETSC_INTERN PetscErrorCode PCDestroy_VPBJacobi(PC);
25: #endif