petsc-3.8.4 2018-03-24
Report Typos and Errors


Returns the compressed row storage i and j indices for sequential matrices.


#include "petscmat.h" 
PetscErrorCode MatGetRowIJ(Mat mat,PetscInt shift,PetscBool symmetric,PetscBool inodecompressed,PetscInt *n,const PetscInt *ia[],const PetscInt *ja[],PetscBool  *done)
Collective on Mat

Input Parameters

mat - the matrix
shift - 0 or 1 indicating we want the indices starting at 0 or 1
symmetric - PETSC_TRUE or PETSC_FALSE indicating the matrix data structure should be symmetrized
inodecompressed - PETSC_TRUE or PETSC_FALSE indicating if the nonzero structure of the inodes or the nonzero elements is wanted. For BAIJ matrices the compressed version is always used.

Output Parameters

n - number of rows in the (possibly compressed) matrix
ia - the row pointers [of length n+1]
ja - the column indices
done - indicates if the routine actually worked and returned appropriate ia[] and ja[] arrays; callers are responsible for handling the case when done == PETSC_FALSE and ia and ja are not set


You CANNOT change any of the ia[] or ja[] values.

Use MatRestoreRowIJ() when you are finished accessing the ia[] and ja[] values.

Fortran Notes

In Fortran use

     PetscInt ia(1), ja(1)
     PetscOffset iia, jja
     call MatGetRowIJ(mat,shift,symmetric,inodecompressed,n,ia,iia,ja,jja,done,ierr)
     ! Access the ith and jth entries via ia(iia + i) and ja(jja + j)


   PetscInt, pointer :: ia(:),ja(:)
   call MatGetRowIJF90(mat,shift,symmetric,inodecompressed,n,ia,ja,done,ierr)
   ! Access the ith and jth entries via ia(i) and ja(j)

See Also

MatGetColumnIJ(), MatRestoreRowIJ(), MatSeqAIJGetArray()

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages