xref: /petsc/src/ksp/pc/impls/vpbjacobi/vpbjacobi.h (revision 8b5d2d36b1bd7331337e6600e2fff187f080efc8)
1 #ifndef VPBJACOBI_H
2 #define VPBJACOBI_H
3 
4 #include <petsc/private/pcimpl.h>
5 
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;
14 
15 #if defined(PETSC_HAVE_CUDA)
16 PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_CUDA(PC);
17 #endif
18 
19 #if defined(PETSC_HAVE_KOKKOS_KERNELS)
20 PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Kokkos(PC);
21 #endif
22 
23 PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Host(PC);
24 PETSC_INTERN PetscErrorCode PCDestroy_VPBJacobi(PC);
25 
26 #endif
27