xref: /petsc/src/vec/vec/interface/vecregall.c (revision 736d4f42202722c3350eb7b52688a899782aadae)
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_CUDA)
17 PETSC_EXTERN PetscErrorCode VecCreate_SeqCUDA(Vec);
18 PETSC_EXTERN PetscErrorCode VecCreate_MPICUDA(Vec);
19 PETSC_EXTERN PetscErrorCode VecCreate_CUDA(Vec);
20 #endif
21 #if defined(PETSC_HAVE_KOKKOS_KERNELS)
22 PETSC_EXTERN PetscErrorCode VecCreate_SeqKokkos(Vec);
23 PETSC_EXTERN PetscErrorCode VecCreate_MPIKokkos(Vec);
24 PETSC_EXTERN PetscErrorCode VecCreate_Kokkos(Vec);
25 #endif
26 
27 /*@C
28   VecRegisterAll - Registers all of the vector components in the Vec package.
29 
30   Not Collective
31 
32   Level: advanced
33 
34 .seealso:  VecRegister(), VecRegisterDestroy(), VecRegister()
35 @*/
36 PetscErrorCode VecRegisterAll(void)
37 {
38   PetscErrorCode ierr;
39 
40   PetscFunctionBegin;
41   if (VecRegisterAllCalled) PetscFunctionReturn(0);
42   VecRegisterAllCalled = PETSC_TRUE;
43 
44   ierr = VecRegister(VECSEQ,        VecCreate_Seq);CHKERRQ(ierr);
45   ierr = VecRegister(VECMPI,        VecCreate_MPI);CHKERRQ(ierr);
46   ierr = VecRegister(VECSTANDARD,   VecCreate_Standard);CHKERRQ(ierr);
47   ierr = VecRegister(VECSHARED,     VecCreate_Shared);CHKERRQ(ierr);
48 #if defined PETSC_HAVE_MPI_PROCESS_SHARED_MEMORY
49   ierr = VecRegister(VECNODE,       VecCreate_Node);CHKERRQ(ierr);
50 #endif
51 #if defined PETSC_HAVE_VIENNACL
52   ierr = VecRegister(VECSEQVIENNACL,    VecCreate_SeqViennaCL);CHKERRQ(ierr);
53   ierr = VecRegister(VECMPIVIENNACL,    VecCreate_MPIViennaCL);CHKERRQ(ierr);
54   ierr = VecRegister(VECVIENNACL,       VecCreate_ViennaCL);CHKERRQ(ierr);
55 #endif
56 #if defined(PETSC_HAVE_CUDA)
57   ierr = VecRegister(VECSEQCUDA,    VecCreate_SeqCUDA);CHKERRQ(ierr);
58   ierr = VecRegister(VECMPICUDA,    VecCreate_MPICUDA);CHKERRQ(ierr);
59   ierr = VecRegister(VECCUDA,       VecCreate_CUDA);CHKERRQ(ierr);
60 #endif
61 #if defined(PETSC_HAVE_KOKKOS_KERNELS)
62   ierr = VecRegister(VECSEQKOKKOS,  VecCreate_SeqKokkos);CHKERRQ(ierr);
63   ierr = VecRegister(VECMPIKOKKOS,  VecCreate_MPIKokkos);CHKERRQ(ierr);
64   ierr = VecRegister(VECKOKKOS,     VecCreate_Kokkos);CHKERRQ(ierr);
65 #endif
66   PetscFunctionReturn(0);
67 }
68