Actual source code: ex87.c
2: static char help[] = "Tests MatGetSubMatrices() for SBAIJ matrices\n\n";
4: #include petscmat.h
8: int main(int argc,char **args)
9: {
10: Mat BAIJ,SBAIJ,*subBAIJ,*subSBAIJ;
11: PetscViewer viewer;
12: char file[PETSC_MAX_PATH_LEN];
13: PetscTruth flg;
15: PetscInt n = 2,issize;
16: PetscMPIInt rank;
17: IS is,iss[2];
19: PetscInitialize(&argc,&args,(char *)0,help);
20: PetscOptionsGetString(PETSC_NULL,"-f",file,PETSC_MAX_PATH_LEN-1,&flg);
21: PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&viewer);
22: MatLoad(viewer,MATMPIBAIJ,&BAIJ);
23: PetscViewerDestroy(viewer);
24: PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&viewer);
25: MatLoad(viewer,MATMPISBAIJ,&SBAIJ);
26: PetscViewerDestroy(viewer);
28: MatGetSize(BAIJ,&issize,0);
29: issize = 9;
30: ISCreateStride(PETSC_COMM_SELF,issize,0,1,&is);
31: iss[0] = is;iss[1] = is;
32: MatGetSubMatrices(BAIJ,n,iss,iss,MAT_INITIAL_MATRIX,&subBAIJ);
33: MatGetSubMatrices(SBAIJ,n,iss,iss,MAT_INITIAL_MATRIX,&subSBAIJ);
35: MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
36: #if defined(PETSC_USE_SOCKET_VIEWER)
37: if (!rank) {
38: MatView(subBAIJ[0],PETSC_VIEWER_SOCKET_SELF);
39: MatView(subSBAIJ[0],PETSC_VIEWER_SOCKET_SELF);
40: }
41: #endif
43: /* Free data structures */
44: ISDestroy(is);
45: MatDestroyMatrices(n,&subBAIJ);
46: MatDestroyMatrices(n,&subSBAIJ);
47: MatDestroy(BAIJ);
48: MatDestroy(SBAIJ);
50: PetscFinalize();
51: return 0;
52: }