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