xref: /petsc/src/mat/tests/ex206.c (revision df4cd43f92eaa320656440c40edb1046daee8f75)
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   PetscBool   flg;
10 
11   PetscFunctionBeginUser;
12   PetscCall(PetscInitialize(&argc, &args, (char *)0, help));
13   PetscCall(PetscOptionsGetString(NULL, NULL, "-f", file, sizeof(file), &flg));
14   PetscCheck(flg, PETSC_COMM_WORLD, PETSC_ERR_USER, "Must indicate binary file with the -f option");
15 
16   PetscCall(MatCreate(PETSC_COMM_WORLD, &A));
17   PetscCall(MatSetFromOptions(A));
18   PetscCall(PetscPrintf(PETSC_COMM_WORLD, "First MatLoad! \n"));
19   PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file, FILE_MODE_READ, &fd));
20   PetscCall(MatLoad(A, fd));
21   PetscCall(PetscViewerDestroy(&fd));
22   PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD));
23 
24   PetscCall(PetscOptionsGetString(NULL, NULL, "-f2", file, sizeof(file), &flg));
25   PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Second MatLoad! \n"));
26   PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, file, FILE_MODE_READ, &fd));
27   PetscCall(MatLoad(A, fd));
28   PetscCall(PetscViewerDestroy(&fd));
29   PetscCall(MatView(A, PETSC_VIEWER_STDOUT_WORLD));
30 
31   PetscCall(MatDestroy(&A));
32   PetscCall(PetscFinalize());
33   return 0;
34 }
35 
36 /*TEST
37 
38    test:
39       suffix: aij_1
40       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
41       args: -f ${DATAFILESPATH}/matrices/small -mat_type aij -mat_block_size 1
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 
49    test:
50       suffix: aij_2_d
51       nsize: 2
52       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
53       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type aij -mat_block_size 1
54 
55    test:
56       suffix: baij_1_2
57       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
58       args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2
59 
60    test:
61       suffix: baij_2_1_d
62       nsize: 2
63       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
64       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 1
65 
66    test:
67       suffix: baij_2_2
68       nsize: 2
69       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
70       args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2
71 
72    test:
73       suffix: baij_2_2_d
74       nsize: 2
75       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
76       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 2
77 
78    test:
79       suffix: sbaij_1_1
80       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
81       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 1
82 
83    test:
84       suffix: sbaij_1_2
85       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
86       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2
87 
88    test:
89       suffix: sbaij_2_1_d
90       nsize: 2
91       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
92       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type sbaij -mat_block_size 1
93 
94    test:
95       suffix: sbaij_2_2
96       nsize: 2
97       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
98       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2
99 
100 TEST*/
101