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