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_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
22: /*@C
23: VecRegisterAll - Registers all of the vector types in the `Vec` package.
25: Not Collective
27: Level: advanced
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;
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: }