xref: /petsc/src/mat/tests/ex206.c (revision 6a98f8dc3f2c9149905a87dc2e9d0fedaf64e09a)
1 static char help[] = "Reads binary matrix - twice\n";
2 
3 #include <petscmat.h>
4 int main(int argc,char **args)
5 {
6   Mat               A;
7   PetscViewer       fd;                        /* viewer */
8   char              file[PETSC_MAX_PATH_LEN];  /* input file name */
9   PetscErrorCode    ierr;
10   PetscBool         flg;
11 
12   PetscInitialize(&argc,&args,(char*)0,help);
13 
14   ierr = PetscOptionsGetString(NULL,NULL,"-f",file,PETSC_MAX_PATH_LEN,&flg);CHKERRQ(ierr);
15   if (!flg) SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_USER,"Must indicate binary file with the -f option");
16 
17   ierr = MatCreate(PETSC_COMM_WORLD,&A);CHKERRQ(ierr);
18   ierr = MatSetFromOptions(A);CHKERRQ(ierr);
19   ierr = PetscPrintf(PETSC_COMM_WORLD, "First MatLoad! \n");CHKERRQ(ierr);
20   ierr = PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&fd);CHKERRQ(ierr);
21   ierr = MatLoad(A,fd);CHKERRQ(ierr);
22   ierr = PetscViewerDestroy(&fd);CHKERRQ(ierr);
23   ierr = MatView(A,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
24 
25   ierr = PetscOptionsGetString(NULL,NULL,"-f2",file,PETSC_MAX_PATH_LEN,&flg);CHKERRQ(ierr);
26   ierr = PetscPrintf(PETSC_COMM_WORLD, "Second MatLoad! \n");CHKERRQ(ierr);
27   ierr = PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&fd);CHKERRQ(ierr);
28   ierr = MatLoad(A,fd);CHKERRQ(ierr);
29   ierr = PetscViewerDestroy(&fd);CHKERRQ(ierr);
30   ierr = MatView(A,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
31 
32   ierr = MatDestroy(&A);CHKERRQ(ierr);
33   ierr = PetscFinalize();
34   return ierr;
35 }
36 
37 /*TEST
38 
39    test:
40       suffix: aij_1
41       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
42       args: -f ${DATAFILESPATH}/matrices/small -mat_type aij -mat_block_size 1
43       filter: grep -v Mat_
44 
45    test:
46       suffix: aij_2
47       nsize: 2
48       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
49       args: -f ${DATAFILESPATH}/matrices/small -mat_type aij -mat_block_size 1
50       filter: grep -v Mat_
51 
52    test:
53       suffix: aij_2_d
54       nsize: 2
55       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
56       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type aij -mat_block_size 1
57       filter: grep -v Mat_
58 
59    test:
60       suffix: baij_1_2
61       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
62       args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2
63       filter: grep -v Mat_
64 
65    test:
66       suffix: baij_2_1_d
67       nsize: 2
68       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
69       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 1
70       filter: grep -v Mat_
71 
72    test:
73       suffix: baij_2_2
74       nsize: 2
75       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
76       args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2
77       filter: grep -v Mat_
78 
79    test:
80       suffix: baij_2_2_d
81       nsize: 2
82       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
83       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 2
84       filter: grep -v Mat_
85 
86    test:
87       suffix: sbaij_1_1
88       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
89       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 1
90       filter: grep -v Mat_
91 
92    test:
93       suffix: sbaij_1_2
94       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
95       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2
96       filter: grep -v Mat_
97 
98    test:
99       suffix: sbaij_2_1_d
100       nsize: 2
101       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
102       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type sbaij -mat_block_size 1
103       filter: grep -v Mat_
104 
105    test:
106       suffix: sbaij_2_2
107       nsize: 2
108       requires: datafilespath !complex double !define(PETSC_USE_64BIT_INDICES)
109       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2
110       filter: grep -v Mat_
111 
112 TEST*/
113