1 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 31 32 /*@C 33 VecRegisterAll - Registers all of the vector components in the Vec package. 34 35 Not Collective 36 37 Level: advanced 38 39 .seealso: VecRegister(), VecRegisterDestroy(), VecRegister() 40 @*/ 41 PetscErrorCode VecRegisterAll(void) 42 { 43 PetscErrorCode ierr; 44 45 PetscFunctionBegin; 46 if (VecRegisterAllCalled) PetscFunctionReturn(0); 47 VecRegisterAllCalled = PETSC_TRUE; 48 49 ierr = VecRegister(VECSEQ, VecCreate_Seq);CHKERRQ(ierr); 50 ierr = VecRegister(VECMPI, VecCreate_MPI);CHKERRQ(ierr); 51 ierr = VecRegister(VECSTANDARD, VecCreate_Standard);CHKERRQ(ierr); 52 ierr = VecRegister(VECSHARED, VecCreate_Shared);CHKERRQ(ierr); 53 #if defined PETSC_HAVE_VIENNACL 54 ierr = VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL);CHKERRQ(ierr); 55 ierr = VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL);CHKERRQ(ierr); 56 ierr = VecRegister(VECVIENNACL, VecCreate_ViennaCL);CHKERRQ(ierr); 57 #endif 58 #if defined(PETSC_HAVE_CUDA) 59 ierr = VecRegister(VECSEQCUDA, VecCreate_SeqCUDA);CHKERRQ(ierr); 60 ierr = VecRegister(VECMPICUDA, VecCreate_MPICUDA);CHKERRQ(ierr); 61 ierr = VecRegister(VECCUDA, VecCreate_CUDA);CHKERRQ(ierr); 62 #endif 63 #if defined(PETSC_HAVE_KOKKOS_KERNELS) 64 ierr = VecRegister(VECSEQKOKKOS, VecCreate_SeqKokkos);CHKERRQ(ierr); 65 ierr = VecRegister(VECMPIKOKKOS, VecCreate_MPIKokkos);CHKERRQ(ierr); 66 ierr = VecRegister(VECKOKKOS, VecCreate_Kokkos);CHKERRQ(ierr); 67 #endif 68 #if defined(PETSC_HAVE_HIP) 69 ierr = VecRegister(VECSEQHIP, VecCreate_SeqHIP);CHKERRQ(ierr); 70 ierr = VecRegister(VECMPIHIP, VecCreate_MPIHIP);CHKERRQ(ierr); 71 ierr = VecRegister(VECHIP, VecCreate_HIP);CHKERRQ(ierr); 72 #endif 73 PetscFunctionReturn(0); 74 } 75