Actual source code: ex87.c

  1: /*$Id: ex31.c,v 1.27 2001/08/07 03:03:07 balay Exp $*/

  3: static char help[] = "Tests MatGetSubMatrices() for SBAIJ matrices\n\n";

 5:  #include petscmat.h

  9: int main(int argc,char **args)
 10: {
 11:   Mat         BAIJ,SBAIJ,*subBAIJ,*subSBAIJ;
 12:   PetscViewer viewer;
 13:   char        file[128];
 14:   PetscTruth  flg;
 15:   int         ierr,n = 2,rank,issize;
 16:   IS          is,iss[2];

 18:   PetscInitialize(&argc,&args,(char *)0,help);
 19:   PetscOptionsGetString(PETSC_NULL,"-f",file,127,&flg);
 20:   PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,PETSC_FILE_RDONLY,&viewer);
 21:   MatLoad(viewer,MATMPIBAIJ,&BAIJ);
 22:   PetscViewerDestroy(viewer);
 23:   PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,PETSC_FILE_RDONLY,&viewer);
 24:   MatLoad(viewer,MATMPISBAIJ,&SBAIJ);
 25:   PetscViewerDestroy(viewer);

 27:   MatGetSize(BAIJ,&issize,0);
 28:   issize = 9;
 29:   ISCreateStride(PETSC_COMM_SELF,issize,0,1,&is);
 30:   iss[0] = is;iss[1] = is;
 31:   MatGetSubMatrices(BAIJ,n,iss,iss,MAT_INITIAL_MATRIX,&subBAIJ);
 32:   MatGetSubMatrices(SBAIJ,n,iss,iss,MAT_INITIAL_MATRIX,&subSBAIJ);

 34:   MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
 35:   if (!rank) {
 36:     MatView(subBAIJ[0],PETSC_VIEWER_SOCKET_SELF);
 37:     MatView(subSBAIJ[0],PETSC_VIEWER_SOCKET_SELF);
 38:   }

 40:   /* Free data structures */
 41:   ISDestroy(is);
 42:   MatDestroyMatrices(n,&subBAIJ);
 43:   MatDestroyMatrices(n,&subSBAIJ);
 44:   MatDestroy(BAIJ);
 45:   MatDestroy(SBAIJ);

 47:   PetscFinalize();
 48:   return 0;
 49: }