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