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