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