xref: /petsc/src/ksp/pc/impls/pbjacobi/pbjacobi.h (revision 517f4e3460cd8c7e73c19b8bf533f1efe47f30a7)
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