xref: /petsc/src/vec/vec/interface/vecregall.c (revision 9566063d113dddea24716c546802770db7481bc0)
1aa713d4dSSatish Balay 
2f7ecc322SBarry Smith #include <petscvec.h>
3af0996ceSBarry Smith #include <petsc/private/vecimpl.h>
48cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_Seq(Vec);
58cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_MPI(Vec);
68cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_Standard(Vec);
78cc058d9SJed Brown PETSC_EXTERN PetscErrorCode VecCreate_Shared(Vec);
8b674149eSJunchao Zhang #if defined(PETSC_HAVE_MPI_PROCESS_SHARED_MEMORY)
9803a1b88SHong Zhang PETSC_EXTERN PetscErrorCode VecCreate_Node(Vec);
1074c49cccSHong Zhang #endif
11e9e886b6SKarl Rupp #if defined(PETSC_HAVE_VIENNACL)
1245b7af86SKarl Rupp PETSC_EXTERN PetscErrorCode VecCreate_SeqViennaCL(Vec);
1345b7af86SKarl Rupp PETSC_EXTERN PetscErrorCode VecCreate_MPIViennaCL(Vec);
1445b7af86SKarl Rupp PETSC_EXTERN PetscErrorCode VecCreate_ViennaCL(Vec);
15b8ced49eSKarl Rupp #endif
16fd314934SBarry Smith #if defined(PETSC_HAVE_CUDA)
1782f73ecaSAlejandro Lamas Daviña PETSC_EXTERN PetscErrorCode VecCreate_SeqCUDA(Vec);
1882f73ecaSAlejandro Lamas Daviña PETSC_EXTERN PetscErrorCode VecCreate_MPICUDA(Vec);
1982f73ecaSAlejandro Lamas Daviña PETSC_EXTERN PetscErrorCode VecCreate_CUDA(Vec);
2045b7af86SKarl Rupp #endif
2110171e34SJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS)
2210171e34SJunchao Zhang PETSC_EXTERN PetscErrorCode VecCreate_SeqKokkos(Vec);
2310171e34SJunchao Zhang PETSC_EXTERN PetscErrorCode VecCreate_MPIKokkos(Vec);
2410171e34SJunchao Zhang PETSC_EXTERN PetscErrorCode VecCreate_Kokkos(Vec);
2510171e34SJunchao Zhang #endif
2659af0bd3SScott Kruger #if defined(PETSC_HAVE_HIP)
2759af0bd3SScott Kruger PETSC_EXTERN PetscErrorCode VecCreate_SeqHIP(Vec);
2859af0bd3SScott Kruger PETSC_EXTERN PetscErrorCode VecCreate_MPIHIP(Vec);
2959af0bd3SScott Kruger PETSC_EXTERN PetscErrorCode VecCreate_HIP(Vec);
3059af0bd3SScott Kruger #endif
31aa713d4dSSatish Balay 
32aa713d4dSSatish Balay /*@C
33aa713d4dSSatish Balay   VecRegisterAll - Registers all of the vector components in the Vec package.
34aa713d4dSSatish Balay 
35aa713d4dSSatish Balay   Not Collective
36aa713d4dSSatish Balay 
37aa713d4dSSatish Balay   Level: advanced
38aa713d4dSSatish Balay 
391c84c290SBarry Smith .seealso:  VecRegister(), VecRegisterDestroy(), VecRegister()
40aa713d4dSSatish Balay @*/
41607a6623SBarry Smith PetscErrorCode VecRegisterAll(void)
42aa713d4dSSatish Balay {
43aa713d4dSSatish Balay   PetscFunctionBegin;
440f51fdf8SToby Isaac   if (VecRegisterAllCalled) PetscFunctionReturn(0);
45aa713d4dSSatish Balay   VecRegisterAllCalled = PETSC_TRUE;
46aa713d4dSSatish Balay 
47*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSEQ,        VecCreate_Seq));
48*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECMPI,        VecCreate_MPI));
49*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSTANDARD,   VecCreate_Standard));
50*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSHARED,     VecCreate_Shared));
51e9e886b6SKarl Rupp #if defined PETSC_HAVE_VIENNACL
52*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSEQVIENNACL,    VecCreate_SeqViennaCL));
53*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECMPIVIENNACL,    VecCreate_MPIViennaCL));
54*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECVIENNACL,       VecCreate_ViennaCL));
55b8ced49eSKarl Rupp #endif
56fd314934SBarry Smith #if defined(PETSC_HAVE_CUDA)
57*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSEQCUDA,    VecCreate_SeqCUDA));
58*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECMPICUDA,    VecCreate_MPICUDA));
59*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECCUDA,       VecCreate_CUDA));
6045b7af86SKarl Rupp #endif
6110171e34SJunchao Zhang #if defined(PETSC_HAVE_KOKKOS_KERNELS)
62*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSEQKOKKOS,  VecCreate_SeqKokkos));
63*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECMPIKOKKOS,  VecCreate_MPIKokkos));
64*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECKOKKOS,     VecCreate_Kokkos));
6510171e34SJunchao Zhang #endif
6659af0bd3SScott Kruger #if defined(PETSC_HAVE_HIP)
67*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECSEQHIP,    VecCreate_SeqHIP));
68*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECMPIHIP,    VecCreate_MPIHIP));
69*9566063dSJacob Faibussowitsch   PetscCall(VecRegister(VECHIP,       VecCreate_HIP));
7059af0bd3SScott Kruger #endif
71aa713d4dSSatish Balay   PetscFunctionReturn(0);
72aa713d4dSSatish Balay }
73