xref: /petsc/src/ksp/pc/impls/pbjacobi/pbjacobi.h (revision a496304597bacff3545e802853d69e8765312868)
1*a4963045SJacob Faibussowitsch #pragma once
212facf1bSJunchao Zhang 
312facf1bSJunchao Zhang #include <petsc/private/pcimpl.h>
412facf1bSJunchao Zhang 
512facf1bSJunchao Zhang /*
612facf1bSJunchao Zhang    Private context (data structure) for the PBJacobi preconditioner.
712facf1bSJunchao Zhang */
812facf1bSJunchao Zhang typedef struct {
912facf1bSJunchao Zhang   const MatScalar *diag;
1012facf1bSJunchao Zhang   PetscInt         bs, mbs; /* block size (bs), and number of blocks (mbs) */
1112facf1bSJunchao Zhang   void            *spptr;   /* opaque pointer to a device data structure */
1212facf1bSJunchao Zhang } PC_PBJacobi;
1312facf1bSJunchao Zhang 
1412facf1bSJunchao Zhang #if defined(PETSC_HAVE_CUDA)
1512facf1bSJunchao Zhang PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_CUDA(PC);
1612facf1bSJunchao Zhang #endif
1712facf1bSJunchao Zhang 
1812facf1bSJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS)
1912facf1bSJunchao Zhang PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Kokkos(PC);
2012facf1bSJunchao Zhang #endif
2112facf1bSJunchao Zhang 
2212facf1bSJunchao Zhang PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Host(PC);
2312facf1bSJunchao Zhang PETSC_INTERN PetscErrorCode PCDestroy_PBJacobi(PC);
24