Actual source code: vecregall.c
1: #include <petscvec.h>
2: #include <petsc/private/vecimpl.h>
3: PETSC_EXTERN PetscErrorCode VecCreate_Seq(Vec);
4: PETSC_EXTERN PetscErrorCode VecCreate_MPI(Vec);
5: PETSC_EXTERN PetscErrorCode VecCreate_Standard(Vec);
6: PETSC_EXTERN PetscErrorCode VecCreate_Shared(Vec);
7: #if PetscDefined(HAVE_VIENNACL)
8: PETSC_EXTERN PetscErrorCode VecCreate_SeqViennaCL(Vec);
9: PETSC_EXTERN PetscErrorCode VecCreate_MPIViennaCL(Vec);
10: PETSC_EXTERN PetscErrorCode VecCreate_ViennaCL(Vec);
11: #endif
12: #if PetscDefined(HAVE_KOKKOS_KERNELS)
13: PETSC_EXTERN PetscErrorCode VecCreate_SeqKokkos(Vec);
14: PETSC_EXTERN PetscErrorCode VecCreate_MPIKokkos(Vec);
15: PETSC_EXTERN PetscErrorCode VecCreate_Kokkos(Vec);
16: #endif
18: PetscBool VecRegisterAllCalled = PETSC_FALSE;
20: /*@
21: VecRegisterAll - Registers all of the vector types in the `Vec` package.
23: Not Collective
25: Level: advanced
27: .seealso: [](ch_vectors), `Vec`, `VecType`, `VecRegister()`, `VecRegisterDestroy()`
28: @*/
29: PetscErrorCode VecRegisterAll(void)
30: {
31: PetscFunctionBegin;
32: if (VecRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
33: VecRegisterAllCalled = PETSC_TRUE;
35: PetscCall(VecRegister(VECSEQ, VecCreate_Seq));
36: PetscCall(VecRegister(VECMPI, VecCreate_MPI));
37: PetscCall(VecRegister(VECSTANDARD, VecCreate_Standard));
38: PetscCall(VecRegister(VECSHARED, VecCreate_Shared));
39: #if PetscDefined(HAVE_VIENNACL)
40: PetscCall(VecRegister(VECSEQVIENNACL, VecCreate_SeqViennaCL));
41: PetscCall(VecRegister(VECMPIVIENNACL, VecCreate_MPIViennaCL));
42: PetscCall(VecRegister(VECVIENNACL, VecCreate_ViennaCL));
43: #endif
44: #if PetscDefined(HAVE_CUDA)
45: PetscCall(VecRegister(VECSEQCUDA, VecCreate_SeqCUDA));
46: PetscCall(VecRegister(VECMPICUDA, VecCreate_MPICUDA));
47: PetscCall(VecRegister(VECCUDA, VecCreate_CUDA));
48: #endif
49: #if PetscDefined(HAVE_KOKKOS_KERNELS)
50: PetscCall(VecRegister(VECSEQKOKKOS, VecCreate_SeqKokkos));
51: PetscCall(VecRegister(VECMPIKOKKOS, VecCreate_MPIKokkos));
52: PetscCall(VecRegister(VECKOKKOS, VecCreate_Kokkos));
53: #endif
54: #if PetscDefined(HAVE_HIP)
55: PetscCall(VecRegister(VECSEQHIP, VecCreate_SeqHIP));
56: PetscCall(VecRegister(VECMPIHIP, VecCreate_MPIHIP));
57: PetscCall(VecRegister(VECHIP, VecCreate_HIP));
58: #endif
59: PetscFunctionReturn(PETSC_SUCCESS);
60: }