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: }