xref: /petsc/src/mat/tests/ex206.c (revision d5b43468fb8780a8feea140ccd6fa3e6a50411cc)
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   PetscInitialize(&argc, &args, (char *)0, help);
12 
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       filter: grep -v Mat_
43 
44    test:
45       suffix: aij_2
46       nsize: 2
47       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
48       args: -f ${DATAFILESPATH}/matrices/small -mat_type aij -mat_block_size 1
49       filter: grep -v Mat_
50 
51    test:
52       suffix: aij_2_d
53       nsize: 2
54       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
55       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type aij -mat_block_size 1
56       filter: grep -v Mat_
57 
58    test:
59       suffix: baij_1_2
60       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
61       args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2
62       filter: grep -v Mat_
63 
64    test:
65       suffix: baij_2_1_d
66       nsize: 2
67       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
68       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 1
69       filter: grep -v Mat_
70 
71    test:
72       suffix: baij_2_2
73       nsize: 2
74       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
75       args: -f ${DATAFILESPATH}/matrices/small -mat_type baij -mat_block_size 2
76       filter: grep -v Mat_
77 
78    test:
79       suffix: baij_2_2_d
80       nsize: 2
81       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
82       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type baij -mat_block_size 2
83       filter: grep -v Mat_
84 
85    test:
86       suffix: sbaij_1_1
87       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
88       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 1
89       filter: grep -v Mat_
90 
91    test:
92       suffix: sbaij_1_2
93       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
94       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2
95       filter: grep -v Mat_
96 
97    test:
98       suffix: sbaij_2_1_d
99       nsize: 2
100       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
101       args: -f ${DATAFILESPATH}/matrices/small -f2 ${DATAFILESPATH}/matrices/smallbs2 -mat_type sbaij -mat_block_size 1
102       filter: grep -v Mat_
103 
104    test:
105       suffix: sbaij_2_2
106       nsize: 2
107       requires: datafilespath !complex double !defined(PETSC_USE_64BIT_INDICES)
108       args: -f ${DATAFILESPATH}/matrices/small -mat_type sbaij -mat_block_size 2
109       filter: grep -v Mat_
110 
111 TEST*/
112