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_KOKKOS_KERNELS) 17 PETSC_EXTERN PetscErrorCode VecCreate_SeqKokkos(Vec); 18 PETSC_EXTERN PetscErrorCode VecCreate_MPIKokkos(Vec); 19 PETSC_EXTERN PetscErrorCode VecCreate_Kokkos(Vec); 20 #endif 21 22 /*@C 23 VecRegisterAll - Registers all of the vector types in the `Vec` package. 24 25 Not Collective 26 27 Level: advanced 28 29 .seealso: [](ch_vectors), `Vec`, `VecType`, `VecRegister()`, `VecRegisterDestroy()`, `VecRegister()` 30 @*/ 31 PetscErrorCode VecRegisterAll(void) 32 { 33 PetscFunctionBegin; 34 if (VecRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS); 35 VecRegisterAllCalled = PETSC_TRUE; 36 37 PetscCall(VecRegister(VECSEQ, VecCreate_Seq)); 38 PetscCall(VecRegister(VECMPI, VecCreate_MPI)); 39 PetscCall(VecRegister(VECSTANDARD, VecCreate_Standard)); 40 PetscCall(VecRegister(VECSHARED, VecCreate_Shared)); 41 #if defined PETSC_HAVE_VIENNACL 42 PetscCall(VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL)); 43 PetscCall(VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL)); 44 PetscCall(VecRegister(VECVIENNACL, VecCreate_ViennaCL)); 45 #endif 46 #if defined(PETSC_HAVE_CUDA) 47 PetscCall(VecRegister(VECSEQCUDA, VecCreate_SeqCUDA)); 48 PetscCall(VecRegister(VECMPICUDA, VecCreate_MPICUDA)); 49 PetscCall(VecRegister(VECCUDA, VecCreate_CUDA)); 50 #endif 51 #if defined(PETSC_HAVE_KOKKOS_KERNELS) 52 PetscCall(VecRegister(VECSEQKOKKOS, VecCreate_SeqKokkos)); 53 PetscCall(VecRegister(VECMPIKOKKOS, VecCreate_MPIKokkos)); 54 PetscCall(VecRegister(VECKOKKOS, VecCreate_Kokkos)); 55 #endif 56 #if defined(PETSC_HAVE_HIP) 57 PetscCall(VecRegister(VECSEQHIP, VecCreate_SeqHIP)); 58 PetscCall(VecRegister(VECMPIHIP, VecCreate_MPIHIP)); 59 PetscCall(VecRegister(VECHIP, VecCreate_HIP)); 60 #endif 61 PetscFunctionReturn(PETSC_SUCCESS); 62 } 63