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 PetscFunctionBegin; 44 if (VecRegisterAllCalled) PetscFunctionReturn(0); 45 VecRegisterAllCalled = PETSC_TRUE; 46 47 PetscCall(VecRegister(VECSEQ, VecCreate_Seq)); 48 PetscCall(VecRegister(VECMPI, VecCreate_MPI)); 49 PetscCall(VecRegister(VECSTANDARD, VecCreate_Standard)); 50 PetscCall(VecRegister(VECSHARED, VecCreate_Shared)); 51 #if defined PETSC_HAVE_VIENNACL 52 PetscCall(VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL)); 53 PetscCall(VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL)); 54 PetscCall(VecRegister(VECVIENNACL, VecCreate_ViennaCL)); 55 #endif 56 #if defined(PETSC_HAVE_CUDA) 57 PetscCall(VecRegister(VECSEQCUDA, VecCreate_SeqCUDA)); 58 PetscCall(VecRegister(VECMPICUDA, VecCreate_MPICUDA)); 59 PetscCall(VecRegister(VECCUDA, VecCreate_CUDA)); 60 #endif 61 #if defined(PETSC_HAVE_KOKKOS_KERNELS) 62 PetscCall(VecRegister(VECSEQKOKKOS, VecCreate_SeqKokkos)); 63 PetscCall(VecRegister(VECMPIKOKKOS, VecCreate_MPIKokkos)); 64 PetscCall(VecRegister(VECKOKKOS, VecCreate_Kokkos)); 65 #endif 66 #if defined(PETSC_HAVE_HIP) 67 PetscCall(VecRegister(VECSEQHIP, VecCreate_SeqHIP)); 68 PetscCall(VecRegister(VECMPIHIP, VecCreate_MPIHIP)); 69 PetscCall(VecRegister(VECHIP, VecCreate_HIP)); 70 #endif 71 PetscFunctionReturn(0); 72 } 73