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