Actual source code: pbjacobi.h
1: #pragma once
3: #include <petsc/private/pcimpl.h>
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;
14: #if defined(PETSC_HAVE_CUDA)
15: PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_CUDA(PC);
16: #endif
18: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
19: PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Kokkos(PC);
20: #endif
22: PETSC_INTERN PetscErrorCode PCSetUp_PBJacobi_Host(PC);
23: PETSC_INTERN PetscErrorCode PCDestroy_PBJacobi(PC);