1c6583b63SJunchao Zhang #if !defined(PETSCDMDA_KOKKOS_HPP) 2c6583b63SJunchao Zhang #define PETSCDMDA_KOKKOS_HPP 3c6583b63SJunchao Zhang 4*11d22bbfSJunchao Zhang #include <petscvec_kokkos.hpp> 5c6583b63SJunchao Zhang #include <petscdmda.h> 6c6583b63SJunchao Zhang 7c6583b63SJunchao Zhang #if defined(PETSC_HAVE_KOKKOS) 8c6583b63SJunchao Zhang #include <Kokkos_Core.hpp> 9c6583b63SJunchao Zhang #include <Kokkos_OffsetView.hpp> 10c6583b63SJunchao Zhang 11c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View<const PetscScalar*,MemorySpace>*); 12c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View<const PetscScalar*,MemorySpace>*); 13c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View< PetscScalar*,MemorySpace>*); 14c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View< PetscScalar*,MemorySpace>*); 15c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosViewWrite (DM,Vec,Kokkos::View< PetscScalar*,MemorySpace>*); 16c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosViewWrite(DM,Vec,Kokkos::View< PetscScalar*,MemorySpace>*); 17c6583b63SJunchao Zhang 18c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View<const PetscScalar**,MemorySpace>*); 19c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View<const PetscScalar**,MemorySpace>*); 20c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View< PetscScalar**,MemorySpace>*); 21c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View< PetscScalar**,MemorySpace>*); 22c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosViewWrite (DM,Vec,Kokkos::View< PetscScalar**,MemorySpace>*); 23c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosViewWrite(DM,Vec,Kokkos::View< PetscScalar**,MemorySpace>*); 24c6583b63SJunchao Zhang 25c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View<const PetscScalar***,MemorySpace>*); 26c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View<const PetscScalar***,MemorySpace>*); 27c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View< PetscScalar***,MemorySpace>*); 28c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View< PetscScalar***,MemorySpace>*); 29c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosViewWrite (DM,Vec,Kokkos::View< PetscScalar***,MemorySpace>*); 30c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosViewWrite(DM,Vec,Kokkos::View< PetscScalar***,MemorySpace>*); 31c6583b63SJunchao Zhang 32c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View<const PetscScalar****,MemorySpace>*); 33c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View<const PetscScalar****,MemorySpace>*); 34c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosView (DM,Vec,Kokkos::View< PetscScalar****,MemorySpace>*); 35c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosView (DM,Vec,Kokkos::View< PetscScalar****,MemorySpace>*); 36c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosViewWrite (DM,Vec,Kokkos::View< PetscScalar****,MemorySpace>*); 37c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosViewWrite(DM,Vec,Kokkos::View< PetscScalar****,MemorySpace>*); 38c6583b63SJunchao Zhang 39c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar*,MemorySpace>*); 40c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar*,MemorySpace>*); 41c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar*,MemorySpace>*); 42c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar*,MemorySpace>*); 43c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetViewWrite (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar*,MemorySpace>*); 44c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetViewWrite(DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar*,MemorySpace>*); 45c6583b63SJunchao Zhang 46c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar**,MemorySpace>*); 47c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar**,MemorySpace>*); 48c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar**,MemorySpace>*); 49c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar**,MemorySpace>*); 50c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetViewWrite (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar**,MemorySpace>*); 51c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetViewWrite(DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar**,MemorySpace>*); 52c6583b63SJunchao Zhang 53c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar***,MemorySpace>*); 54c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar***,MemorySpace>*); 55c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar***,MemorySpace>*); 56c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar***,MemorySpace>*); 57c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetViewWrite (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar***,MemorySpace>*); 58c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetViewWrite(DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar***,MemorySpace>*); 59c6583b63SJunchao Zhang 60c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar****,MemorySpace>*); 61c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView<const PetscScalar****,MemorySpace>*); 62c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar****,MemorySpace>*); 63c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetView (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar****,MemorySpace>*); 64c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecGetKokkosOffsetViewWrite (DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar****,MemorySpace>*); 65c6583b63SJunchao Zhang template<class MemorySpace> PetscErrorCode DMDAVecRestoreKokkosOffsetViewWrite(DM,Vec,Kokkos::Experimental::OffsetView< PetscScalar****,MemorySpace>*); 66c6583b63SJunchao Zhang #endif 67c6583b63SJunchao Zhang 68c6583b63SJunchao Zhang #endif 69