xref: /petsc/src/mat/impls/aij/seq/seqviennacl/viennaclmatimpl.h (revision 3db98f885e8cbccdcd7246153a9d35189803b253)
1 #if !defined(__VIENNACLMATIMPL)
2 #define __VIENNACLMATIMPL
3 
4 /* Pulls in some ViennaCL includes as well as VIENNACL_WITH_OPENCL: */
5 #include <../src/vec/vec/impls/seq/seqviennacl/viennaclvecimpl.h>
6 
7 /* for everything else */
8 #include "viennacl/compressed_matrix.hpp"
9 
10 
11 /* Old way */
12 typedef viennacl::compressed_matrix<PetscScalar>   ViennaCLAIJMatrix;
13 
14 
15 struct Mat_SeqAIJViennaCL {
16   ViennaCLAIJMatrix      *mat;  /* pointer to the matrix on the GPU */
17 };
18 
19 
20 PETSC_INTERN PetscErrorCode MatViennaCLCopyToGPU(Mat);
21 PETSC_INTERN PetscErrorCode MatViennaCLCopyFromGPU(Mat, ViennaCLAIJMatrix*);
22 #endif
23