Actual source code: ex206.c
1: static char help[] = "Reads binary matrix - twice\n";
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;
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");
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));
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));
31: PetscCall(MatDestroy(&A));
32: PetscCall(PetscFinalize());
33: return 0;
34: }
36: /*TEST
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
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
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
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
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
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
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
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
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
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
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
100: TEST*/