Actual source code: ex255.c
1: static char help[] = "Tests MatConvert from AIJ to MATIS with a block size greater than 1.\n";
3: #include <petscmat.h>
4: int main(int argc,char **args)
5: {
6: Mat A,B;
7: char file[PETSC_MAX_PATH_LEN];
8: PetscViewer fd;
9: PetscBool flg,equal;
11: PetscInitialize(&argc,&args,(char*)0,help);
13: /* Load an AIJ matrix */
14: PetscOptionsGetString(NULL,NULL,"-f",file,sizeof(file),&flg);
16: PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&fd);
17: MatCreate(PETSC_COMM_WORLD,&A);
18: MatSetFromOptions(A);
19: MatLoad(A,fd);
21: /* Convert it to MATIS */
22: MatConvert(A,MATIS,MAT_INITIAL_MATRIX,&B);
24: /* Check they are equal */
25: MatEqual(A,B,&equal);
28: MatDestroy(&A);
29: MatDestroy(&B);
30: PetscViewerDestroy(&fd);
31: PetscFinalize();
32: }
34: /*TEST
35: test:
36: requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
37: args: -mat_type aij -matload_block_size {{1 2}} -f ${DATAFILESPATH}/matrices/smallbs2
38: output_file: output/empty.out
40: TEST*/