static char help[] = "Test ViennaCL Matrix Conversions"; #include int main(int argc,char **args) { PetscMPIInt rank,size; PetscCall(PetscInitialize(&argc,&args,(char*)0,help)); PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); /* Construct a sequential ViennaCL matrix and vector */ if (rank == 0) { Mat A_vcl; Vec v_vcl,r_vcl; PetscInt n = 17, m = 31,nz = 5,i,cnt,j; const PetscScalar val = 1.0; PetscCall(MatCreateSeqAIJViennaCL(PETSC_COMM_SELF,m,n,nz,NULL,&A_vcl)); /* Add nz arbitrary entries per row in arbitrary columns */ for (i=0;i 1) { Mat A,A_vcl; Vec v,r,v_vcl,r_vcl,d_vcl; PetscInt N=17,M=31,nz=5,i,cnt,j,rlow,rhigh; const PetscScalar val = 1.0; PetscReal dnorm; const PetscReal tol=1e-5; PetscCall(MatCreateAIJ(PETSC_COMM_WORLD,PETSC_DETERMINE,PETSC_DETERMINE,M,N,nz,NULL,nz,NULL,&A)); /* Add nz arbitrary entries per row in arbitrary columns */ PetscCall(MatGetOwnershipRange(A,&rlow,&rhigh)); for (i=rlow;i 1) { Mat A; Vec v,r,v_vcl,r_vcl,d_vcl; PetscInt N=17,M=31,nz=5,i,cnt,j,rlow,rhigh; const PetscScalar val = 1.0; PetscReal dnorm; const PetscReal tol=1e-5; PetscCall(MatCreateAIJ(PETSC_COMM_WORLD,PETSC_DETERMINE,PETSC_DETERMINE,M,N,nz,NULL,nz,NULL,&A)); /* Add nz arbitrary entries per row in arbitrary columns */ PetscCall(MatGetOwnershipRange(A,&rlow,&rhigh)); for (i=rlow;i