1 #if !defined(PETSC4PY_COMPAT_VIENNACL_H)
2 #define PETSC4PY_COMPAT_VIENNACL_H
3
4 #if !defined(PETSC_HAVE_VIENNACL)
5
6 #define PetscViennaCLError do { \
7 PetscFunctionBegin; \
8 SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SUP,"%s() requires ViennaCL",PETSC_FUNCTION_NAME); \
9 PetscFunctionReturn(PETSC_ERR_SUP);} while (0)
10
VecCreateSeqViennaCLWithArrays(PETSC_UNUSED MPI_Comm comm,PETSC_UNUSED PetscInt bs,PETSC_UNUSED PetscInt n,PETSC_UNUSED PetscScalar cpuarray[],PETSC_UNUSED PetscScalar * viennaclvec,PETSC_UNUSED Vec * V)11 PetscErrorCode VecCreateSeqViennaCLWithArrays(PETSC_UNUSED MPI_Comm comm,PETSC_UNUSED PetscInt bs,PETSC_UNUSED PetscInt n,PETSC_UNUSED PetscScalar cpuarray[],PETSC_UNUSED PetscScalar* viennaclvec,PETSC_UNUSED Vec *V) {PetscViennaCLError;}
VecCreateMPIViennaCLWithArrays(PETSC_UNUSED MPI_Comm comm,PETSC_UNUSED PetscInt bs,PETSC_UNUSED PetscInt n,PETSC_UNUSED PetscInt N,PETSC_UNUSED PetscScalar cpuarray[],PETSC_UNUSED PetscScalar * viennaclvec,PETSC_UNUSED Vec * vv)12 PetscErrorCode VecCreateMPIViennaCLWithArrays(PETSC_UNUSED MPI_Comm comm,PETSC_UNUSED PetscInt bs,PETSC_UNUSED PetscInt n,PETSC_UNUSED PetscInt N,PETSC_UNUSED PetscScalar cpuarray[],PETSC_UNUSED PetscScalar *viennaclvec,PETSC_UNUSED Vec *vv) {PetscViennaCLError;}
13
14 #undef PetscViennaCLError
15
16 # else
17
18 PetscErrorCode VecCreateSeqViennaCLWithArrays(MPI_Comm,PetscInt,PetscInt,PetscScalar[],PetscScalar[],Vec*);
19 PetscErrorCode VecCreateMPIViennaCLWithArrays(MPI_Comm,PetscInt,PetscInt,PetscInt,PetscScalar[],PetscScalar[],Vec*);
20
21 #endif
22
23 #endif/*PETSC4PY_COMPAT_VIENNACL_H*/
24