Actual source code: petscmat_kokkos.hpp
  1: #pragma once
  3: #include <petscconf.h>
  5: /* SUBMANSEC = Mat */
  7: #if defined(PETSC_HAVE_KOKKOS)
  9:   #include <Kokkos_Core.hpp>
 10: #include <petscmat.h>
 12: /*@C
 13:    MatCreateSeqAIJKokkosWithKokkosViews - Creates a MATSEQAIJKOKKOS matrix with Kokkos views of the aij data
 15:    Synopsis:
 16: #include <petscmat_kokkos.hpp>
 17:    PetscErrorCode MatCreateSeqAIJKokkosWithKokkosViews  (MPI_Comm comm, PetscInt m, PetscInt n, Kokkos::View<PetscInt *>& i_d, Kokkos::View<PetscInt *>& j_d, Kokkos::View<PetscScalar *>& a_d, Mat *A);
 19:    Logically Collective, No Fortran Support
 21:    Input Parameter:
 22: +  comm  - the MPI communicator
 23: -  m     - row size
 24: -  n     - the column size
 25: -  i     - the Kokkos view of row data (in Kokkos::DefaultExecutionSpace)
 26: -  j     - the Kokkos view of the column data (in Kokkos::DefaultExecutionSpace)
 27: -  a     - the Kokkos view of the values (in Kokkos::DefaultExecutionSpace)
 29:    Output Parameter:
 30: .  A  - the `MATSEQAIJKOKKOS` matrix
 32:    Level: intermediate
 34:    Notes:
 35:    Creates a Mat given the csr data input as Kokkos views. This routine allows a Mat
 36:    to be built without involving the host. Don't modify entries in the views after this routine.
 37:    There should be no outstanding asynchronous operations on the views (ie this routine does not call fence()
 38:    before using the views)
 40: .seealso:
 41: @*/
 42: PetscErrorCode MatCreateSeqAIJKokkosWithKokkosViews(MPI_Comm, PetscInt, PetscInt, Kokkos::View<PetscInt *> &, Kokkos::View<PetscInt *> &, Kokkos::View<PetscScalar *> &, Mat *);
 44: #endif