xref: /petsc/src/ksp/pc/impls/vpbjacobi/vpbjacobi.h (revision 6524c165f7ddaf30fd7457737f668f984c8ababf)
1*6524c165SJacob Faibussowitsch #ifndef VPBJACOBI_H
2f1be3500SJunchao Zhang #define VPBJACOBI_H
3f1be3500SJunchao Zhang 
4f1be3500SJunchao Zhang #include <petsc/private/pcimpl.h>
5f1be3500SJunchao Zhang 
6f1be3500SJunchao Zhang /*
7f1be3500SJunchao Zhang    Private context (data structure) for the VPBJacobi preconditioner.
8f1be3500SJunchao Zhang */
9f1be3500SJunchao Zhang typedef struct {
10f1be3500SJunchao Zhang   MatScalar *diag;  /* on host */
11f1be3500SJunchao Zhang   void      *spptr; /* offload to devices */
12f1be3500SJunchao Zhang } PC_VPBJacobi;
13f1be3500SJunchao Zhang 
14f1be3500SJunchao Zhang #if defined(PETSC_HAVE_CUDA)
15f1be3500SJunchao Zhang PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_CUDA(PC);
16f1be3500SJunchao Zhang #endif
17f1be3500SJunchao Zhang 
18f1be3500SJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS)
19f1be3500SJunchao Zhang PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Kokkos(PC);
20f1be3500SJunchao Zhang #endif
21f1be3500SJunchao Zhang 
22f1be3500SJunchao Zhang PETSC_INTERN PetscErrorCode PCSetUp_VPBJacobi_Host(PC);
23f1be3500SJunchao Zhang PETSC_INTERN PetscErrorCode PCDestroy_VPBJacobi(PC);
24f1be3500SJunchao Zhang 
25f1be3500SJunchao Zhang #endif
26