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