Make sure this is a MPI_SeqAIJ matrix. I thought that this would work with any seqaij matrix. does it have to be MPISEQAIJ or can it just be MATSEQAIJ?
Sorry, my mistake. Yes a MATSEQAIJ matrix. Barry
It is only valid to access this data after you have put the values into the matrix and called MatAssemblyBegin() and MatAssemblyEnd(). my code looks like: ierr = MatCreate(PETSC_COMM_WORLD,&A); CHKERRQ(ierr); ierr = MatSetSizes(A,M,N,M,N); CHKERRQ(ierr); ierr = MatSetType(A, MATSEQAIJ); CHKERRQ(ierr); ierr = MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY); CHKERRQ(ierr); [...lots of MatSetValue() calls...] ierr = MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY); CHKERRQ(ierr);
If you are creating a matrix from i, j, and a look at MatCreateSeqAIJWithArrays() I would like to extract the data from already assembled matrix (to copy to a GPU actually).
Ok, what is the code where you access the pointers? Barry
Ahmed
Barry
However when accessing directly I get different values for ptr and SIGSEGV when accessing val or ind.
also I get a bogus number for a->nz (134630032 instead of 21)
Can someone please explain when I am doing wrong?
Ahmed