1f7ecc322SBarry Smith #include <petscvec.h> 2af0996ceSBarry Smith #include <petsc/private/vecimpl.h> 38cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_Seq(Vec); 48cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_MPI(Vec); 58cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_Standard(Vec); 68cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_Shared(Vec); 7b674149eSJunchao Zhang #if defined(PETSC_HAVE_MPI_PROCESS_SHARED_MEMORY) 8803a1b88SHong Zhang PETSC_EXTERN PetscErrorCode VecCreate_Node(Vec); 974c49cccSHong Zhang #endif 10e9e886b6SKarl Rupp #if defined(PETSC_HAVE_VIENNACL) 1145b7af86SKarl Rupp PETSC_EXTERN PetscErrorCode VecCreate_SeqViennaCL(Vec); 1245b7af86SKarl Rupp PETSC_EXTERN PetscErrorCode VecCreate_MPIViennaCL(Vec); 1345b7af86SKarl Rupp PETSC_EXTERN PetscErrorCode VecCreate_ViennaCL(Vec); 14b8ced49eSKarl Rupp #endif 1510171e34SJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS) 1610171e34SJunchao Zhang PETSC_EXTERN PetscErrorCode VecCreate_SeqKokkos(Vec); 1710171e34SJunchao Zhang PETSC_EXTERN PetscErrorCode VecCreate_MPIKokkos(Vec); 1810171e34SJunchao Zhang PETSC_EXTERN PetscErrorCode VecCreate_Kokkos(Vec); 1910171e34SJunchao Zhang #endif 20aa713d4dSSatish Balay 21da8c939bSJacob Faibussowitsch PetscBool VecRegisterAllCalled = PETSC_FALSE; 22da8c939bSJacob Faibussowitsch 23aa713d4dSSatish Balay /*@C 2420662ed9SBarry Smith VecRegisterAll - Registers all of the vector types in the `Vec` package. 25aa713d4dSSatish Balay 26aa713d4dSSatish Balay Not Collective 27aa713d4dSSatish Balay 28aa713d4dSSatish Balay Level: advanced 29aa713d4dSSatish Balay 3038b5cf2dSJacob Faibussowitsch .seealso: [](ch_vectors), `Vec`, `VecType`, `VecRegister()`, `VecRegisterDestroy()` 31aa713d4dSSatish Balay @*/ 32d71ae5a4SJacob Faibussowitsch PetscErrorCode VecRegisterAll(void) 33d71ae5a4SJacob Faibussowitsch { 34aa713d4dSSatish Balay PetscFunctionBegin; 353ba16761SJacob Faibussowitsch if (VecRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS); 36aa713d4dSSatish Balay VecRegisterAllCalled = PETSC_TRUE; 37aa713d4dSSatish Balay 389566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSEQ, VecCreate_Seq)); 399566063dSJacob Faibussowitsch PetscCall(VecRegister(VECMPI, VecCreate_MPI)); 409566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSTANDARD, VecCreate_Standard)); 419566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSHARED, VecCreate_Shared)); 42*beceaeb6SBarry Smith #if defined(PETSC_HAVE_VIENNACL) 439566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL)); 449566063dSJacob Faibussowitsch PetscCall(VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL)); 459566063dSJacob Faibussowitsch PetscCall(VecRegister(VECVIENNACL, VecCreate_ViennaCL)); 46b8ced49eSKarl Rupp #endif 47fd314934SBarry Smith #if defined(PETSC_HAVE_CUDA) 489566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSEQCUDA, VecCreate_SeqCUDA)); 499566063dSJacob Faibussowitsch PetscCall(VecRegister(VECMPICUDA, VecCreate_MPICUDA)); 509566063dSJacob Faibussowitsch PetscCall(VecRegister(VECCUDA, VecCreate_CUDA)); 5145b7af86SKarl Rupp #endif 5210171e34SJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS) 539566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSEQKOKKOS, VecCreate_SeqKokkos)); 549566063dSJacob Faibussowitsch PetscCall(VecRegister(VECMPIKOKKOS, VecCreate_MPIKokkos)); 559566063dSJacob Faibussowitsch PetscCall(VecRegister(VECKOKKOS, VecCreate_Kokkos)); 5610171e34SJunchao Zhang #endif 5759af0bd3SScott Kruger #if defined(PETSC_HAVE_HIP) 589566063dSJacob Faibussowitsch PetscCall(VecRegister(VECSEQHIP, VecCreate_SeqHIP)); 599566063dSJacob Faibussowitsch PetscCall(VecRegister(VECMPIHIP, VecCreate_MPIHIP)); 609566063dSJacob Faibussowitsch PetscCall(VecRegister(VECHIP, VecCreate_HIP)); 6159af0bd3SScott Kruger #endif 623ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 63aa713d4dSSatish Balay } 64