1 static char help[] = "Reads binary matrix - twice\n";
2
3 #include <petscmat.h>
main(int argc,char ** args)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, NULL, 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