Actual source code: vecregall.c


  2: #include <petscvec.h>
  3: #include <petsc/private/vecimpl.h>
  4: PETSC_EXTERN PetscErrorCode VecCreate_Seq(Vec);
  5: PETSC_EXTERN PetscErrorCode VecCreate_MPI(Vec);
  6: PETSC_EXTERN PetscErrorCode VecCreate_Standard(Vec);
  7: PETSC_EXTERN PetscErrorCode VecCreate_Shared(Vec);
  8: #if defined(PETSC_HAVE_MPI_PROCESS_SHARED_MEMORY)
  9: PETSC_EXTERN PetscErrorCode VecCreate_Node(Vec);
 10: #endif
 11: #if defined(PETSC_HAVE_VIENNACL)
 12: PETSC_EXTERN PetscErrorCode VecCreate_SeqViennaCL(Vec);
 13: PETSC_EXTERN PetscErrorCode VecCreate_MPIViennaCL(Vec);
 14: PETSC_EXTERN PetscErrorCode VecCreate_ViennaCL(Vec);
 15: #endif
 16: #if defined(PETSC_HAVE_CUDA)
 17: PETSC_EXTERN PetscErrorCode VecCreate_SeqCUDA(Vec);
 18: PETSC_EXTERN PetscErrorCode VecCreate_MPICUDA(Vec);
 19: PETSC_EXTERN PetscErrorCode VecCreate_CUDA(Vec);
 20: #endif
 21: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
 22: PETSC_EXTERN PetscErrorCode VecCreate_SeqKokkos(Vec);
 23: PETSC_EXTERN PetscErrorCode VecCreate_MPIKokkos(Vec);
 24: PETSC_EXTERN PetscErrorCode VecCreate_Kokkos(Vec);
 25: #endif
 26: #if defined(PETSC_HAVE_HIP)
 27: PETSC_EXTERN PetscErrorCode VecCreate_SeqHIP(Vec);
 28: PETSC_EXTERN PetscErrorCode VecCreate_MPIHIP(Vec);
 29: PETSC_EXTERN PetscErrorCode VecCreate_HIP(Vec);
 30: #endif

 32: /*@C
 33:   VecRegisterAll - Registers all of the vector components in the Vec package.

 35:   Not Collective

 37:   Level: advanced

 39: .seealso: `VecRegister()`, `VecRegisterDestroy()`, `VecRegister()`
 40: @*/
 41: PetscErrorCode VecRegisterAll(void)
 42: {
 43:   if (VecRegisterAllCalled) return 0;
 44:   VecRegisterAllCalled = PETSC_TRUE;

 46:   VecRegister(VECSEQ, VecCreate_Seq);
 47:   VecRegister(VECMPI, VecCreate_MPI);
 48:   VecRegister(VECSTANDARD, VecCreate_Standard);
 49:   VecRegister(VECSHARED, VecCreate_Shared);
 50: #if defined PETSC_HAVE_VIENNACL
 51:   VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL);
 52:   VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL);
 53:   VecRegister(VECVIENNACL, VecCreate_ViennaCL);
 54: #endif
 55: #if defined(PETSC_HAVE_CUDA)
 56:   VecRegister(VECSEQCUDA, VecCreate_SeqCUDA);
 57:   VecRegister(VECMPICUDA, VecCreate_MPICUDA);
 58:   VecRegister(VECCUDA, VecCreate_CUDA);
 59: #endif
 60: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
 61:   VecRegister(VECSEQKOKKOS, VecCreate_SeqKokkos);
 62:   VecRegister(VECMPIKOKKOS, VecCreate_MPIKokkos);
 63:   VecRegister(VECKOKKOS, VecCreate_Kokkos);
 64: #endif
 65: #if defined(PETSC_HAVE_HIP)
 66:   VecRegister(VECSEQHIP, VecCreate_SeqHIP);
 67:   VecRegister(VECMPIHIP, VecCreate_MPIHIP);
 68:   VecRegister(VECHIP, VecCreate_HIP);
 69: #endif
 70:   return 0;
 71: }